Zufallszahlen fuer Lotto generieren

Landei

Top Contributor
Um EikeBs Antwort etwas auszuführen:

Eine List mischt man mit java.util.Collections.shuffle(list)

Will man selber "ziehen", bietet sich ein Set an:
Java:
Random random = new Random();
Set<Integer> set = new HashSet<Integer>();
while(set.size() < 6) {
   set.add(random.nextInt(49) + 1);
}

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.
 

c_sidi90

Top Contributor
würde einfach ein Int[] Array erzeugen und das mit 6 Zufallszahlen fühlen und beim ziehen der Zahl auf richtigkeit prüfen.
 
S

SlaterB

Gast
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.
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?

---

das Thema gibts ja öfter hier, eine sehr schöne Variante für 'ohne Doppelte' ist dabei doch immer:
eine Liste mit 1-49 füllen, dann durchmischen, Collections.shuffle(),
und dann die ersten 6 Zahlen verwenden (edit: ok, schon genannt, wollte aber nicht nur meckern ;) )
 

ARadauer

Top Contributor
Seh da kein großen Vorteil drin, denke soll er einfach für sich entscheiden was ihm besser gefällt.

der Vorteil, ist dass du nicht dauern über dein array laufen musst um zu sehen ob die zahl schon drinnen ist. In einem Set sind die Elemente einzigartig, das heißt du kannst einfügen bis 6 Elemente drinnen sind (wie oben gezeigt) und kannst dir sicher sein, dass die zahlen unterschiedlich sind.
 
G

Gast2

Gast

mariusbopp

Bekanntes Mitglied
also ich erzeuge so 6 zufallszahlen zwischen 1 und 49
bisschen gegoogelt und das kam raus :

Java:
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
 

mariusbopp

Bekanntes Mitglied
mir stellt sich grade eine frage die vill ach zu dem thema passen könnte nehmen wir an ich schreibe 6 zahlen (vom user eingegeben) ind ein array
dann fülle ich ein 2tes array mit zufallszahlen

und könnte ich dann sagen vergleiche mir array 1 mit array 2??
 

ARadauer

Top Contributor
und könnte ich dann sagen vergleiche mir array 1 mit array 2??
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
 

Landei

Top Contributor
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?
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.

Die Reihenfolge ist aber wichtig, bei dem Verfahren müssen die Zahlen immer aufsteigend geordnet sein. Bei einer neuen Zahl geht man dann alle vorherigen durch, und erhöht, wenn sie größer oder gleich ist. Damit kann ich keine doppelten Werte erhalten, und wenn ich aus 49,48,47... ziehe auch nie einen "Überlauf".
 

Andi_CH

Top Contributor
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 ;-)
 

Landei

Top Contributor
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 ;-)

Leute, das ist doch wirklich nicht so schwer: Zahl ziehen von 1 bis 49, sagen wir 10. Nächste Zahl ziehen von 1 bis 48, sagen wir 15. Ist sie größer oder gleich als die vorige, um eins erhähen, also 16. Jetzt haben wir 10, 16. Nächste Zahl ziehen von 1 bis 47, sagen wir 15. Größer oder gleich als 10, also um eins erhöhen, mach 16. Größer oder gleich 16, also eins erhöhen, macht 17. Wir haben jetzt 10,16,17. Nächste Zahl ziehen von 1 bis 46, sagen wir 46. Größer als alle drei vorherigen, also dreimal erhöhen, also 49. Damit haben wir 10,16,17,49. Nächste Zahl ziehen von 1 bis 45, sagen wir 4. Ist kleiner als alle, bleibt 4. Damit haben wir 4,10,16,17,49. 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,7,10,16,17,49. Keine Ahnung wie ich noch erklären soll, dass da alles gleichverteilt ist und nichts doppelt auftritt. Ist eigentlich klar wie Kloßbrühe.
 
Zuletzt bearbeitet:

sebi680

Mitglied
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

Hallo erstmal, bin neu hier :)

Hier gibt es ein kleines Problem denke ich.
So wie sich der Thread bisher liest, will der OP einen User 6 Zahlen eingeben lassen und dann vergleichen, ob die Zahlen die gleichen sind, die vorher zufällig ermittelt wurden.

Aber die "equals" Methode aus Arrays überprüft afaik auch die Reihenfolge der Elemente, oder nicht?
D.h. in diesem Fall könnten die gleichen 6 Zahlen in beiden Arrays vorhanden sein, wenn sie aber in einer unterschiedlichen Reihenfolge enthalten sind, kriegt man ein "false".

Habs nicht extra nachgeschaut jetzt, aber ich hab das so in Erinnerung.
 

ARadauer

Top Contributor
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...
 

sebi680

Mitglied
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...


