2012-01-16 6 views

Odpowiedz

85

Klasa java.util.Random ma już tej funkcji:

public boolean getRandomBoolean() { 
    Random random = new Random(); 
    return random.nextBoolean(); 
} 

Jednak to nie jest skuteczne, aby zawsze utworzyć nowy Random instancji za każdym razem trzeba losową wartość logiczną. Zamiast tego, należy utworzyć atrybut typu Random w swojej klasie, który wymaga losową wartość logiczną, a następnie użyć tego wystąpienia dla każdego nowego losowych wartości logicznych:

public class YourClass { 

    /* Oher stuff here */ 

    private Random random; 

    public YourClass() { 
     // ... 
     random = new Random(); 
    } 

    public boolean getRandomBoolean() { 
     return random.nextBoolean(); 
    } 

    /* More stuff here */ 

} 
46

(Math.random() < 0.5) zwraca prawdę lub fałsz losowo

12

ten powinien zrobić:

public boolean randomBoolean(){ 
    return Math.random() < 0.5; 
} 
+0

tej pracy dla mnie najlepsze –

5

Można to zrobić w następujący sposób kod,

public class RandomBoolean { 
    Random random = new Random(); 
    public boolean getBoolean() { 
     return random.nextBoolean(); 
    } 
    public static void main(String[] args) { 
     RandomBoolean randomBoolean = new RandomBoolean(); 
     for (int i = 0; i < 10; i++) { 
      System.out.println(randomBoolean.getBoolean()); 
     } 
    } 
} 

Mam nadzieję, że to ci pomoże, dzięki.

+1

Jest to trochę zbędne. 'randomBoolean' może być po prostu' new Random() ', a zamiast' getBoolean() 'have' nextBoolean()'. Powyższy kod właśnie dodaje bezsensowne zawijanie klas. – whitfin

2

Dostaniesz go w ten sposób:

return Math.random() < 0.5; 
+6

Tam, gdzie to możliwe, spróbuj tylko dodawać odpowiedzi, które dodają informacje. Ta odpowiedź jest prawie identyczna z odpowiedzią MichaelBorgwardta: –

-1

najbardziej krótkie sposób:

public boolean getRandomBoolean() { 
    return new Random.nextBoolean(); 
} 
+0

return new Random(). NextBoolean(); – Simo