Erste Schritte Lottozahlen richtig generieren.

J

Juare

Neues Mitglied
Guten Morgen,

ich habe von meinem Lehrer die Aufgabe bekommen ein Lottozahlen Programm zu erstellen.
Dies soll die erstellten Zahlen in ein Array speichern und dann überprüfen ob es eine Zahl doppelt gibt wenn ja soll für diesen Speicherplatz im Array eine neue Zahl generiert werden.

Ich habe nun folgendes Programm geschrieben:

Java:
import java.util.*;
public class lottozahlenGenerator2 {
 
  public static void main(String[] args) {
   
    int[] lottozahlen; //Deklarierung
    int anzahlLottozahlen = 6;
    int lottozahlRand;
    int bereitsVorhanden = 0;
   
    lottozahlen = new int [anzahlLottozahlen]; //Initialisierung
   
   
    for (int i = 0; i < lottozahlen.length; i++){
     
      if(bereitsVorhanden == 1){
        i -= 1; 
      }
     
      lottozahlRand = new Random().nextInt(49) + 1;
     
     
      if(i > 0){

        if(lottozahlen[i-1] != lottozahlRand){
          System.out.println("Zahl "+lottozahlRand+" ist ungleich zur "+i+" Zahl");
        }
        else{
          System.out.println("Diese Zahl ist bereits vorhanden");
          bereitsVorhanden = 1;
        }
         

      }
     
      if(bereitsVorhanden == 0){
        lottozahlen[i] = lottozahlRand;
        }
       
       
    }
       
       
        for(int i = 0; i < lottozahlen.length; i++){
        System.out.println(lottozahlen[i]);
        System.out.println(".");
        }
        }
       
        }

Leider prüft der Code bis jetzt nur ob die vorherige Zahl bereits vorhanden war somit sind doppelte Zahlen nicht ausgeschlossen...

Würde mich sehr über Tipps freuen :)

Gruß
Juare
 
olfibits

olfibits

Aktives Mitglied
Überprüfen mit einer for-Schleife ob bei allen vorherigen Zahlen eine bestimmte Zahl schon mal da war? ;)
 
J

Javinner

Top Contributor
Juare hat gesagt.:
Dies soll die erstellten Zahlen in ein Array speichern und dann überprüfen ob es eine Zahl doppelt gibt wenn ja soll für diesen Speicherplatz im Array eine neue Zahl generiert werden
Schritt für Schritt:
- speichere sechs Zahlen im Array
- erst dann prüfe, ob eine Zahl doppelt im Array vorhanden ist
- falls der Fall, generiere eine neue Zahl, welche wiederum nicht im Array vorkommt.
Java:
public class Test
{

    static final int ZAHLEN_OBERGRENZE = 49;
    static final int ZAHLEN_REIHE = 6;

    public static void main(String[] args)
    {
        int[] lotto = new int[Test.ZAHLEN_REIHE];
        erzeugeZahlen(lotto);
        Arrays.sort(lotto);
        System.out.println(Arrays.toString(lotto));
    }

    //Malen nach Zahlen
    static void erzeugeZahlen(int[] array)
    {
        setzeZahlen(array);
        pruefeZahlen(array);
    }

    //Die Methode hast du ja praktisch, daher ist Code sichtbar
    //Bei anderen Methoden helfe ich dir nur, wenn du bereit bist, die Loesungswege selbst zu         beschreiten
    static void setzeZahlen(int[] array)
    {
        for (int i = 0; i < array.length; i++) {
            array[i] = zahl();
        }
    }

    static void pruefeZahlen(int[] array)
    {
       //Hier soll geprueft, ob das Array mehrere gleiche Zahlen besitzt
       //Gehe durch das Array und pruefe mit der Methode zahlVorhanden(),
       //ob eine Zahl im Array mehrfach vorkommt
    }

    static int zahl()
    {
        //Warum diese Methode einzeln?
        return (int) (Math.random() * Test.ZAHLEN_OBERGRENZE) + 1;
    }

    static boolean zahlVorhanden(int i, int[] array)
    {
        //Hier wird die einzelne Zahl geprueft.
        //Dabei gilt: wenn vorhanden, soll die Zahl im Array durch neue,
        //im Array nicht vorhandene Zahl, ersetzt werden.
        //Dabei greife auf die Methode neueZahl()
    }

    static int neueZahl(int i, int[] array)
    {
        //Hier wird eine neue Zahl mittels Methode zahl() generiert.
        //Dabei wird wiederum geprueft, ob die neu generierte Zahl bereits im Array vorkommt,
        //zu Hilfe wieder die Methode zahlVorhanden() und erst, wenn es nicht zutrifft,
        //wird die neue Zahl zurueckgegeben
    }

}
 
Zuletzt bearbeitet:
MarzAttak

MarzAttak

Mitglied
Ich würde statt der for- eine While-Schleife benutzen. Diese solange Zufallszahlen erzeugen lassen, bis wir 6 ungleiche Zahlen haben.
 
kneitzel

kneitzel

