Большинство из нас знает что команда random.randint(1,n)
в Python (2. X.X), генерировал бы число в случайном (псевдослучайном) между 1 и n. Я интересуюсь знанием, каков верхний предел для n?
randint ()
работает с длинными целыми числами, поэтому верхнего предела нет:
>>> random.randint(1,123456789012345678901234567890)
113144971884331658209492153398L
Несомненно, у вас ограниченный объем памяти и адресного пространства на вашем компьютере; например, для хорошей 64-битной машины 64 ГБ ОЗУ [[около 2 ** 36
байт]] и пара ТБ диска (можно использовать как пространство подкачки для виртуальной памяти) [[около 2 ** 41
байт]]. Таким образом, «верхняя граница» длинного целого числа Python будет наибольшим из представимых в доступной памяти - немного меньше, чем 256 ** (2 ** 40)
, если вы находитесь в абсолютно не торопитесь и можете поменять местами как сумасшедшие, немного больше, чем 256 ** (2 * 36)
(с небольшой заменой, но не слишком ) в практическом плане .
К сожалению, для представления этих невероятно огромных чисел в десятичной системе потребуется довольно много времени и , поэтому вместо того, чтобы показывать их, позвольте мне спросить вас - зачем вам вообще заботитесь о такой нелепой последовательности цифр, которая составляет «верхнюю границу», о которой вы спрашиваете? Я думаю, что практичнее сформулировать это так: особенно на 64-битной машине с приличным объемом ОЗУ и диска верхние границы длинных целых чисел намного больше, чем все, что вы когда-либо вычислили. Технически математик настаивает, что они не бесконечность, конечно ... но практически они могут быть такими же! -)