Istnieje kilka opcji tworzenia generatora liczb pseudolosowych w języku Java. Jedną z takich opcji jest użycie klasy java.util.Random i metody nextInt() . W tym artykule porozmawiamy o metodzie Random nextInt() i podamy kilka przykładów kodu jej użycia.
Krótko o klasie java.util.Random
Jak powiedzieliśmy, klasa java.util.Random jest generatorem liczb pseudolosowych. Klasa jest reprezentowana przez dwóch konstruktorów-
Random() — tworzy generator liczb przy użyciu unikalnego materiału siewnego
-
Random(long seed) — umożliwia ręczne określenie nasion
Losowa metoda nextInt().
Istnieją dwie opcje Metoda java.util.Random.nextInt().-
int nextInt(int n) — zwraca następną losową wartość typu int z przedziału od 0 do n. Metoda zgłasza IllegalArgumentException , jeśli n nie jest dodatnie.
-
int nextInt() — zwraca następną losową wartość typu int
Losowy kod metody nextInt() Przykład
Wypróbujmy oba warianty metody java.util.Random.nextInt() z przykładami kodu. Oto przykład metody nextInt() bez argumentów:
import java.util.*;
public class RandomTest {
public static void main(String[] args)
{
//creating a Random Object ran
Random ran = new Random();
//generating a number using nextInt() method
int randomNumber = ran.nextInt();
System.out.println("Randomly generated number = " + randomNumber);
}
}
Wyjście będzie… nie wiemy na pewno! Po prostu wypróbuj kod, a otrzymasz losowo wygenerowaną liczbę całkowitą. Wypróbujmy Random.nextInt() z argumentem. Jednak tym razem nasz problem będzie bardziej interesujący. Prawdopodobnie nie raz widziałeś reklamy kasyn online, dosłownie zalały Internet. Tak więc sekwencja generatora liczb w takich grach jest zwykle tworzona przy użyciu metod i klas, takich jak Random . Stwórzmy program, w którym rzucamy dwiema kostkami z liczbą od 1 do 6 wypisaną po obu stronach.
import java.util.*;
public class RandomTest2 {
public static void main(String args[])
{
// create Random Object
Random random = new Random();
// Printing the 6 random numbers between 1 and 6 using //random.nextInt()
for (int i = 1; i < 7; i++) {
System.out.println("throwing a dice for the " + i + " time");
System.out.println ("Random number between 1 and 6 is = " + (1 + random.nextInt(6)));
}
}
}
W tym programie gracz „rzuca” kostką 6 razy z rzędu. Random.nextInt() określa następną liczbę. Oto jeden z wyników:
rzut kostką po raz 1
Losowa liczba od 1 do 6 to = 5
rzut kostką po raz 2
Losowa liczba od 1 do 6 to = 6
rzuć kostką po raz 3
Losowa liczba od 1 do 6 to = 6
rzucamy kostką po raz czwarty
Losowa liczba od 1 do 6 to = 5
rzut kostką po raz 5
Losowa liczba od 1 do 6 to = 2
rzucamy kostką po raz 6
Losowa liczba od 1 do 6 to = 4
W podobny sposób można zaimplementować grę w kości dla dwóch graczy. A także na przykład loteria lub ruletka. Jeśli kiedykolwiek grałeś w grę z proceduralnym generowaniem świata, masz teraz wstępne pojęcie, jak to działa.
GO TO FULL VERSION