首页 > 解决方案 > 二项分布的正确实施?

问题描述

我试图让二项式分布返回一个范围内的值,该值在较低频谱中的概率较高,而我所能得到的只是37。这是我的实现:

int32_t binomial_random(int32_t minNumber, int32_t maxNumber, float modifier) {
    std::default_random_engine generator;
    static std::binomial_distribution<int> binomialRand(maxNumber, modifier);
    return minNumber + binomialRand(generator);
}

当我调用它时:

level = binomial_random(minLevel, maxLevel-minLevel, 0.3f);

无论 minLevel 和 maxLevel 如何,它似乎都返回 37

标签: c++random

解决方案


推荐阅读