[英]Is random.randint() in Python truly random?
因此,我在Python中使用了带有一些循环的random模块,并打印了一批数字以检查它们的外观。 我注意到当我输入:
random.randint(0,100000)
大多数数字是六位数字,少则五位,少则是四位。几乎没有任何数字。 这让我质疑rand.int到底是如何随机的。
在0到100000之间,数字的90%具有5位数字! 只有0.01%的人拥有1个数字。 所以行为就是我所期望的。 编辑:并注意ignacio所说的。 这些数字绝对不是“真正”随机的,因为这将需要某种量子事件。 它们是“伪”随机数。
为了扩展ooga的答案,在0到100,000之间,有:
这就是为什么您期望90%的概率包含5位数字的随机数,9%的概率是4位数字,0.9%的概率是3位数字,依此类推。 另一种看待它的方法是,将少于五位数的任何正数都视为在万位数中为0(例如07,734),因此五位数是九倍,因为有九个非数字一万个地方的零可能性。
(此外,我假设您的意思是您得到的数字大多为五位数,或者范围达到了1,000,000,因为在0到100,000之间不应有任何六位数的整数。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.