Random Number
Dan Bishop
danb_83 at yahoo.com
Sun Mar 28 01:55:39 CET 2004
talktojamesblair at yahoo.com (james blair) wrote in message news:<a4648036.0403271156.787706e5 at posting.google.com>...
> Hi
> I am generating a random number using
> random.randint(1,10000000000)
> Whats the possibility that the numbers generated will be same when
> generated by 100 users at the same time?
The probability that all 100 numbers will be the same is 1e-1000. But
you probably wanted the probability that *any* two numbers will be the
same, which is approximately 4.95e-07, or about 1 in 2 million.
> Whats the best method to generate random numbers so that they are most
> likely unique??
If the probability of collisions is low, use:
def UniqueRandom(a, b):
"Generator for random integers between a and b, inclusive."
alreadyUsedNumbers = sets.Set()
while True:
randomNumber = random.randint(a, b)
if randomNumber not in alreadyUsedNumbers:
alreadyUsedNumbers.add(randomNumber)
yield randomNumber
If the probability of collisions is high, use:
def UniqueRandom(a, b):
"Generator for random numbers between a and b, inclusive."
sampleSpace = range(a, b + 1)
random.shuffle(sampleSpace)
return iter(sampleSpace)
More information about the Python-list
mailing list