Counting and Probability on Finite Sample Spaces

Apply counting techniques to calculate probabilities on finite uniform spaces.

23 min read
Beginner

Introduction

When all outcomes are equally likely, probability becomes a counting problem! This connection bridges combinatorics and probability, making complex calculations simple.

Learning Objectives:

  • Apply counting techniques to probability
  • Use uniform probability on finite spaces
  • Solve problems with permutations and combinations

Uniform Probability

On a finite sample space Ξ©\Omega with nn equally likely outcomes:

P(A) = \frac{|A|}{|\Omega|} = \frac{\text{# favorable outcomes}}{\text{# total outcomes}}

Key requirement: All outcomes must be equally likely.

Example: Fair Die

Sample space: Ξ©={1,2,3,4,5,6}\Omega = \{1, 2, 3, 4, 5, 6\}, each with probability 1/61/6.

Event A={2,4,6}A = \{2, 4, 6\} (even number):

P(A)=∣A∣∣Ω∣=36=12P(A) = \frac{|A|}{|\Omega|} = \frac{3}{6} = \frac{1}{2}

python
import random
from scipy.special import comb

# Verify uniform probability with simulation
def simulate_uniform_die(n_trials=10000):
    outcomes = [1, 2, 3, 4, 5, 6]
    A = {2, 4, 6}  # even
    
    count = sum(1 for _ in range(n_trials) if random.choice(outcomes) in A)
    
    print(f"Theoretical P(even) = 3/6 = 0.5000")
    print(f"Simulated P(even) = {count/n_trials:.4f}")

simulate_uniform_die()

Counting with Combinations

Example: Card Hands

Draw 5 cards from 52. What's the probability of getting exactly 2 aces?

Total outcomes: (525)\binom{52}{5} (choose 5 from 52)

Favorable outcomes:

  • Choose 2 aces from 4: (42)\binom{4}{2}
  • Choose 3 non-aces from 48: (483)\binom{48}{3}

P(2Β aces)=(42)β‹…(483)(525)P(\text{2 aces}) = \frac{\binom{4}{2} \cdot \binom{48}{3}}{\binom{52}{5}}

python
from scipy.special import comb

def prob_two_aces():
    # Favorable outcomes
    ways_2_aces = int(comb(4, 2, exact=True))
    ways_3_non_aces = int(comb(48, 3, exact=True))
    favorable = ways_2_aces * ways_3_non_aces
    
    # Total outcomes
    total = int(comb(52, 5, exact=True))
    
    probability = favorable / total
    
    print(f"Ways to choose 2 aces: C(4,2) = {ways_2_aces}")
    print(f"Ways to choose 3 non-aces: C(48,3) = {ways_3_non_aces:,}")
    print(f"Favorable outcomes: {favorable:,}")
    print(f"Total outcomes: C(52,5) = {total:,}")
    print(f"\nP(exactly 2 aces) = {probability:.6f} β‰ˆ {probability:.2%}")

prob_two_aces()

Key Takeaways

  1. Uniform probability: P(A)=∣A∣/∣Ω∣P(A) = |A| / |\Omega| when outcomes are equally likely
  2. Combinatorics + Probability: Use counting to compute probabilities
  3. Pattern: Count favorable outcomes, divide by total outcomes

Next Module: Conditional Probability and Independence!