我已经为二项分布做了以下代码,有人可以告诉我如何为确定性分布做同样的事情(这个分布必须始终生成相同的数字)它应该是最容易的分发,但我找不到'DeterministicDistribution'是图书馆。
感谢您的帮助。
var child = new GameManagerChild();
child.playerManager.someMethod();
答案 0 :(得分:0)
我不知道是否有一个现有的库,但一种方法是使用构造函数
public Random(long seed)
因为这会返回由种子单独确定的Random
实例。
public static int binomialObservation(long seed, int n, double p) {
if (n < 0)
throw new IllegalArgumentException();
if (p <= 0 || n == 0)
return 0;
if (p >= 1)
return n;
Random random = new Random(seed);
int count = 0;
for (int i = 0; i < n; i++)
if (random.nextDouble() <= p)
count++;
return count;
}
只要您传递相同的种子,您将获得相同的结果。如果您需要一系列观察,每次调用方法时,seed
都可以增加1
。
如果n
很大,此方法会很慢。我不知道你怎么能在不变的时间里做到这一点。也许您可以查看非确定性二项式观察的源代码,并使用Random
构造函数来获取种子。