前几天在某群里听人吹牛,说所谓伪随机数都是有规律的,在随机次数足够多的情况下都会发现某数字出现机率特别高。那就拿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