View Full Version : [JAVA] Verschiedene Zufallszahlen erzeugen
Hallo.
Ich habe ein Problem beim Zufallszahlen erzeugen. Ich will 20 verschiedene Zufallszahlen zwischen 0 und 20 erzeugen. Allerdings tauchen immer wieder doppelte Zahlen auf.
Random r = new Random();
int ir = r.nextInt(20); Gibt es da irgendeine Funktion mit der man das machen kann oder muss ich selbst eine Methode schreiben?
Thoronador
03.05.2011, 18:44
Es ist normal, dass bei Zufallszahlen irgendwann eine Zahl mehrfach vorkommt. Wenn du beispielsweise mit einem normalen, sechsseitigen Würfel würfelst, kann es dir doch auch passieren, dass bei sechs Würfen mehrmals die gleiche Zahl auftritt.
Wenn du 20 verschiedene Zahlen aus dem Bereich von 0 bis 19 erzeugen willst, brauchst du übrigens kein Zufallselement mehr, da kannst du einfach die Zahlen nacheinander aufsteigend von 0 an aufschreiben.
Ich erkläre mal was ich genau vorhabe, damit ihr mich versteht.
Ich habe zwei Arrays.
double inhalt[]={0.01, 1, 5, 10, 25, 50, 75, 100, 200, 300, 400, 500, 750, 1000, 5000, 10000, 25000, 50000, 75000, 100000, 200000, 300000, 400000, 500000, 750000, 1000000};
double korb[] = new double[26];
Jetzt will ich korb mit zufälligen inhalt füllen. Und das wollte ich so machen. Aber inhalt[] darf nur einmal an korb[] vergeben werden.
for (int i=0; i<26; i++)
{
korb[i] = inhalt[methoden.zufallszahl(1,25)];
System.out.println("korb"+i+"= "+inhalt[methoden.zufallszahl(1,25)]);
}
Hier ist die Methode zur erzeugung der zz:
public static int zufallszahl(int von, int bis) //Zufallszahl zw von und bis
{int zz= von + (int)((bis-von+1)*Math.random()); return zz;
}
Hoffe ihr versteht was ich meine.
Was du machen will ist Ziehen ohne Zurücklegen?
Dann mach das so, nimm eine ArrayList, remove ein zufälliges Element und so weiter bis alle leer sind.
Also sowas in der Art:
ArrayList<double> list = new ArrayList(inhalt) // weiß ich nichtmehr ob es den konstruktor gibt
int i = 0;
while (!list.isEmpty()) {
korb[i] = list.get(zufallszahl(0, list.size());
i++;
}
Okay danke.
Habs jetzt geschafft. §wink
Powered by vBulletin® Version 4.2.0 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.