簡體   English   中英

以x百分比返回true或false的方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM