dly until some dice total has repeated n times returns the total number of times the pair of dice was rolled For example, using a random seed of 85 , the sequence of rolled pairs will be : (2, 6), (5, 1), (3, 2), (2, 4), (3, 5), (2, 6), (4, 5), (5, 2), (6, 5), (5, 5), ... If you run rollsToRepeat with n=1 , only 1 repeat is required. On t
Implement a function rollsToRepeat in Python that simulates a dice game in which a pair of dice are rolled repeatedly until some total on the dice occurs the specified number of times.
Details:
- accepts one integer argument, n , the number of repeats required before the game ends
- rolls a pair of dice repeatedly until some dice total has repeated n times
- returns the total number of times the pair of dice was rolled
For example, using a random seed of 85 , the sequence of rolled pairs will be : (2, 6), (5, 1),
(3, 2), (2, 4), (3, 5), (2, 6), (4, 5), (5, 2), (6, 5), (5, 5), ... If you run
rollsToRepeat with
- n=1 , only 1 repeat is required. On the first roll, the total 8=2+6 is repeated once (as would
any first roll). So the simulation stops and the function returns 1. This always happens when
n=1 . - n=2 , some total must repeat twice. This first occurs on the 4th
roll, when the total of 6
occurs for the 2nd
time. - n=3 , some total must repeat three times. This first occurs on the 6th
roll, when the total 8
occurs for the third time.
Below is an example of the output from the code:
>>> import random
>>> random.seed(85)
>>> rollsToRepeat(1)
1
>>> random.seed(85)
>>> rollsToRepeat(2)
4
>>> random.seed(85)
>>> rollsToRepeat(3)
6
>>> [ (i,random.seed(i),rollsToRepeat(i+1)) for i in range(10)]
[(0, None, 1), (1, None, 7), (2, None, 8), (3, None, 8), (4, None, 19), (5,
None, 29), (6, None, 31), (7, None, 30), (8, None, 36), (9, None, 39)]
Trending now
This is a popular solution!
Step by step
Solved in 2 steps