Я выполняю это задание:
Вы бросаете N
кости. Напишите программу на Python, которая вычисляет вероятность того, что сумма больше 3N/2
и меньше 9N/2
.
Я предположил, что у меня есть только 3 кубика, потому что это немного сложно сделать с N
кубиком, и я что-то пробовал, но я не понимаю, как найти вероятность того, что 9N/2 > sum > 3N/2
import random
num_throws = 20 # NT
roll_log = [0] * 12 # Generate list for dice roll tallies
for i in range(num_throws):
# Random integer between 1 and 6 inclusive for each dice
dice_1 = random.randint(1, 6)
dice_2 = random.randint(1, 6)
dice_3 = random.randint(1, 6)
# Sum the random dice and increment the tally for that particular roll total
roll_sum = dice_1 + dice_2
roll_log[roll_sum-1] += 1 # minus 1 because Python is 0-indexed
for i, tally in enumerate(roll_log):
roll_prob = float(tally) / num_throws # Experimental probability of roll
roll = i + 1 # Since Python lists are 0-indexed
print('{}: {}/{} = {}'.format(roll, tally, num_throws, roll_prob))
n = 5
m = 10
rolls_between = roll_log[n:m-1]
sum_rolls_between = sum(rolls_between)
prob_between = float(sum_rolls_between) / num_throws