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