在java中实现确定性分布

时间:2015-10-26 17:00:49

标签: java

我已经为二项分布做了以下代码,有人可以告诉我如何为确定性分布做同样的事情(这个分布必须始终生成相同的数字)它应该是最容易的分发,但我找不到'DeterministicDistribution'是图书馆。

感谢您的帮助。

var child = new GameManagerChild();
child.playerManager.someMethod();

1 个答案:

答案 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构造函数来获取种子。