Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 574
Tim Pietzcker Avatar asked Jun 14 '10 14:06

Tim Pietzcker


People also ask

What is the highest number from random Randint 1 10?

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

What is the range of random Randint?

Clearly, we can see that the randint() method generates a random integer value within the limit 1-100.

What does random Randint return?

Python Random randint() Method The randint() method returns an integer number selected element from the specified range.

How do you generate a random number between 1 and 10 in Python?

How do you generate a random number between 1 to 10 in Python? You can use randint(0,50) to generate a random number between 0 and 50. To generate random integers between 0 and 9, you can use the function randrange(min,max) . Change the parameters of randint() to generate a number between 1 and 10.


1 Answers

From random.py and the docs:

"""Get the next random number in the range [0.0, 1.0)."""

The ) indicates that the interval is exclusive 1.0. That is, it will never return 1.0.

This is a general convention in mathematics, [ and ] is inclusive, while ( and ) is exclusive, and the two types of parenthesis can be mixed as (a, b] or [a, b). Have a look at wikipedia: Interval (mathematics) for a formal explanation.

like image 70
aioobe Avatar answered Sep 28 '22 09:09

aioobe