Gewusst wie: Generieren von Zufallszahlen ohne Wiederholung in Java

December 17

Gewusst wie: Generieren von Zufallszahlen ohne Wiederholung in Java

Der Programmiersprache Java enthält Werkzeuge zum Generieren von Zufallszahlen in Ihren Programmen. Wenn Sie eine Reihe von Zufallszahlen generieren möchten, aber wollen keine von ihnen wiederholt werden soll, müssen Sie bedingte Tests und Schleifen verwenden. Jede Zahl, die Sie erzeugen ein Set Collection-Objekt hinzufügen, können Sie sofort sagen, ob diese Duplikate sind. Wenn die Zahl ein Duplikat ist, können Sie anweisen, Java weiterhin neue Nummern generieren, bis er eine findet, die Sie nicht bereits den Satz hinzugefügt haben. Der Prozess umfasst zwei Schleifen und einer bedingten Anweisung.

Anweisungen

1 Importieren Sie die Java-Dienstprogramme für die Erzeugung von Zufallszahlen und festlegen Sie Objekt. Fügen Sie den folgenden Code am oberen Rand der Klassendeklaration:Import Java.util;

Erstellen Sie ein Objekt festlegen, um die Zahlen zu speichern, die Sie erzeugen:TreeSet MyNumbers = neue TreeSet();

Erstellen Sie eine Instanz der random-Klasse Ihre Zufallszahlen generieren:Zufällige RandGen = neue Random();

2 Erstellen Sie eine Schleife um Ihre Zufallszahlen zu generieren. Die folgende for-Schleife wird 20 Mal ausgeführt:für (Int i = 0; i < 20; i++) {}Erzeugung von hier}

Innerhalb dieser Schleife können Sie hinzufügen, die Verarbeitung zu generieren und überprüfen Ihre Zufallszahlen für Duplikate. Ändern Sie die Zahl 20 um die Gesamtzahl der Zufallswerte zu reflektieren, das Programm generieren soll. Innerhalb der Schleife erzeugt einen zufälligen Integerwert:Int RandNum = randGen.nextInt();

Dies wird jedes Mal ausgeführt, die die Schleife durchläuft.

3 Fügen Sie eine zweite Schlinge um doppelte Zahlen zu bewältigen. Fügen Sie den folgenden Code in Ihre erste Schleife nach der Nummer Erstellung der Zeile:(for(;;) {Umgang mit Duplikaten}

Dies ist eine Endlosschleife, damit sie ausgeführt wird, endlos, bis der Code explizit aus ihm bricht. Innerhalb dieser Schleife können Sie anweisen, Java fortsetzen, Generieren von Zufallszahlen, bis es eine generiert, die Sie nicht bereits verwendet haben.

4 Fügen Sie einen bedingten Test auf jede Zufallszahl. Fügen Sie den folgenden Code in der Endlosschleife:if(myNumbers.Add(randNum)) Pause;sonst RandNum = randGen.nextInt();

Wenn Sie versuchen, ein Element einer Gruppe hinzuzufügen, gibt die Methode True oder False zurück. Wenn das Element noch nicht in der Menge ist, wird true zurückgegeben, in diesem Fall kann der Code aus der Schleife brechen. Wenn das Element bereits in der Gruppe ist, die Methode gibt false zurück, in diesem Fall können Sie anweisen, Java, eine andere zufällige Zahl zu wählen. Die Schleife wird wieder ausgeführt testen den neuen Wert zu sehen, ob es sich um ein Duplikat ist. Dieser Prozess wird fortgesetzt, bis ein neuer Wert gefunden wird.

5 Testen Sie den Code. Fügen Sie die folgende Zeile nach der Endlosschleife, aber immer noch in der äußeren Schleife:System.out.println(randNum);

Dies wird Ihnen auf einen Blick sehen, dass Ihre Zahlen eindeutig sind. Speichern Sie die Datei, die kompilieren Sie Ihr Programm und führen Sie aus, um es zu testen. Durchsuchen Sie die Ausgabe zu überprüfen, ob Ihre Funktionen arbeiten.

Tipps & Warnungen

  • Sie können Zufallszahlen innerhalb eines bestimmten Bereichs generieren, indem ein Parameter an die Methode "NextInt".
  • Wenn Sie zahlen innerhalb eines bestimmten Bereichs generieren, stellen Sie sicher Ihre für Schleife nicht festgelegt ist, mal mehr als die möglichen Werte innerhalb dieses Bereichs auszuführen.