爪哇中的概率

2022-09-01 01:14:40

我很好奇,如何在Java中实现概率?例如,如果变量显示的几率为1/25,那么我将如何实现它?还是任何其他概率?请给我指出大致的方向。


答案 1

你可以使用 Random 生成一个随机数,然后针对文本对其进行测试,以匹配你尝试实现的概率。

所以给定:

boolean val = new Random().nextInt(25)==0;

val将有 1/25 的概率为真(因为具有返回从 0 开始到 25 但不包括 25 的任何数字的偶数概率。nextInt()

你当然也必须这样做。import java.util.Random;

如下所述,如果您获得多个随机数,那么重用 Random 对象比一直重新创建它会更有效:

Random rand = new Random();
boolean val = rand.nextInt(25)==0;

..

boolean val2 = rand.nextInt(25)==0;

答案 2

通常使用随机数生成器。其中大多数在区间 [0,1] 中返回一个数字,因此您将检查该数字是否为 <= 0.04。

if( new Random().nextDouble() <= 0.04 ) {  //you might want to cache the Random instance
   //we hit the 1/25 ( 4% ) case.
}

if( Math.random() <= 0.04 ) {
  //we hit the 1/25 ( 4% ) case.
}

请注意,有多个具有不同属性的随机数生成器,但对于简单应用程序,该类应该足够了。Random


推荐