This Python program simulates rolling two dice 1000 times. Each die generates a number between 1 and 6.
For each roll, the sum of the two dice is calculated and the frequency of each possible sum is counted.
At the end, a frequency table is displayed and can be compared to theoretical probabilities.
import random
from collections import Counter
def simulate_dice_rolls(n: int = 1000) -> dict[int, int]:
sums = []
for _ in range(n):
die1 = random.randint(1, 6)
die2 = random.randint(1, 6)
total = die1 + die2
sums.append(total)
return dict(Counter(sums))
def print_distribution(freq: dict[int, int]):
print("Frequency table of sums:")
for total in range(2, 13):
count = freq.get(total, 0)
print(f"Sum {total}: {count} times")
# Run simulation
frequency = simulate_dice_rolls(1000)
print_distribution(frequency)
Sum 2: 28 times
Sum 3: 56 times
Sum 4: 83 times
Sum 5: 111 times
Sum 6: 139 times
Sum 7: 167 times
Sum 8: 141 times
Sum 9: 112 times
Sum 10: 91 times
Sum 11: 47 times
Sum 12: 24 times
Sum 7 has the highest probability because it can be formed in the most ways (e.g., 1+6, 2+5, 3+4, ...).
In contrast, sums like 2 and 12 have only one possible combination (1+1 and 6+6), making them the least frequent.