Top Contributor
Das ist einfach ein Online Anbieter für Lotto. Also einfach mal nach Lottoland suchen. Oder bin ich jetzt auf Spam herein gefallen?
 
I

infos9

Mitglied
Damit das Thema ein Ende findet:
Lotto.java:
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Lotto {
    public static void main(String[] args) {
        List<Integer> zahlen = IntStream.rangeClosed(1, 49).boxed().collect(Collectors.toList());
        Collections.shuffle(zahlen);
        System.out.println(zahlen.stream().limit(6).sorted().map(String::valueOf).collect(Collectors.joining(", ")));
        System.out.println("Superzahl: " + (int) (Math.random() * 10.0));
    }
}
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Man sollte bei sowas immer auch die Fähigkeiten moderner Mehrkernprozessoren ausnutzen, alles andere ist völlig veraltet:

Java:
public static void main(String[] args) throws ExecutionException, InterruptedException {
    ForkJoinPool forkJoinPool = new ForkJoinPool(49);
    final int[] lottoZahlen = forkJoinPool.submit(() ->
                                                  IntStream.rangeClosed(1, 49)
                                                  .unordered()
                                                  .parallel()
                                                  .filter(value -> sleep())
                                                  .limit(6)
                                                  .sorted().toArray())
        .get();

    System.out.println(Arrays.toString(lottoZahlen));
    System.out.println("Superzahl: " + (int) (Math.random() * 10.0));
}

