【发布时间】:2012-04-04 13:53:01
【问题描述】:
如何在 Python 中生成一个大(超过 64 位)随机整数?
【问题讨论】:
标签: python random biginteger
如何在 Python 中生成一个大(超过 64 位)随机整数?
【问题讨论】:
标签: python random biginteger
你可以使用random.getrandbits():
>>> random.getrandbits(128)
117169677822943856980673695456521126221L
如链接文档中所述,如果random.getrandbits() 可用,random.randrange() 也可以解决问题。
【讨论】:
你也可以使用这个函数生成任意长度的数字。
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)
【讨论】:
random digit 只是为了删除小数位。作为 random.random() 将输出 16 位带小数的随机数字。