Ludium
Sign In
Introduction to Computational Thinking and Data Science
Optimization
01Optimization Models and the Knapsack Problem02Brute-Force Knapsack and the Exponential Power Set03Greedy Algorithms: One Function, Any Definition of Best04Lambda Keys and Why Greedy Can Miss the OptimumProblem setMIT problem set
01The Knapsack Search Tree: Every Combination, 2ⁿ Nodes02Recursive maxVal: An Exhaustive Search That Beats Greedy03Memoization: Turning Slow Fibonacci into fastFib04Overlapping Subproblems and the Memoized KnapsackProblem setMIT problem set
Graph Models
01Graphs as Models: Nodes, Edges and Euler's Seven Bridges02Coding a Graph in Python: Node, Edge, Digraph and Graph03Depth-First Search for the Shortest Path in a Graph04Breadth-First Search: A Queue of Paths, Fewest Hops FirstProblem setMIT problem set
Stochastic Thinking
01Predictive Nondeterminism and the Stochastic Die Roll02Probability as Counting, and When Multiplying Fails03Simulating Rare Events: Random Seeds and Many Trials04The Birthday Problem: Formula Versus SimulationProblem setMIT problem set

The Birthday Problem: Formula Versus Simulation

Why does a one-line change to a simulation answer birthday questions that the closed-form formula cannot?


Finger exercises

Short drills on what this video just taught. Write the code, run the checks, and reveal the answer only if you are stuck.

0 / 5 passed
Exercise 1 of 5

Groups that must share

There are days possible birthdays. By the pigeonhole principle, find the smallest group size that guarantees at least two people share a birthday, and the smallest that guarantees at least three do. Assign them to two and three.

1
2
3
4
5
days = 366
two = ...  # your code here
three = ...

Python runs in your browser
⌘/Ctrl + Enter runs
?
both are ints
?
guarantees a pair
?
guarantees a triple
←Previous Simulating Rare Events: Random Seeds and Many Trials