funkcja Random() i losowość

0
public class moneta {
    
  public static void main(String[] args) {
 Random rand = new Random(2);
 boolean flip = rand.nextBoolean();
 System.out.print("OUTCOME: ");
 System.out.println(flip ? "HEAD" : "TAIL");
 }
} 

Dlaczego nie ma losowości i zawsze znany jest wynik(zawsze jest "Head") , ale gdy zrobie Random() pusty to będę miał losowość i we flip różne wyniki

2

Ponieważ w tej wersji kodu cały czas seedujesz PRNG za pomocą tej samej wartości (tego samego ziarna).

Normalnie możesz rozumieć new Random() jako np. new Random(AktualnyCzasWMilisekundach);, co już będzie zwracało za każdym razem inną liczbę, ponieważ co uruchomienie aplikacji będzie się zmieniało ziarno (chyba że akurat uruchomisz dwie instancje w tym samym czasie :-P).

1 użytkowników online, w tym zalogowanych: 0, gości: 1