正态分布:
std::normal_distribution<T>
只接受float
或double
等实值类型,为什么不接受整数类型?
如何创建正常的整数分布?
答案 0 :(得分:12)
我对C ++ 11几乎一无所知,但我知道一点点数学(或者我在某一点上做过),离散正态分布称为Binomial distribution。事实上,当你让n
进入无穷大时,正态分布就是二项分布。
因此,假设C ++ 11具有二项分布,那么您就具有离散的正态分布。
你为什么不试试std::binomial_distribution
?
您可能还想阅读de Moivre–Laplace theorem。
答案 1 :(得分:-1)
将生成的随机值转换为整数。
std::normal_distribution<float> noise(0, 2.f);
randomValue = (int) round(noise(engine));