1. 苏葳的备忘录首页
  2. 编程

一段测试1-10内随机数分布的Python代码

python wxpython boa

前几天在某群里听人吹牛,说所谓伪随机数都是有规律的,在随机次数足够多的情况下都会发现某数字出现机率特别高。那就拿python写个小程序验证一下,产生100次1-10之间的随机数,然后统计每个数字出现的次数,打印出来:

>>> def ra():
...     a=[0]*10
...     for i in range(1,100):
...             a[random.randint(1,10)-1]+=1
...     print(a)
...
>>> ra()
[5, 6, 14, 4, 8, 10, 16, 10, 15, 11]
>>> ra()
[6, 15, 13, 5, 6, 10, 10, 17, 7, 10]
>>> ra()
[9, 3, 8, 8, 22, 7, 7, 8, 15, 12]
>>> ra()
[11, 10, 11, 13, 11, 4, 8, 10, 12, 9]
>>> ra()
[12, 9, 11, 12, 11, 10, 8, 8, 9, 9]
>>> ra()
[3, 12, 5, 6, 12, 8, 12, 17, 8, 16]

上述程序有个小技巧,把产生的随机数作为数组的下标,然后该元素+1。这样循环100次后,每个元素的值正好就是该数组随机数下标的出现次数,免去了常规的判断随机数值,再做对应相加的步骤。

从上述结果可以看出,随机数就是随机数,从多次执行后的分布来看,并没有什么规律。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/2217.html

发表评论

您的电子邮箱地址不会被公开。