Java 方法,该方法以x百分比返回true或false

Java 方法,该方法以x百分比返回true或false,java,Java,我正在寻找一种方法,它通过给定的百分比整数随机回答true或false。例如: 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

我正在寻找一种方法,它通过给定的百分比整数随机回答true或false。例如:

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;
}

我需要一个非常准确和真实的方法,请帮忙它太复杂了它让我头疼

我会把它分成小块来理解:

public boolean rollDie(int percentGiven)
{
  Random rand = new Random();
  int roll = rand.nextInt(100);
  if(roll < percentGiven)
    return true;
  else
    return false;
}
public boolean rollDie(给定整数百分比)
{
Random rand=新的Random();
int roll=兰特·耐克斯汀(100);
如果(滚动<给定百分比)
返回true;
其他的
返回false;
}
通常,命名约定和跨多行中断代码(而不是将许多方法调用堆叠在一行中)可以更容易地解决问题。在这里,我使用显式名称,使其易于阅读。这对于像我这样的初学者来说是很好的,他们不能很好地解释非常紧凑的代码

公共布尔百分比(int p){
public boolean percent(int p){
    Random r=new Random();
    return r.nextInt(100)<p;
}
随机r=新随机();
返回r.nextInt(100)如果选择1-100之间的随机数,应该很容易。例如55对于大小写百分比(50),如果假设1-50之间的数字为真,其余为假,这将是假的。如果您接受rand()是完全随机的,这应该可以解决您的问题

所以
if(random_num>=percent)
已更改
返回true;
否则

return false;

我相信您只是想得太多了:

return (rand.nextInt(100) < percentage);
return(兰特•耐克斯汀(100)

应该没问题。

现在,您正在减去“百分比”,然后再加上“百分比”,因此表达式被简化为“rand.nextInt(101)”这就是您想要的吗?“出于某种原因,它没有按应有的方式工作。”它怎么会不起作用?你的期望是什么,结果是什么?你有没有仔细观察过它?只是在这里转储代码并说“它不起作用”很少有帮助。回答上面的一些问题在很多情况下确实可以帮助你自己解决问题。不确定这是否有效:如果我的百分比为100,我希望它100%都是真的,但随机数在100次中只有100次。你不介意根据你的问题回答。给定的数字将是100d随机数将始终等于或小于100…这将返回true不是我的问题,但你有
=
而不是
=
100次。
返回rand.nextInt(100)
如果你想加入那些较小的片段,正确的话,这个问题已经有了答案。