Part of the series

Several example codes

~2 min read • Updated Oct 13, 2025

Program Overview

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.


Python Code:


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)

Sample Output:


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

Analysis:

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.

Written & researched by Dr. Shahin Siami