我正在寻找一种按给定百分比整数随机回答真或假的方法。例如:
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;
}
我需要一个非常准确和真实的方法,请帮助它太复杂它让我头疼
答案 0 :(得分:12)
我相信你只是在思考它:
return (rand.nextInt(100) < percentage);
应该可以正常工作。
答案 1 :(得分:6)
我会把它分成小块来理解:
public boolean rollDie(int percentGiven)
{
Random rand = new Random();
int roll = rand.nextInt(100);
if(roll < percentGiven)
return true;
else
return false;
}
通常,命名约定和跨越更多行的代码(而不是堆叠在一行中的许多方法调用)可以更容易地解决问题。在这里,我使用明确的名称,使其易于阅读。对于像我这样的初学者来说,这对于解释非常紧凑的代码并不是很好。
答案 2 :(得分:4)
public boolean percent(int p){
Random r=new Random();
return r.nextInt(100)<p;
}
答案 3 :(得分:0)
如果您在1-100之间选择一个随机数,那应该很容易。 例如 55对于案例百分比(50),如果您假设1-50之间的数字为真且其余为假,则这将为假。鉴于你接受rand()是完全随机的,这样可以解决你的问题。
因此
if (random_num >= percent)
已更改
return true;
else
return false;