我很想知道,如何在 Java 中实现概率?例如,如果变量显示的机会是 1/25,那么我将如何实现它?还是其他概率?请指出我的大致方向。
原文由 Jeel Shah 发布,翻译遵循 CC BY-SA 4.0 许可协议
通常您使用随机数生成器。其中大多数返回区间 [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
类应该足够了。
编辑: 我将条件从 <=
更改为 <
因为随机数的上限是排他性的,即最大返回值仍将<1.0。因此 x <= 0.04
实际上有略高于 4% 的机会,而 x < 0.04
是准确的(或与浮点数学一样准确)。
原文由 Thomas 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
您将使用 Random 生成一个随机数,然后根据文字对其进行测试以匹配您尝试达到的概率。
所以给出:
val
将有 1⁄25 的概率为真(因为nextInt()
有偶数概率返回从 0 开始到 25(但不包括 25)的任何数字。)您当然也必须
import java.util.Random;
。正如下面所指出的,如果您获得了多个随机数,那么重用 Random 对象比一直重新创建它会更有效:
..