44種類のポスターを揃えるには何枚買う必要があるか(3)

確率分布を求める。
すなわち、n枚買って44種類のポスターがはじめて揃う確率を求める。


まず、簡単のために、ポスターの種類をN=3として考える。
最初にポスターを買うと、1種類が手に入る。


次にポスターを買ったとき、さっきのとダブっていない確率は2/3、
2枚買ってはじめてダブらない確率は2/9、
3枚買ってはじめてダブらない確率は2/27、となる。


次にポスターを買ったとき、さっきのとダブっていない確率は1/3、
2枚買ってはじめてダブらない確率は2/9、
3枚買ってはじめてダブらない確率は4/27、となる。


まとめると、n種類目のポスターをk枚買ってはじめてダブらない確率をpn,kとすると、


p1,1 = 1
p2,1 = 2/3, p2,2 = 2/9, p2,3 = 2/27, ...
p3,1 = 1/3, p3,2 = 2/9, p3,3 = 4/27, ...


3枚買って3種類揃う確率は、
いずれも一発でダブらないから、
p1,1 * p2,1 * p3,1 = 1 * 2/3 * 1/3 = 2/9


4枚買ってはじめて3種類揃う確率は、
2種類目が2枚買ってダブらなくて、3種類目が1枚でダブらない、
2種類目が1枚買ってダブらなくて、3種類目が2枚でダブらない、
の両方をたしたものだから、
p1,1 * p2,2 * p3,1 + p1,1 * p2,1 * p3,2 = 1 * 2/9 * 1/3 + 1 * 2/3 * 2/9 = 2/9


この計算は、
P1(x) = p1,1x
P2(x) = p2,1x + p2,2x2 + p2,3x3 + ...
P3(x) = p3,1x + p3,2x2 + p3,3x3 + ...
をかけあわせたときの、x4の係数の計算と同じである。
同様に、n枚買ってはじめて3種類そろう確率は、xnの係数である。


ポスターが44種類のときも同じように、
 P_n(x) = \frac{45-n}{44}\sum_{k=0}^{\infty}{(\frac{n+1}{44})^{k-1}x^k}
 P(x) = P_1(x)P_2(x)...P_{44}(x)
として、P(x)の係数を調べればよい。


xnの係数をpnとして、
主要な確率を抜き出すと、


p44 = 1.29623E-18
p100 = 0.000608049
p166 = 0.00885773    (この確率が一番高い)
p200 = 0.00685033
p300 = 0.000995932
p400 = 0.000103451
p500 = 1.04166E-05
p600 = 1.04577E-06
p700 = 1.04961E-07
p800 = 1.05343E-08
p900 = 1.05727E-09
p1000 = 1.06112E-10




use strict;

my $nMembers = 44;
my $limit = 1000;
my @p = ( 1 );

my $N = $nMembers;
for my $n(0..$N-1) {
my @p_n = ( 0, ($N - $n) / $N );
for my $i(2..$limit-$n) {
$p_n[$i] = $p_n[$i-1] * $n / $N;
}

my @p_next;
for my $i(0..$limit) {
for my $k(0..$limit-$i) {
$p_next[$i+$k] += $p[$i] * $p_n[$k];
}
}

@p = @p_next;
}

for my $n($N..$limit) {
printf "%d %10g\n", $n, $p[$n];
}