n人の誕生日を任意に選べるとすると、場合の数は、
365n
まったく誕生日がかぶらない場合の数は、
最初の人は任意に選べるから、365、
次の人は、364、
最後の人は、(365 - n + 1)、
ということで場合の数は、
365…(365-n+1)
2人だけ同じ誕生日である場合の数は、
その2人は一人と考えて誕生日の場合の数が、
365…(365-n+2)
なんだけど、この2人を選ぶ場合の数が、
nC2
だから、場合の数はあわせて、
365…(365-n+2)nC2
同じ誕生日2人が2組だけいてあとはバラバラの場合の数は、
やっぱり2人は一人と考えて誕生日の場合の数が、
365…(365-n+3)
なんだけど、この2人を2組選ぶ場合の数が、
nC2 n-2C2/2!
最後の2!は、最初のペアになるか、次のペアになるかがダブってるから。
だから、場合の数はあわせて、
365…(365-n+3)nC2 n-2C2/2!
結局、n人の中でk組だけ誕生日が同じペアがいて、
あとは誕生日が重なっていない確率p
kは、
pk = 365…(365-n+k+1)nC2…n-2k+2C2/365n/k!
求めるn人の中で3人以上の誕生日が同じである確率pは、
p = 1 - p0 - … - pm
ここでmは、
m = [n/2]
[x]はガウスの記号で、xを超えない最大の整数。
これでいちおう計算式が出てプログラムを組んで結果が出せるわけだが、
計算の効率とプログラムしやすさを考慮して、漸化式を作っておこう。
p
kを次のように分解する。
pk = ambkck
am = 365…(365-n+m+1)/365n-m
bk = (365-n+m)…(365-n+k+1)/365m-k
ck = nC2…n-2k+2C2/365k/k!
すると、初期値と漸化式が次のように書ける。
a0 = 1, ak+1 = (365-k)/365ak
bm = 1, bk-1 = (365-n+k)/365bk
c0 = 1, ck+1 = n-2kC2/365/(k+1)ck
ここから、
p = 1 - am(b0c0 + … + bmcm)
としてpを求める。
上のボタンを押してみると結果が出る。
45人の場合、約9.4%か。