始める無料で始める

誕生日の問題

ここでは、シミュレーションを使って有名な確率パズル「誕生日の問題」を解いてみます。内容はとてもシンプルです――「同じ誕生日の人が少なくとも2人いる確率が50%以上になるには、部屋に何人いればよいでしょうか?」

1年365日の世界で366人いれば、同じ誕生日の人が少なくとも2人いることは100%確実ですが、ここで必要なのは50%の確率だけです。シミュレーションはこの問題をスマートに解く方法を与えてくれます。

この演習を終えると、問題をシミュレーションの枠組みに落とし込む考え方がつかめてきます。

この演習はコースの一部です

Pythonで学ぶ統計シミュレーション

コースを見る

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Draw a sample of birthdays & check if each birthday is unique
days = ____
people = 2

def birthday_sim(____):
    sims, unique_birthdays = 2000, 0 
    for _ in range(sims):
        draw = np.random.choice(days, size=____, replace=True)
        if len(draw) == len(set(draw)): 
            unique_birthdays += 1
    out = 1 - unique_birthdays / sims
    return out
コードを編集して実行