お菓子のおまけを全て揃えるには?

問題: 今、あるお菓子のおまけを全種類揃えたい。
ところがこのおまけ、商品に附属していてどの種類のおまけが出るか買うまで分からない。
どの種類のおまけも等確率で出て、ハズレはないものとして、
全種類揃うまで商品を購入する回数の期待値を求めてください。
ただし、種類の数は2以上の自然数の範囲で、解答者にお任せします。

この問題は東工大2年、川喜田さんが投稿してくださった問題です。
これが原文で、期待値でなく、「n回目で揃う確率」とした問題はこちらで扱いました。
さて、期待値となると何が難しいかというと、
いくら2種類でも運が悪ければ100個、200個と買いつづけなければならない可能性もあるからです。
早い話が、無限級数の問題になってしまうわけです。
無限級数に関してこちらに収めておきました。
特に後者の(等差数列)×(等比数列)型の無限級数の知識が必要となりますから、
事前に必ず読んでおくことをお勧めします。

まずは3種類に挑戦したいと思います。
さて、n回目で揃う確率は、でした。
よって、求める期待値は、

ここで、無限級数の公式を用いると、

(おわり)

それでは、今度は4種類の場合を考えてみましょう。

この予想が正しいかは疑問が残りますが、正しいとして続けます(笑)

これを更に簡単にできるのかどうかが分からず止まってしまいした。
あとはコンピュータにお任せすれば(For Loopを作ることで)計算できます。
なお、1−2−3マクロによれば、次のようになるようです。
種類個数の期待値
35.5
48.333
511.42
1029.29
50224.96
100508.60
10002.82*10110
この解法の問題点
 出てきた式が正しいかどうかの保証がない。
 正しいとしても、特定の値を代入して走らせると負の値が出て不具合となる。

悩んでいたところに救世主、pekarinさんが登場!!
発想の転換…あるおまけが当たるまでの期待値を考える。

この式はこれ以上は簡単にできないのですが、先ほどの計算結果と比べるとどうなるでしょうか?
種類個数の期待値
私の式pekarinさんの式
35.55.5
48.3338.333
511.4211.42
1029.2929.29
50224.96224.96
100508.60518.73
10002.82*101107485.5
見ての通り、50種類までは綺麗に同じ値になりました。
100種類以降は明らかに私の式のほうが誤りだと思います。
ただ、これはプログラム上のエラーと思われますので、式としては私のものとpekarinさんのものは同じであると思います。
(誰か証明して〜〜〜(笑))
たった1000種類で2.82*10110個買わなくてはいけないというのは明らかに非現実的ですからね。
pekarinさんの式で計算した方がプログラム的にも正確であることは間違いありません。

お菓子のおまけが全部揃うまでは?
種類だと・・・
 

およそ個買わなくてはいけない。
(再計算するときはリセットを押してください。)

目次へ