我如何在java中使用这种格式实现3/4或75%的概率?
Random rand = new Random();
boolean val = rand.nextInt(25)==0;
答案 0 :(得分:6)
像这样,
Random rand = new Random();
boolean val = rand.nextInt(4) + 1;
if (val == 1) { // <-- 1/4 of the time.
} else { // <-- 3/4 of the time.
}
Random.nextInt(int)
返回返回伪随机,在0(包括)和指定值(不包括)之间均匀分布的int值。因此,0-4(不包括)是(0-3),如果你再加1,结果就是范围(1-4)。
您也可以使用Random.nextDouble()
之类的,
if (rand.nextDouble() < 0.75) { // <-- 75% of the time.
}
答案 1 :(得分:5)
对任何整数百分比都有好处的简单方法是:
boolean val = rand.nextInt(100) < 75;
答案 2 :(得分:1)
以下内容也是有效的,并且有些直观,因为许多人都将概率的概念定义为介于0和1之间的值。
Math.random() < 0.75
当然,这与
相同Random rand = new Random();
rand.nextDouble() < 0.75
已在接受的答案中提及。
需要注意的重要一点是,后者比前者更有效率。皮特在甲骨文社区论坛上提供了一个explanation原因。
答案 3 :(得分:0)
试试这个:
rand.nextInt(4) < 3