泊松分布或正态分布
Poisson distribution or Normal distribution
如果需要在[N,M]范围内生成随机数,但更多的数字接近avg (N <= avg <= M),哪个更好使用:
查看 cppreference 页面(页面底部)的示例,它们都生成了所需的内容:
poisson_distribution
在点 4
:
0 *
1 *******
2 **************
3 *******************
4 *******************
5 ***************
6 **********
7 *****
8 **
9 *
10
11
12
13
normal_distribution
在 5
点,标准差 2
:
-2
-1
0
1 *
2 ***
3 ******
4 ********
5 **********
6 ********
7 *****
8 ***
9 *
10
11
12
选择什么?可能是别的东西?
我更喜欢正态分布,因为它更接近现实生活中的问题,而泊松分布仅用于特殊情况。选择 N.D 会使您的问题更笼统。
您可以将两个分布集中在一个适合您需要的点上。
但是如果M
很小,那么泊松分布有一个'fat tail',也就是说得到一个在M
以上的数的概率比正态分布高。
一般情况下,你可以通过方差参数来控制这个几率(可以小到你想要的大小)。
另一个相当明显的区别是泊松只会给你正整数,而正态分布会给出 [N,M]
范围内的任何数字。
此外,当[N,M]
足够大时,泊松分布收敛于正态分布。所以即使泊松是正确的模型,正态近似也不会那么不准确。
考虑到这一点,如果数字不模拟计数过程,我会选择 Normal。
如果您需要有限范围内的结果,那么这两种选择都不好。正态分布的尾部无限大,泊松分布的尾部无限大。至少您需要其中一个的截断形式。如果您没有截断,请注意法线始终关于其均值对称,而泊松分布可能会非常倾斜。这两种分布的不同之处还在于,正态分布是连续的,泊松分布是离散的,尽管您可以通过对结果进行分箱来离散化连续分布。
如果您想要在有限范围内的一组离散结果,您可以尝试缩放和平移 binomial distribution。带有参数 n
和 p
的二项式计算当试验是独立的并且所有试验都以 p
的概率成功时,您从 n
试验中获得了多少 "successes"。制作 n = M - N
并将结果移动 N 以获得 [N,M] 范围内的结果。
如果您想要连续的结果范围,请考虑 beta distribution。您可以捏造参数以获得各种各样的分布形状,并将平均值调整到您想要的位置,然后缩放+移动到您想要的任何范围。
如果您需要范围内的分布(不是像正态或泊松那样的无限或半无限分布),但有明确的最大值,您可以尝试具有多个自由度的 Irwin-Hall 分布。假设 IH(16) 的最小值为 0,最大值为 16,峰值为 8,参见 http://en.wikipedia.org/wiki/Irwin%E2%80%93Hall_distribution
非常容易采样,易于缩放,您可以使用 n
来获得更宽或更窄的峰
如果需要在[N,M]范围内生成随机数,但更多的数字接近avg (N <= avg <= M),哪个更好使用:
查看 cppreference 页面(页面底部)的示例,它们都生成了所需的内容:
poisson_distribution
在点 4
:
0 *
1 *******
2 **************
3 *******************
4 *******************
5 ***************
6 **********
7 *****
8 **
9 *
10
11
12
13
normal_distribution
在 5
点,标准差 2
:
-2
-1
0
1 *
2 ***
3 ******
4 ********
5 **********
6 ********
7 *****
8 ***
9 *
10
11
12
选择什么?可能是别的东西?
我更喜欢正态分布,因为它更接近现实生活中的问题,而泊松分布仅用于特殊情况。选择 N.D 会使您的问题更笼统。
您可以将两个分布集中在一个适合您需要的点上。
但是如果M
很小,那么泊松分布有一个'fat tail',也就是说得到一个在M
以上的数的概率比正态分布高。
一般情况下,你可以通过方差参数来控制这个几率(可以小到你想要的大小)。
另一个相当明显的区别是泊松只会给你正整数,而正态分布会给出 [N,M]
范围内的任何数字。
此外,当[N,M]
足够大时,泊松分布收敛于正态分布。所以即使泊松是正确的模型,正态近似也不会那么不准确。
考虑到这一点,如果数字不模拟计数过程,我会选择 Normal。
如果您需要有限范围内的结果,那么这两种选择都不好。正态分布的尾部无限大,泊松分布的尾部无限大。至少您需要其中一个的截断形式。如果您没有截断,请注意法线始终关于其均值对称,而泊松分布可能会非常倾斜。这两种分布的不同之处还在于,正态分布是连续的,泊松分布是离散的,尽管您可以通过对结果进行分箱来离散化连续分布。
如果您想要在有限范围内的一组离散结果,您可以尝试缩放和平移 binomial distribution。带有参数 n
和 p
的二项式计算当试验是独立的并且所有试验都以 p
的概率成功时,您从 n
试验中获得了多少 "successes"。制作 n = M - N
并将结果移动 N 以获得 [N,M] 范围内的结果。
如果您想要连续的结果范围,请考虑 beta distribution。您可以捏造参数以获得各种各样的分布形状,并将平均值调整到您想要的位置,然后缩放+移动到您想要的任何范围。
如果您需要范围内的分布(不是像正态或泊松那样的无限或半无限分布),但有明确的最大值,您可以尝试具有多个自由度的 Irwin-Hall 分布。假设 IH(16) 的最小值为 0,最大值为 16,峰值为 8,参见 http://en.wikipedia.org/wiki/Irwin%E2%80%93Hall_distribution
非常容易采样,易于缩放,您可以使用 n
来获得更宽或更窄的峰