繁体   English   中英

Python中的random.randint()真的是随机的吗?

[英]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之间,有:

  • 10位数字(0-9)
  • 90个两位数数字(10-99)
  • 900个三位数的数字(100-999)
  • 9000个四位数数字(1,000-9,999)
  • 90000个五位数(10,000-99,999)

这就是为什么您期望90%的概率包含5位数字的随机数,9%的概率是4位数字,0.9%的概率是3位数字,依此类推。 另一种看待它的方法是,将少于五位数的任何正数都视为在万位数中为0(例如07,734),因此五位数是九倍,因为有九个非数字一万个地方的零可能性。

(此外,我假设您的意思是您得到的数字大多为五位数,或者范围达到了1,000,000,因为在0到100,000之间不应有任何六位数的整数。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM