当调用random.randrange函数时,从中选取数字的机会是否完全相等?如果是这样,怎么做?
答案 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)