您应该意识到,您不能 保证 随机数生成器正常工作。请注意,即使是[1,10]范围内的完美均匀分布- 在10个数字的随机采样中,也有10
-10的机会得到10乘以10。
有可能吗 当然不是。
所以-什么 可以 做什么?
我们可以从 统计学上证明 ,如果随机数生成器确实均匀分布,则组合(10,10,....,10) 不太可能 。这个概念称为
假设检验
。通过这种方法,我们可以说“具有x%的确定性水平-我们可以拒绝数据取自均匀分布的假设”。
这样做的一种常见方法是使用 Pearson的Chi-
Squared检验
,这个想法与您的相似-填写表格-检查每个单元格 观察到的 (生成的)数目是多少, 预期的
数目是多少空假设下每个像元的数字(在您的情况下,期望值为
k/M-,其中M是范围的大小,k是所取数字的总数)。
然后,您可以对数据进行一些操作(有关更多信息,请参阅Wikipedia文章,以了解该操作的确切含义)-并获得一个数字(测试统计量)。然后,您检查此数字是否
可能 来自卡方分布。如果是,则不能拒绝原假设,如果不能,则可以x%的确定性确定数据不是来自统一随机生成器。
编辑: 示例:
您有一个多维数据集,并且要检查它是否“公平”(在中均匀分布
[1,6])。将其抛出200次(例如)并创建下表:
number: 1 2 3 4 5 6empirical occurances: 37 41 30 27 32 33expected occurances: 33.3 33.3 33.3 33.3 33.3 33.3
现在,根据Pearson的检验,统计量为:
X = ((37-33.3)^2)/33.3 + ((41-33.3)^2)/33.3 + ... + ((33-33.3)^2)/33.3 X = (18.49 + 59.29 + 10.89 + 39.69 + 1.69 + 0.09) / 33.3X = 3.9
对于随机
C~ChiSquare(5),中较高,则概率
3.9是
~0.45(这不是不可能)1。
因此我们 不能 拒绝原假设,并且可以得出结论,数据 可能 均匀地分布在
[1,6]
(1)如果值小于0.05,我们通常会拒绝原假设,但这在很大程度上取决于情况。



