Lernpfad:Würfelspiel in Java/Zufallszahlen generieren: Unterschied zwischen den Versionen

K
keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Navigation/{{ROOTPAGENAME}}}}
{{Navigation}}
 
== Zufallszahlen generieren ==
== Zufallszahlen generieren ==


Zeile 7: Zeile 6:


Java bietet verschiedene Methoden, Zufallszahlen zu erzeugen. Diese basieren
Java bietet verschiedene Methoden, Zufallszahlen zu erzeugen. Diese basieren
auf der Methode <code>Mathe.random()</code>, die eine Pseudozufallszahl zwischen 0 (inklusive) und 1 (exklusive) erzeugt. Diese Fliesskommazahlen können dann durch Rechenoperationen in den gewünschten Zahlenbereich transformiert werden.  
auf der Methode <code>[https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#random-- Math.random()]</code>, die eine Pseudozufallszahl zwischen 0 (inklusive) und 1 (exklusive) erzeugt. Diese Fließkommazahlen können dann durch Rechenoperationen in den gewünschten Zahlenbereich transformiert werden.  


Um einen Würfel zu simulieren kann man die von <code>Math.random()</code> generierten Werte zum Beispiel durch <code>(int) (Math.random()*6+1)</code>  
Um einen Würfel zu simulieren, kann man die von <code>Math.random()</code> generierten Werte zum Beispiel durch <code>(int) (Math.random()*6+1)</code> in eine Ganzzahl zwischen 1 (inklusive) und 6 (inklusive) transformieren. Die Grafik
in eine Ganzzahl zwischen 1 (inklusive) und 6 (inklusive) transformieren.
veranschaulicht, wie die einzelnen Rechnungen den Zahlenbereich Schritt für Schritt transformieren.


[[Datei:JavaZufall.jpg|center|Transformation von Zufallszahlen in einen bestimmten ganzzahligen Bereich (Java).]]
[[Datei:JavaZufall.jpg|center|Transformation von Zufallszahlen in einen bestimmten ganzzahligen Bereich (Java).]]


''Hinweis'': Im letzten Schritt wird ein ''Typecast'' vorgenommen, eine erzwungene Konvertierung von einem Datentyp (double) in einen anderen (int). In idesem Fall bedeutet das, dass Java einfach die Nachkommastellen des double-Wertes "abschneidet" (es wird also nicht gerundet). Aus <code>4.866</code> wird <code>4</code>.
{{Info:Start}}
Im letzten Schritt wird eine ''[[wikipedia:Typumwandlung|explizite Typumwandlung]]'' vorgenommen: eine erzwungene Konvertierung von einem Datentyp (<code>double</code>) in einen anderen (<code>int</code>). In diesem Fall bedeutet das, dass Java einfach die Nachkommastellen des double-Wertes "abschneidet" (es wird also nicht gerundet). Aus <code>4.866</code> wird <code>4</code>.
{{Info:End}}
 
Weitere Informationen zu Zufallszahlen (speziell in Java):
 
* https://wiki.zum.de/wiki/Java/Zufallszahl
* https://de.wikibooks.org/wiki/Java_Standard:_Random
 
== Die Klasse Random ==
 
Zur einfachen Generierung von Zufallszahlen stellt Java die Hilfsklasse <code>java.util.Random</code> zur Verfügung.
Die enthält eine Reihe von Methoden, die unter anderem zufällige Ganzzahlen erzeugen.


[http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_12_005.htm#mje4ad6e86a12fd27d9d70730955ca4f9c Kapitel "Zufallszahlen erzeugen" in ''Java ist auch eine Insel'']
Weitere Details können in der [https://docs.oracle.com/javase/8/docs/api/java/util/Random.html Java API Dokumentation der Klasse Random] und im [http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_12_005.htm#mje4ad6e86a12fd27d9d70730955ca4f9c Kapitel "Zufallszahlen erzeugen" in ''Java ist auch eine Insel''] nachgelesen werden. Das Beispiel unten zeigt die Verwendung der Klasse in einer einfachen Würfel-Klasse.


== Eine einfache Würfel-Klasse ==
== Eine einfache Würfel-Klasse ==
Zeile 32: Zeile 43:


  /**
  /**
   * "Wirft" den Würfel, indem eine Zufallszahl zwischen 1 und 6 (einschließlich) generiert wird.
   * "Wirft" den Würfel, indem eine Zufallszahl zwischen 1  
  * und 6 (einschließlich) generiert wird.
   * @return Eine Ganzzahl von 1 bis 6
   * @return Eine Ganzzahl von 1 bis 6
   */
   */
8.581

Bearbeitungen