29

如何在 Python 中生成一个大(超过 64 位)随机整数?

4

2 回答 2

60

您可以使用random.getrandbits()

>>> random.getrandbits(128)
117169677822943856980673695456521126221L

如链接文档中所述,random.randrange()如果random.getrandbits()可用,也可以解决问题。

于 2012-04-04T13:55:05.960 回答
1

你也可以使用这个函数来生成任意长度的数字。

def generateRandomNumber(digits):
    finalNumber = ""
    for i in range(digits // 16):
        finalNumber = finalNumber + str(math.floor(random.random() * 10000000000000000))
    finalNumber = finalNumber + str(math.floor(random.random() * (10 ** (digits % 16))))
    return int(finalNumber)
于 2021-01-14T16:53:33.970 回答