Zufallszahlen ohne Wiederholung

battlefire

Mitglied
Hallo liebe Leute,
ich bin nicht der Javakünstler mit den großen Kenntnissen, daher bräuchte ich etwas Hilfe. Das Problem ist, dass im Topf Zahlen doppelt vorkommen dürfen, aber bei der Ziehung soll er, falls er bei einer Ziehung (6 Zahlen) eine Zahl mit dem gleichen Wert zieht, soll diese wieder verworfen werden und nachträglich noch eine weitere ziehen. Es ist sozusagen "6 Zahlen ziehen und wenn eine doppelt gezogen wird(oder mehr), dann zieh noch eine und verwerfe die doppelt gezogene"
Java:
import java.util.Random;

import java.util.Random;

class Lottoshuffle
{
  public static void main(String args[])
  {
    int[] solutionArray = {1,2,3,4,5,6,7,8,9,
                          1,2,3,4,5,6,7,8,9,
                          10,11,12,13,14,15,
                          10,11,12,13,14,15,
                          22,23,24,25,26,27,
                          28,29,30,31,32,33,
                          34,35,36,37,38,39,
                          40,41,42,43,
                          46,47,48,
                          46,47,48};


    for (int x = 0; x <=10; x++) {
    shuffleArray(solutionArray);
    for (int i = 0; i < 6; i++)
        {
        System.out.print(solutionArray + " ");
        }
    System.out.println();
    }

System.out.println();
}

  // Implementing Fisher–Yates shuffle
  static void shuffleArray(int[] ar)
  {
    // If running on Java 6 or older, use `new Random()` on RHS here
    Random rnd = new Random();
    for (int i = ar.length - 1; i > 0; i--)
    {
      int index = rnd.nextInt(i + 1);
      // Simple swap
      int a = ar[index];
      ar[index] = ar;
      ar = a;
    }
  }
}
 

JCODA

Top Contributor
Wenn du nicht viel verändern möchtest, könntest du alle gezogenen zu einem HashSet hinzufügen, und solange ziehen bis die gewünschte Anzahl im Hashset ist.

Ansonsten kannst du mit ner zweiten For-Schleife testen, ob gezogene Zahl schon vorhanden, falls ja, neue Ziehen.
 

battlefire

Mitglied
Könntest Du das am meinem Code mit dem HashSet mir zeigen?
Ich würde das mal mit der 2. Schleife probieren und gucken, ob ich da eine Lösung finde.
 

JCODA

Top Contributor
Du hattest da bei dem Tauschen noch etwas falsch ...

Hier meine HashSet-Variante:

Java:
import java.util.HashSet;
import java.util.Random;

class Lottoshuffle {
    public static void main(String args[]) {
        int[] solutionArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7,
                8, 9, 10, 11, 12, 13, 14, 15, 10, 11, 12, 13, 14, 15, 22, 23,
                24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
                40, 41, 42, 43, 46, 47, 48, 46, 47, 48 };

        final int toDraw = 6;

        for (int x = 0; x <= 10; x++) {
            shuffleArray(solutionArray);
            HashSet<Integer> drawn = new HashSet<>();
            for (int k = 0; drawn.size() < toDraw && k < solutionArray.length; k++) {
                drawn.add(solutionArray[k]);
            }
            System.out.println(drawn + " ");

            // System.out.println();
        }

        System.out.println();
    } // Implementing Fisher–Yates shuffle

    static void shuffleArray(int[] ar) {
        // If running on Java 6 or older, use `new Random()` on RHS here
        Random rnd = new Random();
        for (int i = ar.length - 1; i > 0; i--) {
            int index = rnd.nextInt(i + 1);
            // Simple swap
            int a = ar[i];
            ar[i] = ar[index];
            ar[index] = a;
        }
    }
}

Achso und mit einem TreeSet wäre die Ausgabe noch automatisch sortiert:

Java:
import java.util.Random;
import java.util.TreeSet;


class Lottoshuffle {
    public static void main(String args[]) {
        int[] solutionArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7,
                8, 9, 10, 11, 12, 13, 14, 15, 10, 11, 12, 13, 14, 15, 22, 23,
                24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
                40, 41, 42, 43, 46, 47, 48, 46, 47, 48 };

        final int toDraw = 6;

        for (int x = 0; x <= 10; x++) {
            shuffleArray(solutionArray);
            TreeSet<Integer> drawn = new TreeSet<>();
            for (int k = 0; drawn.size() < toDraw && k < solutionArray.length; k++) {
                drawn.add(solutionArray[k]);
            }
            System.out.println(drawn + " ");

            // System.out.println();
        }

        System.out.println();
    } // Implementing Fisher–Yates shuffle

    static void shuffleArray(int[] ar) {
        // If running on Java 6 or older, use `new Random()` on RHS here
        Random rnd = new Random();
        for (int i = ar.length - 1; i > 0; i--) {
            int index = rnd.nextInt(i + 1);
            // Simple swap
            int a = ar[i];
            ar[i] = ar[index];
            ar[index] = a;
        }
    }
}
 

battlefire

Mitglied
Sehr Gut! Danke! Damit hast Du mir heute Abend noch zu einer besseren Lösung verholfen!
Ich hätte jetzt noch probiert die Ergebnisse ohne doppelte Zahlen in ein 2. Array zu kopieren.
 

JCODA

Top Contributor
Am besten und einfachsten ist die zweite for-Schleife. Das HashSet/TreeSet sind hier schon ein bisschen Overkill und ich vermute auch nicht Sinn der Aufgabe ;)
 

battlefire

Mitglied
OK! Ich werde erst mal so noch mit rumspielen und gucken, wie mir das nützlich ist bzw. erweitern kann:)Die 2. Schleife folgt noch!
Dir noch eine gute Nacht und Danke nochmal!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Satz Zufallszahlen ohne Wiederholung Java Basics - Anfänger-Themen 14
P Zufallszahlen ohne zahlen einer List Java Basics - Anfänger-Themen 21
G Zufallszahlen ohne doppelten Wert Java Basics - Anfänger-Themen 5
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
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
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
P Zufallszahlen fuer Lotto generieren Java Basics - Anfänger-Themen 28
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
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
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
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
V JSON-Objs aus JSON-Obj filtern und löschen (Manipulation ohne Kenntnis der vollst. Struktur) Java Basics - Anfänger-Themen 12
O HashTable kann ohne Performance-Verlust in Multithreaded-Anwendungen eingesetzt werden. Java Basics - Anfänger-Themen 6
T Mehrere if bedingungen ohne & Java Basics - Anfänger-Themen 2
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
P 2n Potenzieren ohne Math.pow oder pow Java Basics - Anfänger-Themen 8
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
W GUI - JButton ohne Funktion? Java Basics - Anfänger-Themen 24
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
R Buttons ohne Funktion Java Basics - Anfänger-Themen 2
JavaBeginner22 TextArea, ohne Zeilenumbruch? Java Basics - Anfänger-Themen 4
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
S Was macht ++ ohne Schleife? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben