How to generate a "big" random number in Python?

Question:

How can I generate a big (more than 64 bits) random integer in Python?

Asked By: Charles Brunet

||

Answers:

You can use random.getrandbits():

>>> random.getrandbits(128)
117169677822943856980673695456521126221L

As stated in the linked documentation, random.randrange() will also do the trick if random.getrandbits() is available.

Answered By: Sven Marnach

You can also use this function to generate a number of any length.

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)
Answered By: OhhhThatVarun
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.