是否所有数字都具有从随机排列中选择的相等概率?

时间:2018-12-20 06:01:11

标签: python

当调用random.randrange函数时,从中选取数字的机会是否完全相等?如果是这样,怎么做?

1 个答案:

答案 0 :(得分:3)

是的,分布是均匀的,这意味着从n个输入中,每个输入都有1 / n的机会被选择。

我不知道实际实现的算法,但是您可以在此处查看源代码: https://github.com/python/cpython/blob/master/Lib/random.py

据我所知,生成伪随机数涉及很多数学运算。 https://en.wikipedia.org/wiki/Pseudorandom_number_generator

编辑:作为一个有趣的练习,我制作了一个脚本,该脚本会生成1百万个介于0和5之间的随机数,并且我会对每个数字进行计数,并且您可以猜测每个数字的计数数应该大致相同200000左右:

from random import randrange
from pprint import pprint

c = {}
for i in range(1000000):
    r = randrange(0, 5)
    if r not in c:
        c[r] = 0
    c[r] += 1

pprint(c)