Heim  >  Artikel  >  Java  >  So generieren Sie Zufallszahlen in Java

So generieren Sie Zufallszahlen in Java

藏色散人
藏色散人Original
2019-01-17 10:13:4836397Durchsuche

So generieren Sie Zufallszahlen in Java: Platzieren Sie zunächst die Importanweisung vor dem Start der Programmklasse. Erstellen Sie dann ein Zufallsobjekt und wählen Sie schließlich eine Zufallszahl aus einem bestimmten Bereich aus.

So generieren Sie Zufallszahlen in Java

Die Betriebsumgebung dieses Artikels: Windows 7-System, Dell G3-Computer, Java Version 8.0.

Das Generieren einer Reihe von Zufallszahlen ist eine der häufigsten Aufgaben, die von Zeit zu Zeit anfallen. In Java kann dies einfach mit der Klasse java.util.Random erreicht werden.

Wie bei jeder API-Klasse besteht der erste Schritt darin, die Importanweisung vor dem Start der Programmklasse einzufügen:

 import java.util.Random;

Als nächstes erstellen Sie ein Zufallsobjekt:

 Random rand = new Random();

Random Object stellt Ihnen einen einfachen Zufallszahlengenerator zur Verfügung. Die Methoden des Objekts bieten die Möglichkeit, Zufallszahlen auszuwählen. Beispielsweise geben die Methoden nextInt() und nextLong() eine Zahl innerhalb des Wertebereichs (negativ und positiv) der Datentypen int bzw. long zurück:

 Random rand = new Random();
for (int j=0;j < 5;j++)
{
  System.out.printf("%12d ",rand.nextInt());
  System.out.print(rand.nextLong());
  System.out.println();
}

Die zurückgegebene Zahl ist a Zufällig ausgewählter int- und long-Wert:

-1531072189 -1273932119090680678
1849305478  6088686658983485101
1043154343  6461973185931677018
1457591513  3914920476055359941
-1128970433 -7917790146686928828

Wählen Sie eine Zufallszahl aus einem Bereich aus

Normalerweise muss die zu generierende Zufallszahl aus einem bestimmten Bereich stammen (z. B. zwischen 1 und 40). Zu diesem Zweck kann die Methode nextInt() auch den Parameter int akzeptieren. Es stellt die Obergrenze eines numerischen Bereichs dar. Allerdings ist die Oberzahl nicht in einer der auswählbaren Zahlen enthalten. Das mag verwirrend klingen, aber die nextInt()-Methode funktioniert von Grund auf. Beispiel:

 Random rand = new Random();
rand.nextInt(40);

wählt nur eine Zufallszahl von 0 bis 39 aus. Um aus einem Bereich auszuwählen, der mit 1 beginnt, addieren Sie einfach 1 zum Ergebnis der nextInt()-Methode. Um beispielsweise eine Zahl zwischen 1 und 40 auszuwählen, addieren Sie zum Ergebnis:

 Random rand = new Random();
int pickedNumber = rand.nextInt(40) + 1;

Wenn der Bereich mit einer höheren Zahl beginnt, müssen Sie Folgendes tun:

Subtrahieren Sie die Anfangszahl der oberen Zahl , dann füge eins hinzu.

Fügt die Startzahl zum Ergebnis der nextInt()-Methode hinzu.

Um beispielsweise eine Zahl zwischen 5 und 35 zu wählen, wäre die obere Grenzzahl 35-5 + 1 = 31 und 5 müsste zum Ergebnis addiert werden:

 Random rand = new Random();
int pickedNumber = rand.nextInt(31) + 5;

Wie zufällig ist die Klasse zufällig?

Ich sollte darauf hinweisen, dass die Random-Klasse Zufallszahlen auf deterministische Weise generiert. Der Algorithmus, der Zufälligkeiten erzeugt, basiert auf einer Zahl, die als Startwert bezeichnet wird. Wenn die Seed-Nummer bekannt ist, ist es möglich, die Anzahl zu berechnen, die sich aus dem Algorithmus ergibt. Um dies zu beweisen, verwende ich die Zahl des Tages, an dem Neil Armstrong zum ersten Mal den Mond betrat, als meine Startnummer (20. Juli 1969):

 import java.util.Random;
public class RandomTest {;
  public static void main(String[] args) {
    Random rand = new Random(20071969);
    for (int j = 0; j

Wer auch immer diesen Code ausführt, der „zufällig“ generierte The Die Zahlenfolge lautet:

 3 0 3 0 7 9 8 2 2 5

Standardmäßig wird die verwendete Startnummer wie folgt angegeben:

 Random rand = new Random();

ist die aktuelle Zeit in Millisekunden seit dem 1. Januar 1970. Typischerweise werden dadurch Zahlen erzeugt, die für die meisten Zwecke ausreichend zufällig sind. Bitte beachten Sie jedoch, dass zwei innerhalb derselben Millisekunde erstellte Zufallszahlengeneratoren dieselbe Zufallszahl generieren.

Seien Sie auch vorsichtig, wenn Sie die Random-Klasse für Anwendungen verwenden, die über einen sicheren Zufallszahlengenerator verfügen müssen (z. B. ein Glücksspielprogramm). Die Seed-Nummer lässt sich anhand der Laufzeit der Anwendung erraten. Im Allgemeinen ist es für Anwendungen, bei denen Zufallszahlen absolut entscheidend sind, am besten, Alternativen zu Zufallsobjekten zu finden. Für die meisten Anwendungen, die nur ein zufälliges Element erfordern (z. B. Würfel für ein Brettspiel), funktioniert es einwandfrei.

Das obige ist der detaillierte Inhalt vonSo generieren Sie Zufallszahlen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Warum Java wählen?Nächster Artikel:Warum Java wählen?