Johannes7146
Goldschnabel
Hallo zusammen,
wollte mal gucken wieviel Ziehungen ich brauche bis ich meine Wunschkombination an Zahlen beim Lotto gezogen bekomme....
Das ganze geht sicherlich auch schöner... aber es läuft
Meine Frage nun.... wie Zufällig ist die Methode Random.nextInt(int n) wirklich?
wollte mal gucken wieviel Ziehungen ich brauche bis ich meine Wunschkombination an Zahlen beim Lotto gezogen bekomme....
Java:
package de.tutorials.johannes7146;
import java.text.DecimalFormat;
import java.util.Random;
public class Lotto extends Thread {
private static DecimalFormat df = new DecimalFormat("###,###");
public static void main(String[] args) {
Lotto lotto = new Lotto();
lotto.start();
}
@Override
public void run() {
System.out.println("START");
int[] meinTipp = new int[] { 2,
4,
24,
42,
22,
44 };
ablauf(meinTipp);
System.out.println("ENDE");
}
public void ablauf(int[] meinTipp) {
int outputIntervall = 1000;
int nextOutput = 1000;
boolean juhu = false;
int ziehungenAnzahl = 0;
while (!juhu) {
ziehungenAnzahl++;
int[] ziehung = getAausB(6, 49);
int richtige = getAnzahlUebereinstimmunge(meinTipp, ziehung);
switch (richtige) {
case 3:
//System.out.println("3 Richtige nach " + df.format(i) + " Ziehungen");
break;
case 4:
//System.out.println("4 Richtige nach " + df.format(i) + " Ziehungen");
break;
case 5:
//System.out.println("5 Richtige nach " + df.format(i) + " Ziehungen");
break;
case 6:
System.out.println("6 Richtige nach " + df.format(ziehungenAnzahl) + " Ziehungen");
juhu = true;
break;
}
if (ziehungenAnzahl == nextOutput) {
nextOutput += outputIntervall;
System.out.println("Ich bin grad bei Ziehung Nr.: " + df.format(ziehungenAnzahl));
}
// try {
// Thread.sleep(1);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
}
}
private static int getZufallsZahl(int max) {
Random r = new Random();
int zahl = r.nextInt(max);
zahl++;
return zahl;
}
private static int[] getAausB(int a, int b) {
int[] zahlen = new int[a];
for (int i = 0; i < a; i++) {
boolean zahlHinzugefuegt = false;
while (!zahlHinzugefuegt) {
int z = getZufallsZahl(b);
if (!contains(z, zahlen)) {
zahlen[i] = z;
zahlHinzugefuegt = true;
}
}
}
return zahlen;
}
private static boolean contains(int a, int[] b) {
for (int i = 0; i < b.length; i++) {
if (b[i] == a) {
return true;
}
}
return false;
}
private static int getAnzahlUebereinstimmunge(int[] a, int[] b) {
int anzahl = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < b.length; j++) {
if (a[i] == b[j]) {
anzahl++;
}
}
}
return anzahl;
}
}
Das ganze geht sicherlich auch schöner... aber es läuft

Meine Frage nun.... wie Zufällig ist die Methode Random.nextInt(int n) wirklich?