Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1
5. JAVA werden beim Programmieren erstaunlich oft gebraucht: Simulationen Spiele Aufbau von Testszenarien... Java bietet zwei Möglichkeiten zur Erzeugung von gleichverteilten : 1. die Klasse Random 2. Die Methode random der Klasse Math Übungen Informatik 1 2
Inhalt Klasse Random Klasse Math und ihre Methode random Übungen Informatik 1 3
Die Klasse Random Die Klasse Random ist im Package java.util zu finden Die Klasse Random erlaubt das Instanziieren eines generators mit und ohne Setzen eines seed- Wertes Der seed-wert ist eine interne Zufallsvariable public Random () Instanziieren ohne seed-wert (parameterloser Konstruktor) generator initialisiert internen Zähler auf der Basis der aktuellen Systemzeit. Folge der ist nicht reproduzierbar public Random (long seed) Instanziieren mit seed-wert generator initialisiert seinen internen Zähler mit dem seed- Wert. Folge der ist reproduzierbar Übungen Informatik 1 4
Methoden der Klasse Random Die Klasse Random ist im Package java.util zu finden Random erzeugt gleichverteilte für die numerischen Grundtypen int, long, float oder double. sie enthält eine Reihe statischer Methoden zur Erzeugung von gleichverteilten. Die Methoden nextint, nextlong, nextfloat, nextdouble liefern jeweils aus dem gesamten Wertebereich des entsprechenden Grundtyps, also auch neg. Zahlen. Die Methoden sind in der Java API zu finden Auf den folgenden Folien wird die Methode nextint anhand von Beispielen näher erklärt Übungen Informatik 1 5
Methoden der Klasse Random Beispiel zur Methode nextint: /* nextint liefert ganzzahligen im Bereich von -2 32 bis 2 32 nextint(n) liefert ganzzahligen im Bereich von 0 bis n-1 */ static void ZufallsZahlen(int anz, int maxwert) { Random rand = new Random(); int i, k, z; for (k = 1; k <= anz; k++) { i = rand.nextint(); //neg. oder pos int-zufallszahl erzeugen z = i % maxwert; //Wertebereich: (maxwert-1)...(maxwert-1) z = Math.abs(z); // Wertebereich: 0... maxwert-1 // oder: // z = Math.abs (rand.nextint()% maxwert); z++; } } Übungen Informatik 1 6
Inhalt Klasse Random Klasse Math und ihre Methode random Übungen Informatik 1 7
Die Klasse Math Die Klasse Math ist im Package java.lang zu finden sie enthält eine Reihe statischer Methoden zur Berechnung von Fließkomma-Arithmetik Die Methode random liefer reelle aus dem gesamten Wertebereich von 0.0 bis <1.0 Die Methoden sind in der Java API zu finden Auf den folgenden Folien werden die Methode aufgelistet Übungen Informatik 1 8
Methoden der Klasse Math random vom Typ double im Bereich von 0.0... < 1.0 sin,cos,tan,... reelle Werte von Winkelfunktionen double sin(double x) min, max ganzzahlige Minimum- und Maximumwerte von numerischen Grundtypen int min (int a, int b), long min(...),..., int max (...)... exp, pow, sqrt, reelle Werte für arithmetische Berechnungen: log,... double exp (double a); double log (double a), double pow (double a, double b) double sqrt (double a) abs, ceil, floor, runden, abschneiden round int abs(int a),long abs(long a),float...,double... double ceil (double a) ( kleinste ganze Zahl > a) double floor (double a) ( größte ganze Zahl <= a) int round (float a) Übungen Informatik 1 9
Methode random der Klasse Math Beispiel zur Methode random: /* liefert reelle im Bereich von 0.0 bis <1.0 Aufgabe: wenn Zufallswerte 0.0...0.5 soll i = 100 werden. wenn Zufallswerte >0.5...<1.0 soll i = -100 werden. */ public class ZufallMathRandom { } public static void main(string[] args) { double x = Math.random(); int i = -100; if (x <= 0.5) { i = 100; } System.out.println("x=" + x + " --> i=" + i); } Übungen Informatik 1 10