Вы не правильно учитываете вероятности. r.randint(2, 12)
- это не то же самое, что независимый бросок двух d ie (поскольку они представляют собой несколько бросков по два, суммирующие одно и то же значение для некоторых значений).
import collections
import random
print("For Loop")
occurrences = []
for trial in range(1000):
die1 = random.randint(1, 6)
die2 = random.randing(1, 6)
occurrences.append(die1 + die2)
counter = collections.Counter(occurrences)
for roll, count in counter.items():
print(f"sum = {roll} count = {count}")
, если вы не хотите импортировать другие части стандартной библиотеки вы можете сделать счетчик самостоятельно.
import random
print("For Loop")
occurrences = {}
for trial in range(1000):
die1 = random.randint(1, 6)
die2 = random.randing(1, 6)
roll = die1 + die2
current = occurrences.setdefault(roll, 0)
occurrences[roll] = current + 1
for roll, count in occurrences.items():
print(f"sum = {roll} count = {count}")
обратите внимание, что выходные данные будут немного отличаться, так как они, конечно, связаны с случайностью.