2014-11-16 90 views
-3

我將如何去實現在java中使用這種格式的3/4或75%概率?Java中75%的概率

Random rand = new Random(); 
boolean val = rand.nextInt(25)==0; 
+2

我認爲這將是nextInt(4) 。 –

+2

它必須是nextInt(4),返回0有25%的機率,1有25%的機率,2有25%的機率,3有25%的機率。然後檢查這個值是其中三個之一還是它不是其中之一。 – marcelv3612

+1

歡迎來到Stack Overflow!我不確定爲什麼你會得到如此多的降價。在我看來,這似乎是一個非常明確的問題,並且您已經收到了一些答案。也許downvoters會解釋自己。 –

回答

5

這樣的事情,

Random rand = new Random(); 
boolean val = rand.nextInt(4) + 1; 
if (val == 1) { // <-- 1/4 of the time. 
} else { // <-- 3/4 of the time. 
} 

Random.nextInt(int)返回返回介於0(含)的僞隨機均勻分佈的int值與指定值(不)。所以,0-4(獨佔)是(0-3),如果你再加1,結果就是範圍(1-4)。

您還可以使用Random.nextDouble()一樣,

if (rand.nextDouble() < 0.75) { // <-- 75% of the time. 
} 
0

嘗試這種情況:

rand.nextInt(4) < 3 
+4

所以他有'0%'的機會?編輯:這不僅僅是25%? 'rand.nextInt(4)<3'不會更有意義嗎? – Tom

+3

這幾乎是正確的。但有25%的機會,而不是75%的機會。你應該做到這一點!= 0. – marcelv3612

4

頭腦簡單的方式做到這一點是很好的任意整數百分比爲:

boolean val = rand.nextInt(100) < 75; 
+0

我可能會錯,但不應該這是'(rand.nextInt(100)+ 1)<75;'?從'0-99'的範圍可能會改變75%的機率。 – Tom

+0

@Tom - 如果你想要1%會怎麼樣?還是100%?想想看。 –