Hallo Freunde
Mich hat es mal interessiert einen Lottozahlenzufallsgenerator zu programmieren und der Algorithmus, wie doppelte Einträge vermieden werden.
Der Code ist sicher sonst auch verbesserungswürdig, aber ich bekomme es irgendwie auch ideentechnisch nicht auf die Reihe, es zu vermeiden, dass doppelte Zahlen vorkommen.
Irgendwie habe ich das Problem, dass ich zwar Schritt für Schritt vorgehe und bei Differenz 0 eine neue Zahl generiere, aber dann auch wieder zurück gehen muss um zu prüfen, ob er nicht eine neue Zahl generiert hat, die zuvor irgendwo war...
hmm, irgendwie lustig, ich steh da voll daneben.
Es ist die Methode entferneGleicheZahl()
Mich hat es mal interessiert einen Lottozahlenzufallsgenerator zu programmieren und der Algorithmus, wie doppelte Einträge vermieden werden.
Der Code ist sicher sonst auch verbesserungswürdig, aber ich bekomme es irgendwie auch ideentechnisch nicht auf die Reihe, es zu vermeiden, dass doppelte Zahlen vorkommen.
Irgendwie habe ich das Problem, dass ich zwar Schritt für Schritt vorgehe und bei Differenz 0 eine neue Zahl generiere, aber dann auch wieder zurück gehen muss um zu prüfen, ob er nicht eine neue Zahl generiert hat, die zuvor irgendwo war...
hmm, irgendwie lustig, ich steh da voll daneben.
Es ist die Methode entferneGleicheZahl()
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Random;
public class eugen {
static int zahl = 0;
static int num = 0;
static String name1;
static int alter;
static String begriff;
static int[] zufallsZahlen = new int[6];
static Random rand = new Random();
static int x = 0;
public static void main(String[] args) {
erzeugeZahl();
entferneGleicheZahl();
zahlenAusgeben();
}
public static void entferneGleicheZahl() {
int s = 0;
int m = 1;
int i;
int y;
for (y = 0; y < (zufallsZahlen.length - 1); y++) {
s = zufallsZahlen[y];
for (i = m; i < zufallsZahlen.length; i++) {
while ((s - zufallsZahlen[i]) == 0) {
zufallsZahlen[i] = rand.nextInt(42) + 1;
for (int b = i; b > 0; b--) {
if ((zufallsZahlen[b] - zufallsZahlen[b - 1]) == 0) {
while ((zufallsZahlen[b] - zufallsZahlen[b - 1]) == 0) {
zufallsZahlen[b - 1] = rand.nextInt(49) + 1;
}
}
}
}
m++;
}
}
}
public static void zahlenAusgeben() {
Arrays.sort(zufallsZahlen);
for (int i = 0; i < zufallsZahlen.length; i++) {
System.out.print(zufallsZahlen[i] + " ");
}
}
public static void erzeugeZahl() {
int i = 0;
for (i = 0; i < zufallsZahlen.length; i++) {
num = rand.nextInt(42) + 1;
zufallsZahlen[i] = num;
}
}
public static void erzeugeGlueckszahl() {
int glk1 = 0;
int glk2 = 0;
int a;
for (int i = 0; i < 1; i++) {
a = rand.nextInt(6) + 1;
if (i == 0) {
glk1 = a;
}
}
zufallsZahlen[6] = glk1;
}
}
Zuletzt bearbeitet von einem Moderator: