auの日記

プログラミング初心者の日記。(auはハンドルネームです)

誕生日のパラドックスをPythonで書いてみた

auです。

きのう誕生日のパラドックスについて感想的なものを書きました。

ですので、今回は誕生日のパラドックスのコードをPython書きました。

import random
import sys

def rand_birthday(m):
    ret = []
    for i in range(10000):
        birthday_list = []
        for j in range(m):
            x = random.randint(1, 365)
            if (x in birthday_list):
                ret.append(1)
                break
            else:
                birthday_list.append(x)
            if j == m-1:
                ret.append(0)
    return ret

if __name__ == "__main__":
    m = int(sys.argv[1])
    print(m, "peoples")
    ret = rand_birthday(m)
    print(ret.count(1) / len(ret))

// 実行結果
23 peoples
0.5017

大体23人くらいだと半分の確率を越えることがわかりました。

つまり、23人いるクラスだと、半分くらいの確率で同じ誕生日の人がいるのか・・・多いなあ。