long random integer generation
Tim Roberts
timr at probo.com
Thu Aug 17 02:35:10 EDT 2000
tde at cs.mu.OZ.AU (Timothy David EBRINGER) wrote:
>Does anyone know of an easy way to generate long (uniformely distributed)
>random integers, for example, I'd like to be able to write
>
>generator = whrandom.whrandom()
>N = generator.randint(1L,
>987349857349878957987598743987587598374985739847589L)
It is not hard to write a linear congruential random number generator, like
that used in most run-time libraries. Here's one that can generate 128-bit
values:
class BigRand:
RandSeed = 11111111111111111111111111111111111L
def Rand(self):
hold = self.RandSeed
self.RandSeed = (self.RandSeed * 134775813L + 1L) % (2L**128L)
return hold
r = BigRand()
for i in range(20):
print r.Rand()
--
- Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.
More information about the Python-list
mailing list