Random string of digits?
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Sun Dec 25 12:18:53 EST 2011
More information about the Python-list mailing list
Sun Dec 25 12:18:53 EST 2011
- Previous message (by thread): Random string of digits?
- Next message (by thread): Random string of digits?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, 26 Dec 2011 03:11:56 +1100, Chris Angelico wrote: > On Mon, Dec 26, 2011 at 2:46 AM, Steven D'Aprano > <steve+comp.lang.python at pearwood.info> wrote: >> Use the Source, Luke, er, Chris :) >> >> If I've read the source correctly, randint() will generate sufficient >> bits of randomness to ensure that the entire int is random. >> >> http://hg.python.org/cpython/file/default/Lib/random.py > > I prefer not to rely on the source. That tells me what happens, not > what's guaranteed to happen. In this case, the source explicitly tells you that the API includes support for arbitrary large ranges if you include a getrandbits() method: Optionally, implement a getrandbits() method so that randrange() can cover arbitrarily large ranges. I call that a pretty strong guarantee. > However... bit of poking around can't hurt. > That file doesn't actually justify anything, because random.Random() > does not define getrandbits() - that, it seems, comes from _random(); > turns out that getrandbits is actually doing pretty much the same thing > I suggested: > > http://hg.python.org/cpython/file/745f9fd9856d/Modules/ _randommodule.c#l371 > > Need a 64-bit random number? Take two 32-bit numbers and concatenate. > So, it's going to be easier and clearer to just take the simple option, > since it's actually doing the same thing underneath anyway. Um, I'm not sure what you consider "the simple option" in this context. I would hope you mean to use the high level API of randint: # need a random number with exactly 20 decimal digits random.randint(10**20, 10**21-1) rather than manually assembling a 20 digit number from smaller pieces. -- Steven
- Previous message (by thread): Random string of digits?
- Next message (by thread): Random string of digits?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list