static boolean sleep() {
    try {
        Thread.sleep(1);
        return true;
    } catch (InterruptedException e) {
        return false;
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Lottozahlen Java Basics - Anfänger-Themen 13
J Lottozahlen Java Basics - Anfänger-Themen 129
M Java Programm: Lottozahlen Java Basics - Anfänger-Themen 4
T Lottozahlen ziehen Java Basics - Anfänger-Themen 19
M Lottozahlen 6 aus 49 keine doppelten Java Basics - Anfänger-Themen 5
V Lottozahlen Java Basics - Anfänger-Themen 10
C Arrays Lottozahlen Java Basics - Anfänger-Themen 29
M Lottozahlen mit grafischer Oberfläche Java Basics - Anfänger-Themen 6
Z Problem mit Lottozahlen Generator Java Basics - Anfänger-Themen 2
JeromeM90 Problem bei meinem Programm : Lottozahlen Java Basics - Anfänger-Themen 30
D Lottozahlen Java Basics - Anfänger-Themen 15
B Lottozahlen Programm!?!? Java Basics - Anfänger-Themen 3
F Methoden Methode richtig aufrufen Java Basics - Anfänger-Themen 3
D Klassen Klassendiagramm richtig erstellen Java Basics - Anfänger-Themen 20
J Module richtig einbinden Java Basics - Anfänger-Themen 2
B Sind meine If-Statements richtig angesetzt ? Java Basics - Anfänger-Themen 27
V Boolean Wert nicht richtig erkannt Java Basics - Anfänger-Themen 4
X Wie Generics richtig benutzen ? Java Basics - Anfänger-Themen 5
P Stringbuilder richtig einsetzen Java Basics - Anfänger-Themen 1
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
A Array richtig füllen Java Basics - Anfänger-Themen 2
S String richtig formatieren Java Basics - Anfänger-Themen 2
P Methoden richtig anwenden Java Basics - Anfänger-Themen 3
O Popoup Menü im JTable richtig anzeigen Java Basics - Anfänger-Themen 6
D Richtig für Programmieren an der UNI lernen Java Basics - Anfänger-Themen 8
X Best Practice Ein int Array richtig mischen Java Basics - Anfänger-Themen 20
D Richtig Vorbereiten auf eine Programmier Klausur Studium. Java Basics - Anfänger-Themen 7
M ObservableList wird nicht richtig geleert Java Basics - Anfänger-Themen 0
T Sortieralgorithmen richtig? Java Basics - Anfänger-Themen 1
X Objekte einer ArrayList richtig ausgeben? Java Basics - Anfänger-Themen 8
S Wie implementiere ich MouseDragged richtig Java Basics - Anfänger-Themen 7
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
P Input/Output PQ-Formel wird nicht richtig berechnet Java Basics - Anfänger-Themen 6
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
H Wie lerne ich Java richtig? Java Basics - Anfänger-Themen 2
N Ich weiß nicht, wie ich meinen Code richtig designen soll und komme nicht weiter Java Basics - Anfänger-Themen 4
B Wie instanzisiert man einen Cursor richtig? Java Basics - Anfänger-Themen 3
J Polymorphie und Dynamisches Binden richtig nutzen Java Basics - Anfänger-Themen 11
N Best Practice Ist die Sortierung richtig? Java Basics - Anfänger-Themen 3
J Behauptung so richtig? Java Basics - Anfänger-Themen 10
R Listen richtig implementieren Java Basics - Anfänger-Themen 3
B OOP Objekt in IF erzeugen - funktioniert nicht so richtig Java Basics - Anfänger-Themen 11
A Methode richtig überladen Java Basics - Anfänger-Themen 6
H Aufgabe so richtig gelöst? Java Basics - Anfänger-Themen 14
S Code richtig / besser machbar? (Nicht sicher, ob Code selbst falsch ist) Java Basics - Anfänger-Themen 4
W Ist mein Struktogram richtig erstellt worden? Java Basics - Anfänger-Themen 4
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
U Mehrfach verwendete Sub-Klassen richtig einbinden Java Basics - Anfänger-Themen 4
L Schleife funktioniert nicht richtig Java Basics - Anfänger-Themen 12
Meeresgott OOP Richtig mit java.util.Property umgehen Java Basics - Anfänger-Themen 22
Y Erste Schritte Ich verstehe this. nicht so richtig Java Basics - Anfänger-Themen 5
I Programm von mir - keine Ahnung mehr ob richtig falsch:-( Java Basics - Anfänger-Themen 6
M Abstände richtig wiedergeben Java Basics - Anfänger-Themen 2
S nio move() funktioniert nicht richtig Java Basics - Anfänger-Themen 2
J Timer richtig pausieren Java Basics - Anfänger-Themen 2
B Ist meine Klasse richtig kommentiert? Java Basics - Anfänger-Themen 2
kilopack15 Ist diese setter-Methode richtig? Java Basics - Anfänger-Themen 2
H OOP, wie gehts richtig? (Beispiel von meinem Prof) Java Basics - Anfänger-Themen 6
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
kilopack15 Lösungsansatz richtig? Java Basics - Anfänger-Themen 23
Meeresgott OOP Socket Verbindung richtig Kapseln Java Basics - Anfänger-Themen 0
Meeresgott OOP Gui, Logik und Datenbank richtig aufbauen Java Basics - Anfänger-Themen 43
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
C Warum funktioniert mein If Statement nicht richtig? Java Basics - Anfänger-Themen 18
J Aufgabe(Threads) richtig verstanden/implementiert Java Basics - Anfänger-Themen 27
K Erste Schritte Wie lerne ich Java richtig? Java Basics - Anfänger-Themen 22
U Richtig *.properties speichern Java Basics - Anfänger-Themen 0
N Lambda Ausdrücke richtig schreiben Java Basics - Anfänger-Themen 4
B OOP Wie benutze ich die Main Funktion richtig? Java Basics - Anfänger-Themen 10
3 Gitternetz richtig darstellen Java Basics - Anfänger-Themen 3
B Exception richtig einbinden Java Basics - Anfänger-Themen 1
D CSV Files richtig zusammenführen Java Basics - Anfänger-Themen 3
D Array richtig ausgeben Java Basics - Anfänger-Themen 6
Z HashMap richtig benutzen Java Basics - Anfänger-Themen 2
S Variable (int) erhöht sich nicht richtig Java Basics - Anfänger-Themen 18
J Vererbung Wurden die Aufgaben richtig programmiert? Java Basics - Anfänger-Themen 20
J Iterator Funktioniert nicht richtig in StackImplementierung Java Basics - Anfänger-Themen 3
L0MiN Input/Output Wie kann ich Kompilierfehler richtig ausgeben lassen (Runtime)? Java Basics - Anfänger-Themen 1
J Programm im Jar-Format funktioniert nicht richtig Java Basics - Anfänger-Themen 9
L Arrays richtig initialisieren Java Basics - Anfänger-Themen 1
V Java Regex richtig parsen Java Basics - Anfänger-Themen 2
O Programm funktioniert nur im Debugger richtig Java Basics - Anfänger-Themen 2
F Klassen für Objekt richtig erstellen Java Basics - Anfänger-Themen 8
M Programm wird nicht richtig ausgeführt Java Basics - Anfänger-Themen 4
Q Path wird nicht richtig "übersetzt"? Java Basics - Anfänger-Themen 7
W HTML Code, Umlaute werden nicht richtig dargestellt Java Basics - Anfänger-Themen 7
T Threads Threads richtig synchronisieren Java Basics - Anfänger-Themen 3
? Wie sind ESCAPE-Sequenzen (z.B \f für einen Seitenvorschub) richtig anuwenden? Java Basics - Anfänger-Themen 3
A Apk wird nicht richtig Exportiert Java Basics - Anfänger-Themen 1
A ToString()-Methode richtig benutzen Java Basics - Anfänger-Themen 3
I komponenten werden in JFrame nicht richtig angezeigt Java Basics - Anfänger-Themen 1
R Objekt nicht richtig instanziert? Java Basics - Anfänger-Themen 1
M JProgressBar wird nicht richtig angezeigt Java Basics - Anfänger-Themen 8
S Date parsen klappt nicht richtig Java Basics - Anfänger-Themen 3
C Methoden schnell und richtig schreiben Java Basics - Anfänger-Themen 8
TheSorm JScroolBar richtig benutzen Java Basics - Anfänger-Themen 8
M Die Breite bei der Gui richtig setzen. Java Basics - Anfänger-Themen 1
T Array Aufgabe so richtig ? Java Basics - Anfänger-Themen 8
I GroupLayout richtig anwenden Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben