Integer Overflow
Skip Montanaro
skip at pobox.com
Wed Nov 28 10:46:04 EST 2001
Ursus> def Lcprng(state):
Ursus> """Pass this a variable containing the seed. Don't forget to
Ursus> update the seed with the returned value each time this
Ursus> function is called."""
Ursus> return int((29L*state+13L) & 0x0FFFFFFFL)
Ursus> .......Calling Program......
Ursus> RanNum = 987654321 # Initialize Random Number Seed
Ursus> ............................................
Ursus> RanNum = Lcprng(RanNum) # Keep updating seed with value
That works, however, it requires the caller to understand the mechanism
involved in updating the RNG's state. With the one-element list version,
you (the RNG implementer) can stuff as much in the state as you like. The
user can pretend it's opaque.
--
Skip Montanaro (skip at pobox.com - http://www.mojam.com/)
More information about the Python-list
mailing list