我们大多数人都知道Python(2.X.X)中的命令random.randint(1,n)
将在1和n之间随机生成一个数字(伪随机)。我有兴趣知道n的上限是什么?
答案 0 :(得分:11)
randint()
适用于长整数,因此没有上限:
>>> random.randint(1,123456789012345678901234567890)
113144971884331658209492153398L
答案 1 :(得分:3)
毫无疑问,你的机器上有大量的内存和地址空间;例如,对于一台好的64位机器,64 GB的RAM [[约2**36
字节]]和几TB的磁盘(可用作虚拟内存的交换空间)[[约2**41
字节]]。因此,Python长整数的“上限”将是可用内存中可表示的最大值 - 如果您处于绝对不紧急且可以交换,则会小于256**(2**40)
就像疯了一样,实际上比256**(2*36)
稍微多一点(只有一点点交换,但太多)。
不幸的是,用和空间花费相当多的时间用十进制表示这些可笑的巨大数字,所以,不要再显示它们,让我回头看看你为什么会这样?强烈的>关心关于这样一个荒谬的数字继承,构成你正在询问的“上限”?我认为用这种方式更实际:特别是在具有相当数量的RAM和磁盘的64位机器上,长整数的上限方式比你计算的任何东西都大。从技术上讲,数学家坚持认为,他们当然不是 无穷大......但实际上,他们可能也是如此! - )