具有权重或偏差的随机布尔值

2022-09-01 14:44:41

我需要生成一些随机布尔值。但是,我需要能够指定返回的概率。结果做:true

private Random random = new Random();
random.nextBoolean();

将不起作用。

一种可能的解决方案是:

private Random random = new Random()

public boolean getRandomBoolean(float p){
    return random.nextFloat() < p;
}

我想知道是否有更好或更自然的方法可以做到这一点。

编辑:我想我是在问是否有一个库类提供下一个布尔(浮点概率)方法。


答案 1

我想知道是否有更好或更自然的方法可以做到这一点。

您已经使用的方法很好。

*据我所知,没有一个标准的Java方法可以使这段代码更短。


* 用于非加密目的。

答案 2

1)是的,我认为你的方法有效,我没有看到另一种更简单的方法。

2)有一个库用于处理不同统计分布的随机数:

http://introcs.cs.princeton.edu/java/22library/StdRandom.java.html


推荐