Could random.randint(1,10) ever return 11?

Posted by Tim Pietzcker on Stack Overflow See other posts from Stack Overflow or by Tim Pietzcker
Published on 2010-06-14T14:16:56Z Indexed on 2010/06/14 14:22 UTC
Read the original article Hit count: 153

Filed under:
|
|

When researching for this question and reading the sourcecode in random.py, I started wondering whether randrange and randint really behave as "advertised". I am very much inclined to believe so, but the way I read it, randrange is essentially implemented as

start + int(random.random()*(stop-start))

(assuming integer values for start and stop), so randrange(1, 10) should return a random number between 1 and 9.

randint(start, stop) is calling randrange(start, stop+1), thereby returning a number between 1 and 10.

My question is now:

If random() were ever to return 1.0, then randint(1,10) would return 11, wouldn't it?

© Stack Overflow or respective owner

Related posts about python

Related posts about random