我將如何去實現在java中使用這種格式的3/4或75%概率?Java中75%的概率
Random rand = new Random();
boolean val = rand.nextInt(25)==0;
我將如何去實現在java中使用這種格式的3/4或75%概率?Java中75%的概率
Random rand = new Random();
boolean val = rand.nextInt(25)==0;
這樣的事情,
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.
}
嘗試這種情況:
rand.nextInt(4) < 3
所以他有'0%'的機會?編輯:這不僅僅是25%? 'rand.nextInt(4)<3'不會更有意義嗎? – Tom
這幾乎是正確的。但有25%的機會,而不是75%的機會。你應該做到這一點!= 0. – marcelv3612
頭腦簡單的方式做到這一點是很好的任意整數百分比爲:
boolean val = rand.nextInt(100) < 75;
我可能會錯,但不應該這是'(rand.nextInt(100)+ 1)<75;'?從'0-99'的範圍可能會改變75%的機率。 – Tom
@Tom - 如果你想要1%會怎麼樣?還是100%?想想看。 –
我認爲這將是nextInt(4) 。 –
它必須是nextInt(4),返回0有25%的機率,1有25%的機率,2有25%的機率,3有25%的機率。然後檢查這個值是其中三個之一還是它不是其中之一。 – marcelv3612
歡迎來到Stack Overflow!我不確定爲什麼你會得到如此多的降價。在我看來,這似乎是一個非常明確的問題,並且您已經收到了一些答案。也許downvoters會解釋自己。 –