Die Lösungsansätze sind mir klar, ging eher darum, dass der OP nicht einen virtuellen 6er im Lotto erzielt und dann nichtmal ein "Juhu" auf der Kommandozeile angezeigt bekommt ;)

Und warum sollte er die Arrays Klasse nicht verwenden dürfen?
 

ARadauer

Top Contributor
Und warum sollte er die Arrays Klasse nicht verwenden dürfen?
In den ersten paar vorlesungsübungen ist es sinvoll die Leute die utill, collection klassen nicht benutzen zu lassen.

Klar wenn ich als übung eine verkette Liste machen lassen will und die schreiben new LinkedList();

oder ich will ihnen hash sort , bubble sort beibringen und die machen Collection.sort macht das wenig sinn ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Zufallszahlen generieren Java Basics - Anfänger-Themen 5
H 36 Zufallszahlen die sich nicht wiederholen Java Basics - Anfänger-Themen 27
J Zufallszahlen generieren und Werte vergleichen Java Basics - Anfänger-Themen 3
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
S Aus gleichverteilte Zufallszahlen normalverteilte Zufallszahlen generieren ? Java Basics - Anfänger-Themen 1
N Array mit Zufallszahlen und Divison Java Basics - Anfänger-Themen 7
A Mit Rekursion Zufallszahlen erstellen und größte finden Java Basics - Anfänger-Themen 5
S Schiffe versenken - Zufallszahlen in einem Array Java Basics - Anfänger-Themen 6
A Dreidimensionales Array mit Zufallszahlen befüllen Java Basics - Anfänger-Themen 18
J Klassen Math && Random: wie zufällig sind Zufallszahlen? Java Basics - Anfänger-Themen 19
T Methoden HashSet Objekt mit Zufallszahlen befüllen Java Basics - Anfänger-Themen 3
L Array-Problem/Zufallszahlen Java Basics - Anfänger-Themen 7
V Array mit Zufallszahlen - Anfänger - Hilfe Java Basics - Anfänger-Themen 12
B Zufallszahlen ohne Wiederholung Java Basics - Anfänger-Themen 10
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
B Zufallszahlen unabhängig von Intervallen Java Basics - Anfänger-Themen 2
J Ungerade Zufallszahlen in JAVA Java Basics - Anfänger-Themen 31
B Zufallszahlen & Laufzeitmessung (insertionSort) Java Basics - Anfänger-Themen 7
W Zufallszahlen Java Basics - Anfänger-Themen 3
R Arrays Zufallszahlen Java Basics - Anfänger-Themen 10
W 10x10 Feld mit Zufallszahlen erstellen Java Basics - Anfänger-Themen 4
B Array erstellen,ausgeben,mit zufallszahlen füllen aber wie ? Java Basics - Anfänger-Themen 1
T Zufallszahlen von x bis 80 Java Basics - Anfänger-Themen 10
P Zufallszahlen ohne zahlen einer List Java Basics - Anfänger-Themen 21
K Keine doppelten Zufallszahlen im Array Java Basics - Anfänger-Themen 17
G Zufallszahlen Gewichten Java Basics - Anfänger-Themen 3
J Zufallszahlen Häufigkeit Java Basics - Anfänger-Themen 8
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3
W Java 2 Teams mit Zufallszahlen Java Basics - Anfänger-Themen 2
R Keine doppelten Zufallszahlen Java Basics - Anfänger-Themen 2
F Array mit Zufallszahlen sortieren Java Basics - Anfänger-Themen 7
G Methoden BigInteger Zufallszahlen erzeugen Java Basics - Anfänger-Themen 5
X write() und Zufallszahlen Java Basics - Anfänger-Themen 2
L Zufallszahlen addieren Java Basics - Anfänger-Themen 6
J Mehrere Zufallszahlen erzeugen, aber keine darf doppelt erzeugt werden - Wie? Java Basics - Anfänger-Themen 5
T Problem mit Zufallszahlen Java Basics - Anfänger-Themen 2
T Matrizzen addition mit zufallszahlen Java Basics - Anfänger-Themen 10
E Zufallszahlen Java Basics - Anfänger-Themen 7
R Probleme mit Zufallszahlen Java Basics - Anfänger-Themen 10
K Datentypen Gleiche Zufallszahlen in verschiedenen Datenstrukturen Java Basics - Anfänger-Themen 6
C Zufallszahlen mit Arrays Java Basics - Anfänger-Themen 8
P Array mit Zufallszahlen von einem Wuerfel Java Basics - Anfänger-Themen 15
B Zufallszahlen in ein Array eintragen. Java Basics - Anfänger-Themen 7
L Hilfe, doppelte Zufallszahlen Java Basics - Anfänger-Themen 13
S Wie Zufallszahlen in txt speichern? Java Basics - Anfänger-Themen 4
K zufallszahlen in Array Speichern = Nullpointer exception Java Basics - Anfänger-Themen 24
F Aus Regulären Ausdrücken Zufallszahlen bilden Java Basics - Anfänger-Themen 6
M Zufallszahlen mit Random Java Basics - Anfänger-Themen 4
S Summe von Zufallszahlen Java Basics - Anfänger-Themen 9
B Zufallszahlen Java Basics - Anfänger-Themen 5
M Zufallszahlen aus einem bestimmten Intervall Java Basics - Anfänger-Themen 5
N Normalverteilte Zufallszahlen mit benutzerdefiniertem/r EW/Var Java Basics - Anfänger-Themen 5
C Zufallszahlen Problem Java Basics - Anfänger-Themen 6
C Zufallszahlen Java Basics - Anfänger-Themen 3
C Frage zur Generierung von Zufallszahlen Java Basics - Anfänger-Themen 9
W Zufallszahlen für Array Java Basics - Anfänger-Themen 3
G Problem mit Zufallszahlen Java Basics - Anfänger-Themen 6
G Zufallszahlen die alles einmal vorkommen Java Basics - Anfänger-Themen 15
G Lotto Zufallszahlen zählen Java Basics - Anfänger-Themen 3
A Zufallszahlen generieren Java Basics - Anfänger-Themen 2
A Problem mit dem Zufallszahlen-Generator Java Basics - Anfänger-Themen 17
J Zufallszahlen einmalig ausgeben Java Basics - Anfänger-Themen 6
B Int Array mit Zufallszahlen füllen Java Basics - Anfänger-Themen 8
G Zufallszahlen ohne doppelten Wert Java Basics - Anfänger-Themen 5
R Zufallszahlen mit Java Java Basics - Anfänger-Themen 11
N Zufallszahlen wiederholungslos erzeugen Java Basics - Anfänger-Themen 8
G Zufallszahlen erraten Java Basics - Anfänger-Themen 8
K zufallszahlen int / double, gerade / ungerade problem . Java Basics - Anfänger-Themen 2
X Lotto Zufallszahlen mit ArrayList erstellen Java Basics - Anfänger-Themen 3
M Zufallszahlen fertig! aber nice to have noch offen Java Basics - Anfänger-Themen 5
M generierung von zufallszahlen Java Basics - Anfänger-Themen 4
B Zufallszahlen erzeugen die nicht gleich sind ;/ Java Basics - Anfänger-Themen 10
M Zufallszahlen Java Basics - Anfänger-Themen 3
B Satz Zufallszahlen ohne Wiederholung Java Basics - Anfänger-Themen 14
G Zufallszahlen Java Basics - Anfänger-Themen 4
N ganzzahlige Zufallszahlen Java Basics - Anfänger-Themen 13
B Zufallszahlen je einmal in Array einfügen Java Basics - Anfänger-Themen 4
H Zufallszahlen Java Basics - Anfänger-Themen 2
S Library fuer Graphen Java Basics - Anfänger-Themen 3
S suche nach varible POSITION ... fuer das pixel-maennchen Java Basics - Anfänger-Themen 4
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
S Funktion die mir fuer einen String eine Zahl zwischen 0.0 und 1.0 zurueckliefert..? Java Basics - Anfänger-Themen 9
T Wie vergleiche ich die Jahre aus der while Schleife die in ( public class) fuer cbx geschrieben sind Java Basics - Anfänger-Themen 5
M Klasse fuer eine 5er Liste? Java Basics - Anfänger-Themen 5
S Android fuer Swing-Kenner..? Java Basics - Anfänger-Themen 6
B Externe Libraries fuer Applet ... Pfad eingeben? Java Basics - Anfänger-Themen 23
J MouseListener fuer gezeichnete Polyline Java Basics - Anfänger-Themen 3
B Lizenz fuer Programm vergeben. Java Basics - Anfänger-Themen 13
S In Eclipse relativen Pfad fuer Tomcat Server erstellen..? Java Basics - Anfänger-Themen 3
V ObjectOutputStream/ObjectInputStream eines Objectes fuer mehrere Threads Java Basics - Anfänger-Themen 6
S Methode die Wrapper Klasse fuer einen primitiven Typ zurueck Java Basics - Anfänger-Themen 11
S String Konstante kann nicht fuer Annotation verwendet werden Java Basics - Anfänger-Themen 2
B Netzwerkloesung fuer Spiel Java Basics - Anfänger-Themen 4
G Wahl fuer die Highscoreliste Java Basics - Anfänger-Themen 9
C Links fuer Tuts und so. Java Basics - Anfänger-Themen 2
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
U Lotto-Zahlen App Java Basics - Anfänger-Themen 34
A Lotto Programm Java Basics - Anfänger-Themen 3
J Lotto 6 aus 49 Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben