如何编写测试计算机随机数生成器随机性的程序。在0到9的范围内生成10,000个整数,并在结尾显示每个数字的计数列表。由于每个数字有十分之一的机会,完成时应该有大约1000个。这是使用数组
输出示例
0:1007
1:1024
2:989
...
答案 0 :(得分:0)
首先,您需要一个随机数生成器。你的PC内部没有任何内容可以提供真正的"随机数。有一些算法,在播种后产生伪随机数(在c ++ theres rand()中,这是一个线性同余生成器http://en.wikipedia.org/wiki/Linear_congruential_generator,或者如果使用c ++ 11,有更复杂的替代品,如mersenne twister { {3}})。
测试"随机性"在创建统一的分布式随机数时,您可以通过实验方式完成这些算法。更通用的方法是计算实验结果的积分与随机数的目标分布的差异。虽然在了解算法时,可能更有效地分析它以找出其周期性。
由于我没有读过一个问题,所以我一直希望能够回答这个问题。