「おや、ともちゃんか。何か用かい」
「今度の日曜日にクラスのみんなでお別れ会があるの。そこで、みんなでプレゼントを交換することになったのよ!」
「ほほう。それでなんじゃな?」
「えへへ。おこづかい・・」
「やれやれ。それはそうと、自分で買ったプレゼントが自分に戻ってくることもあるかの?」
「それは、幹事がうまくやると思うの」
「まあ、そうじゃろうな。
う~ん」
「何考えてるの?」
「いや、もし、ランダムに交換するとどの程度の確率で自分の買ったプレゼントが自分に戻ってくるかと考えていたのじゃ」
「クラスの人数は、私も入れて、40人だから、1/40かしら?」
「そうじゃの、ともちゃんの品物がともちゃんに戻ってくる確率は、その通りじゃが、ほかの人も自分の買ったものが自分に戻ってくる人がおるじゃろうが。
全人数をn人として、そのうちのk人の人が自分の品物を自分でもらう確率をP(k,n)としてみようか。このP(k,n)は、どんな式になるか、ともちゃんは、分かるかな?」
「そうね。どの人も自分に戻ってくる確率は、1/n、戻ってこない確率は、(1-1/n)なので、P(k,n)=(1-1/n)^(n-k)×(1/n)^k
かしら」
「少し修正がいるかな。
n人からk人を取り出す組み合わせの数分をかける必要があるな。
じゃから、P(k,n)=(1-1/n)^(n-k)×(1/n)^k×nCkとなるであろう。
特に誰も自分の持ってきたプレゼントを貰わないという、k=0の場合は、(1-1/n)^nとなるが、nが+∞の極限を考えると、1/e≒0.3678794411となるので、その確率は、約36%であるな」
「nが小さい場合やkが大きい場合は、さっきの式と違うの?」
「たとえば、1からnまでの数字をランダムに並べて、先頭からの順番(先頭を1とする)と並んだ数字が一致する確率と考えてみよう。
数字の並べ方は、n!通りあるな。当面、k=0の場合を考えるとすると、どの位置でも順番と一致しない並べ方は、幾通りあるかの?」
「まず、1番目に1番が来ないとすると残りのn-1個のいずれかの数字が来るわね。2番目に2番が来ないのは・・。あーややこしい」
「じゃ。まず、n個の場合は、N(n)通りあるとおいて、1個増えた場合をその数がいくつ増えるかを考えたらどうじゃな?」
「うんと、N(n+1)=N(n)×nだと思うわ」
「惜しいのう。
n=2のときは、一通りしかないので、N(2)=1だな。以下、この式を使うと、N(3)=2までは一致するが、N(4)=6となるものの、4つの場合は、正しくは、9通りあるからの。
まず、1番目の数字とn+1番目の数字が入れ替わったケース(ケース1)と1番目の数字は、n+1番目に来るが、n+1番目の数字は、1番目に来ないケース2とに分けて考えることじゃな」
「そうすると、ケース1では、n+1番目の数一分つをnから引いたn-1個の並べ方N(n-1)があるわね。
1番目は、1~nのいずれでも平等だからn倍なのでケース1の数は、n×N(n-1)だわ」
「その通り。では、ケース2ではどうじゃ」
「ケース2では、n+1番目の数も含めてn個の数の並べ方と考えて、n×N(n)となるのね」
「そう、ケース1とケース2を合計すると、N(n+1)=n×(N(n-1)+N(n))。
こうするとN(4)=3×(N(2)+N(3))=9通りとなって正しい結果じゃ」
「もう少し、簡単にならないかしら」
「少し、天下り式になるのじゃが、N(n)=n!Σ(-1)^m/m!。ここで、m=0~nまでを動くとする。が知られているの。
このような順列を「完全順列」というのだそうじゃ。
また、このような問題を提出した人のモンモール氏の名前にちなんで「モンモールの問題」とも言われている(「数学100の問題」(日本評論社))」
「これを先ほどの漸化式に代入すると確かに満たしているわね」
「ここまで、分かるとさっきのP(0,n)=Σ(-1)^m/m!となるの。試みにn=1~10までを計算してみると、
[0, 0.5, 0.3333333333, 0.375, 0.3666666666, 0.3680555555, 0.3678571428,
0.3678819444, 0.3678791887, 0.3678794642]
となって、n=10で、すでに1/eにかなり近くなっているな」
「数式処理ソフト DERIVE(デライブ)では、どう操作するの?」
「おっと。肝心のことを忘れておったな。この頃、めっきりと忘れっぽくなってな」
「しっかりしてくださいよ」
「さあて、DERIVEの数式入力行に(-1)^m/m!を入れて、エンターを押すと数式シート上に式が現れるので、メニューの解析から総和を指示するとダイアログボックスが開くので、mの変域を0~nとしてOKを押す。数式の作成は、素数のところでやったのう。当該式が選択されているときに解析メニューから数列の作成を指示して、nの変域として0~10を指示すればよいのじゃ」
「それと、さっき出てきた、(1-1/n)^nのn→∞の時の極限の操作は?」
「うん。これは、当該式を入力後に解析メニューから極限を選択して、「近づける値」に「∞」(下部の記号パレットから選択)して、右極限(+∞)を選択すれば、1/eと求まるのじゃ」
「kがゼロでない場合は?」
「これは、DERIVEに頼るとするかな。(1-1/n)^(n-k)×(1/n)^k×COMB(n,k)を数式入力行に入力して、nを∞に近づけると1/(e×k!)となるな」
「へぇー。k=0のときは、さっきと同様に1/eになるわね」
注:P(k,n)のより正確な表現については、上記文中で引用した「数学100の問題」の「出会いの問題」の章に記載されているので、興味のおありになる方は、ご参照ください。