[英]Method that returns true or false at x percentage
我正在尋找一種方法,通過給定的百分比整數隨機地回答真或假。 例如:
percent(100); //Will always 100% return true
percent(50); //Will return 50% true, or 50% false
percent(0); //Will always 100% return false, etc..
這是我想出來的,但由於某種原因,它不能正常工作:
public static boolean percent(int percentage)
{
Random rand = new Random();
return ((rand.nextInt((100-percentage)+1))+percentage)>=percentage;
}
我需要一個非常准確和真實的方法,請幫助它太復雜它讓我頭疼
我相信你只是在思考它:
return (rand.nextInt(100) < percentage);
應該工作正常。
我會把它分成小塊來理解:
public boolean rollDie(int percentGiven)
{
Random rand = new Random();
int roll = rand.nextInt(100);
if(roll < percentGiven)
return true;
else
return false;
}
通常,命名約定和跨越更多行的代碼(而不是堆疊在一行中的許多方法調用)可以更容易地解決問題。 在這里,我使用明確的名稱,使其易於閱讀。 對於像我這樣的初學者來說,這對於解釋非常緊湊的代碼並不是很好。
public boolean percent(int p){
Random r=new Random();
return r.nextInt(100)<p;
}
如果您在1-100之間選擇一個隨機數,這應該很容易。 例如對於百分比(50)的55,如果您假設1-50之間的數字為真且其余為假,則這將為假。 鑒於你接受rand()完全隨機的事實,這應該解決你的問題。
所以
if (random_num >= percent)
發生了變化
return true;
else
return false;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.