我怎么知道这是否足够随机?

Dav*_*vid 13 language-agnostic random math

我在java中编写了一个程序来滚动一个骰子并记录每个值1-6被滚动的总次数.我滚了600万次.这是分布:

#of 0's: 0
#of 1's: 1000068
#of 2's: 999375
#of 3's: 999525
#of 4's: 1001486
#of 5's: 1000059
#of 6's: 999487
Run Code Online (Sandbox Code Playgroud)

(0不是一个选项.)

这种分布是否与随机骰子卷一致?什么客观的统计测试可能证实骰子卷确实是随机的?

编辑:问题已经提出申请:我想要合理地实现公平的游戏.

Fra*_*nov 5

为了测试这种特定的分布是否与预期的"公平"潜水数据分布一致,您需要执行Pearson的卡方检验.

请注意,这仍然不能证明您的算法是"公平的",只是这些特定的结果看起来"公平".

为了测试你的算法是否一般"公平",使用Diehard测试,正如其他人提到的那样.

  • Diehard测试不保证随机性.没有任何东西可以保证随机性.:-) Diehard测试是一组自动化测试,旨在针对特定的随机生成器实现运行,寻找统计证据,证明此特定实现不是"公平"实现.如果您的发电机通过Diehard测试,这并不意味着它是"公平的"并且随机性得到保证; 它只是意味着它很可能是"公平的" (2认同)