Random random = new Random();
Set<Integer> set = new HashSet<Integer>();
while(set.size() < 6) {
set.add(random.nextInt(49) + 1);
}
is das nicht passend an der stelle??
Geht mit einem Set aber deutlich eleganterwürde einfach ein Int[] Array erzeugen und das mit 6 Zufallszahlen fühlen und beim ziehen der Zahl auf richtigkeit prüfen.
also +1 ist ja nicht so schön,Man kann auch erst eine Zahl von 1 bis 49 ziehen, dann eine von 1 bis 48 und "korrigieren" (eins addieren wenn sie größer/gleich der ersten ist, dann eine von 1 bis 47 ziehen, gegenüber den ersten zwei Zahlen "korrigieren" u.s.w.
Seh da kein großen Vorteil drin, denke soll er einfach für sich entscheiden was ihm besser gefällt.
Dachte ich auch zuerst, aber ich wurde eines besseren belehrtSlaterB hat gesagt.:also +1 ist ja nicht so schön,
wenn als erstes die 3 gezogen wurde hat danach die 4 eine doppelt so hohe Chance wie alle anderen Zahlen,
wieso eigentlich nur noch 1-48, 1-47 usw, sind die hohen Zahlen nicht mehr erlaubt?
package zufallszahlen;
public class Main
{
public static int zufaelligeZahl(int n) {
double dezimalZahl = Math.random();
int ganzZahl = (int)Math.round( dezimalZahl * n );
return ganzZahl;
}
public static void main( String[] args )
{
for(int i=0; i<6; i++){
int zufall = zufaelligeZahl(49);
System.out.println("Zufaellige Zahl: " + zufall);
}//ende for
}//ende public static void main( String[] args )
}//ende public class Main
Zufaellige Zahl: 31
Zufaellige Zahl: 49
Zufaellige Zahl: 14
Zufaellige Zahl: 3
Zufaellige Zahl: 31
Zufaellige Zahl: 32
ja natürlich,und könnte ich dann sagen vergleiche mir array 1 mit array 2??
int[] a1 = {12,2,5};
int[] a2 = {12,2,5};
System.out.println(Arrays.equals(a1, a2)); // richtig: da die elemente verglichen werden
System.out.println(a1.equals(a2)); //falsch: da die referenzen verglichen werden
Nein, hat die vier nicht. Wenn ich die 3 ziehe, wird die nächste Zahl erhöht, wenn sie größer oder gleich 3 ist. Wenn ich also als nächstes eine 48 ziehe, wird daraus eine 49.also +1 ist ja nicht so schön,
wenn als erstes die 3 gezogen wurde hat danach die 4 eine doppelt so hohe Chance wie alle anderen Zahlen,
wieso eigentlich nur noch 1-48, 1-47 usw, sind die hohen Zahlen nicht mehr erlaubt?
Ich gebs zu, ich habe nicht jedes Detail nachgelesen, aber wenn die nächste zu ziehende Zahl grösser sein muss als die grösste bisher gezogene Zahl, erhalten höhere zahlen automatisch eine grössere Warscheinlichkeit und das sollte ja wohl nicht sein.
Oder stell dir vor, die erste gezogene Zahl ist schon die höchste aller Möglichkeiten - was dann?
Sollte ich total daneben liegen, grinst einfach und ignoriert mein Posting ;-)
Fehler Fehler Fehler,Nächste Zahl ziehen von 1 bis 44, sagen wir 6. Ist größer als 4 aber kleiner als der Rest, also einmal erhöhen auf 7. Endergebnis 4,6,10,16,17,49.
ja natürlich,
Java:int[] a1 = {12,2,5}; int[] a2 = {12,2,5}; System.out.println(Arrays.equals(a1, a2)); // richtig: da die elemente verglichen werden System.out.println(a1.equals(a2)); //falsch: da die referenzen verglichen werden
dann muss man halt vorher sortieren... oder händisch suchen mit zwei verschachtelten schleifen... fals es eine Schulaufgabe ist werd er die Arrays Klasse eh nicht verwenden dürfen...
In den ersten paar vorlesungsübungen ist es sinvoll die Leute die utill, collection klassen nicht benutzen zu lassen.Und warum sollte er die Arrays Klasse nicht verwenden dürfen?