期待値の極限
当HPがいつもお世話になっているHN「at」さんからの出題です。
(平成26年1月11日付け)
気が向いたら、次の問題を考えてみてください。
【問題】
nを1以上の自然数とします。1からnまでの自然数を一つずつ書いたカードが計n枚あって、
そこから無作為に1枚抜き取っては元に戻ことを繰り返します。抜き取ったカードに書かれた
数の和が 10n を超えるまで繰り返すとき、カードを抜き取る回数の期待値をE(n)とします。
このとき、limn→∞ E(n) の値を求めてください。
(答) GAIさん、らすかるさんが考察されました。(平成26年1月12日付け)
考えづらいので、とりあえず n=2 で調べる。
11回で和が20を超える場合の数を求める。可能性は、10回までで、20 または 19 の場合
がある。10回までで、20 の場合は、11回目は何が出ても 20 を超えるが、10回までで、19 の
場合は、11回目に数 2 が出れば 20 を超える。
よって、求める場合の数は、 10C0×2+10C1=12(通り)
11回の試行で起こりえるすべての場合の数は、 211(通り)
よって、11回で和が20を超える確率は、 (10C0×2+10C1)/211=3/512 となる。
以下同様にして、
12回で和が20を超える確率は (11C2×2+11C3)/212
13回で和が20を超える確率は (12C4×2+12C5)/213
14回で和が20を超える確率は (13C6×2+13C7)/214
15回で和が20を超える確率は (14C8×2+14C9)/215
16回で和が20を超える確率は (15C10×2+15C11)/216
17回で和が20を超える確率は (16C12×2+16C13)/217
18回で和が20を超える確率は (17C14×2+17C15)/218
19回で和が20を超える確率は (18C16×2+18C17)/219
20回で和が20を超える確率は (19C18×2+19C19)/220
21回で和が20を超える確率は (20C20×2)/221
なので、求める期待値は、E(n)=14913081/1048576≒14.22222233(回)となります。
n=3 以上について、らすかるさんがプログラムを作って求められました。
n = 2: 14.2222223281860
n = 3: 15.8333333256548
n = 4: 16.7999999963199
n = 5: 17.4444444441528
n = 6: 17.9047619055257
n = 7: 18.2500000009314
n = 8: 18.5185185193414
n = 9: 18.7333333339841
n = 10: 18.9090909095746
n = 20: 19.7460317458602
n = 30: 20.0430107524339
n = 40: 20.1951219509553
n = 50: 20.2875816990855
n = 60: 20.3497267757012
n = 70: 20.3943661969338
n = 80: 20.4279835388505
n = 90: 20.4542124539728
n = 100: 20.4752475245167
n=2の14.222222…は、128/9に近く、n=3の15.833333…は190/12に近く、n=4の16.799999…
は252/15に近く、・・・ ということで、期待値は、(62n+4)/(3n+3) に近い値になっています。
(n=100でも成り立っています。)
よって、極限は、62/3=20.666666… になりそうですが、どうでしょうか。
at さんからのコメントです。(平成26年1月12日付け)
GAIさん、らすかるさん、この問題を考えていただき、ありがとうございます。
E(n)の値は、次のような式で計算することができます。
E(n)=Σr=0〜[10n/(n+1)] (10-r)nCr*(-1/n)r*(1+1/n)10n-r(n+1)
このE(n)の計算式から、limn→∞ E(n) の値も計算できます。
( limn→∞ E(n) は、自然対数の底 e の多項式になります。)
(コメント) n=2 のとき、[10n/(n+1)]=[20/3]=6 なので、
E(2)=Σ r=0〜6 20-2rCr*(-1/2)r*(1+1/2)20-3r
=20C0*(-1/2)0*(1+1/2)20+18C1*(-1/2)1*(1+1/2)17+16C2*(-1/2)2*(1+1/2)14+14C3*(-1/2)3*(1+1/2)11
+12C4*(-1/2)4*(1+1/2)8+10C5*(-1/2)5*(1+1/2)5+8C6*(-1/2)6*(1+1/2)2
=(3/2)20-9*(3/2)17+30*(3/2)14-(91/2)*(3/2)11+(495/16)*(3/2)8-(63/8)*(3/2)5+(7/16)*(3/2)2
=14.222222328186
と、らすかるさんの結果に一致したことにちょっと驚き!at さんの計算式の発想は如何?
らすかるさんが n=3 の場合を手計算で考察されました。(平成26年1月12日付け)
11回で30を超えるのは、
30になってから、11回目が1〜3:
10回で30になるのは、1通りなので、全部で1×3=3通り
29になってから、11回目が2〜3:
10回で29になるのは、3が9回2が1回の10C1=10通りなので、全部で10×2=20通り
28になってから、11回目が3:
10回で28になるのは、3が9回1が1回:10C1=10通り
3が8回2が2回:10C2=45通り 計55通りなので、全部で55×1=55通り
よって、合計すると、 3+20+55=78(通り) のようになります。
一覧は以下の通りです。
11: 78 、12: 4862 、13: 85008 、14: 694200 、15: 3295386 、16: 10248876
17: 22481496 、18: 36517224 、19: 45413460 、20: 44252292 、21: 34323595
22: 21403329 、23: 10783641 、24: 4390815 、25: 1437822 、26: 374490
27: 76076 、28: 11664 、29: 1275 、30: 89 、31: 3
30回で30を超えるのは、
29回で30の後1〜3:
29回中1回だけ2なので、29C1×3=87通り
29回で29の後2〜3:
29回とも1で、1×2=2通り 計89通り (やはり上の表で合っていそうです。)
らすかるさんからのコメントです。(平成26年1月12日付け)
at さんの、E(n)=Σ r=0〜[10n/(n+1)] (10-r)nCr*(-1/n)r*(1+1/n)10n-r(n+1) について、つまり
極限は、e10-9e9+32e8-343e7/6+54e6-625e5/24+256e4/45-243e3/560+2e2/315-e/362880
=20.666666666476318800614163091059…
になるということですね。通常、無理数(っぽい数)に収束するときは「有理数っぽくなく半端
に見える数」であることが多いですが、この数は小数点以下9桁まで見ても、「62/3」という単
純な有理数に見える、珍しい数ですね。
この数が、62/3に極めて近い数になるのは何か意味があるのでしょうか。(「概算」で62/3と
いう値になるのかも知れませんね。)
また、この値と62/3の差である
0.00000000019034786605250357560690019800980584512192…
という値の正体も気になります。
at さんからのコメントです。(平成26年1月12日付け)
極限値が、62/3に極めて近い数になる理由までは私にはわからないです...。62/3に極
めて近い数になるのは、偶然なのか、必然なのか、私には見当もつかないです。
この問題の元になったのは、次の問題です。
1からnまでの自然数を一つずつ書いたカードが計n枚あって、そこから無作為に1枚抜
き取っては元に戻す。抜き取ったカードに書かれた数の和がnを超えるまで繰り返すとき、
カードを抜き取る回数の期待値をEnとする。nを無限大にしたとき、このEnの極限値を求
めよ。( 出典1 、出典2)
上記サイトの問題を見て、面白いと思い、一般化を考えてみたくなりました。「カードに書か
れた数の和がnを超えるまで繰り返すとき、」という部分を、mを任意の正の整数として、「カ
ードに書かれた数の和が mn を超えるまで繰り返すとき、」に変更してもうまい具合にEnの
極限が求まることに気づきました。m=10の場合を、今回出題しました。
GAI さんからのコメントです。(平成26年1月13日付け)
らすかるさんのと同じ結果で表示できるプログラムがようやく完成できました。(PARIで試み
ました。) at さんの和が、10n であろうとn2であろうと対応できると思います。n=4 になっても
少し変更したらいけます。
","と";" の使い分けが解らずと戸惑ったり、")"をどこで閉めたらいいのかが見えず悪戦苦
闘の連続でした。どうしても一つの式で作ってしまおうとするものだから、複雑に絡んでいきま
す。細かく小分けしていくのがやりやすく、考えやすいことが少しずつ分かってきました。ピタリ
と一致したときは感激でした。(丸一日パソコンとにらめっこしていて、今日は目がしょぼしょぼ
しています。)プログラムはまさに独学で見よう見まねでやっていますので、計算機を使うとい
うよりも計算機に使われている感覚であり、非能率的で思わぬ間違いをするかもしれません
ので、その点よろしくフォローをお願いします。
空舟さんからのコメントです。(平成26年1月13日付け)
at さんが示されたE(n)の式を使っていろいろ調べてみました所、mをパラメータとする母関
数が、
F(z) = ze1-z/ (1-ze1-z)
となることが分かりました。
F(z) = 2.718281828459045z + 4.670774270471606z2 + 6.666565639555889z3
+ 8.666604490032691z4 + 10.66666206862241z5 + 12.66666714137803z6
+ 14.66666678152219z7 + 16.66666667042781z8 + 18.66666666526821z9
+ 20.66666666646956z10 + ・・・
F(z)は、z=1を特異点に持ちます。計算はコンピュータに任せましたが、その特異点は2位の
極であることが判明しました。
F(z) = 2/(z-1)2 + 4/(3(z-1)) - 11/18 + 8(z-1)/135 + 11(z-1)2/3240 - ・・・
そこで、 G(z) = 2/(z-1)2+4/(3(z-1)) とおくと、F(z)-G(z)という関数は、z=1で連続にすること
ができて、(私はしっかり理解はしていませんが)収束半径の性質(?)によって、z=1における
テーラー級数は収束することになると思います。
G(z) = 2/3+8z/3+14z2/3+20z3/3+26z4/3+32z5/3+38z6/3+44z7/3+50z8/3+56z9/3+62z10)/3+・・・
となっているわけですね!
らすかるさんからのコメントです。(平成26年1月13日付け)
空舟さんの書かれたF(z)の式は少し誤差が大きいようですが、Pari/GPで出力してみると、
F(z) = 2.718281828459045235360287471z+ 4.670774270471604991870139989z2
+ 6.666565639555889904147818469z3+ 8.666604490032695437225479249z4
+ 10.66666206862241185801902737z5+ 12.66666714137812140137193576z6
+ 14.66666678152214344980946003z7+ 16.66666667042688782366234701z8
+ 18.66666666527032134895552172z9+ 20.66666666647631880061416309z10
+ 22.66666666666999117689888872z11+ 24.66666666666990032941957123z12
+ 26.66666666666692227263508735z13+ 28.66666666666664130470966926z14
+ 30.66666666666666034379643466z15+ 32.66666666666666645653052157z16
・・・
となって、z10の係数は、m=10の解とピタリと一致していました。
GAI さんがat さんの問題への応用に挑戦されました。(平成26年1月13日付け)
せっかくプログラムを作ったので、<at さんからの問題>
nを1以上の自然数とします。1からnまでの自然数を一つずつ書いたカードが計n枚あっ
て、そこから無作為に1枚抜き取っては元に戻ことを繰り返します。抜き取ったカードに書か
れた数の和が 10n を超えるまで繰り返すとき、カードを抜き取る回数の期待値をE(n)としま
す。このとき、limn→∞ E(n) の値を求めてください。
を少し見方を変えてn=3に限定して、さらに数の和を一般にLとして、1≦L≦30でのカードを
抜き取る回数の期待値を調べてみました。
L : 期待値(始めて和Lを越える試行回数)
--------------------------------------------------
1 : 1.6666666666667
2 : 1.7777777777778
3 : 2.3703703703704 (n-->∞ での極限値がe=2.71828・・・となるらしい。)
4 : 2.8271604938272
5 : 3.3251028806584
6 : 3.8408779149520
7 : 4.3310470964792
8 : 4.8323426306965
9 : 5.3347558807092
10 : 5.8327152026283
11 : 6.3332712380114
12 : 7.3331890714742
13 : 7.3331802903176
14 : 7.8333470277562
15 : 8.3333711759370
16 : 8.8333027967450
17 : 9.3333407051685
18 : 9.8333385976393
19 : 9.8333385976393
20 : 10.8333355564418
21 : 11.3333338401996
22 : 11.8333322543863
23 : 12.3333338836759
24 : 12.8333333260873
25 : 13.3333331547165
26 : 13.8333334548266
27 : 14.3333333118768
28 : 14.8333333071400
29 : 15.3333333579478
30 : 15.8333333256548 (at さんからの出題)
ところで、らすかるさんが計算されたF(z)の式のzの係数はeそのものですね。さらに展開し
て、z30の係数は、60.66666666666666666666666667となっていくので、{1,2,3,・・・,n}のカ
ードを繰り返し、取り出して出たカードの数字の和が30n を越えるときの試行回数の期待値
Eが、limn→∞ E=182/3 とほとんど分数で解釈できることに繋がるのでしょうか?もし繋がれ
ば、eと整数とを結ぶ面白い関係式が取り出せることになるのかな。
zk (k=1,2,3,・・・,30)までの係数を小数第10位までの精度で分数化してみました。
{419314/154257, 544673/116613, 593891/89085, 650472/75055,773269/72494,
8892431/702034, 42528567/2899675, 1439180667/86350840,4158279645/222764981,
23726328681/1148048162, 68/3, 74/3, 80/3, 86/3,92/3, 98/3, 104/3, 110/3,
116/3, 122/3, 412435716272169/145, 134/3,140/3, 146/3, 152/3, 158/3, 164/3,
170/3, 176/3, 182/3}
at さんからのコメントです。(平成26年1月13日付け)
空舟さんの示された母関数 F(z) = ze1-z/ (1-ze1-z) について:
つまり、元の問題を、「カードに書かれた数の和がmnを超えるまで繰り返すとき、」に変更
した問題の期待値をE(m,n)とし、limn→∞ E(m,n)=f(m)とするとき、f(m)の母関数
Σm=0〜∞ f(m)zm が F(z) = ze1-z/ (1-ze1-z) となるわけですね。いやはや、驚きました。
興味深いですね。
GAIさんへ:
私にはプログラミングのことはよくわからないのですが、元の問題を、「カードに書かれた数
の和が L を超えるまで繰り返すとき、」に変更した場合の期待値をE(L,n)とすれば、
E(L,n)=Σ r=0〜[L/(n+1)] L-rnCr*(-1/n)r*(1+1/n)L-r(n+1)
となるはずです。検算のときの参考になさってください。
私がE(n)の式を求めた手順を書いておきます。
xの有理式f(x)を級数展開したときのxtの係数を [xt]f(x) というように書くことにします。カー
ドを抜き取る回数がk回になっても、まだ和が10nを超えていない確率をP(k)とします。
(ここで、kは、0以上の任意の整数です。)そうすると、E(n)=Σk=0〜∞ P(k) となります。
ここで、P(k)=Σt=0〜10n ([xt](x/n+x2/n+…+xn/n)k)=[x10n]((x/n+x2/n+…+xn/n)k)/(1-x))
=[x10n](x/n)k*(1-xn)k/((1-x)k+1)
です。よって、
E(n)=Σk=0〜∞ P(k)=Σk=0〜∞ [x10n](x/n)k*(1-xn)k/(1-x)k+1
=[x10n](Σk=0〜∞ (x/n)k*(1-xn)k/(1-x)k+1=[x10n](1/(1-x))/(1-(x/n)*(1-xn)/(1-x))
=[x10n](Σr=0〜∞ (-xn+1/n)r/(1-(1+1/n)*x)r+1)
=Σ r=0〜[10n/(n+1)] (10-r)nCr*(-1/n)r*(1+1/n)10n-r(n+1)
GAI さんからのコメントです。(平成26年1月13日付け)
at さん、喉から手が出るほど欲しかった関係式ありがとうございました。さっそく検算に使わ
せてもらったら、L=12、13、19の部分で計算結果をPARI画面からEXCEL画面に貼り付けると
き、ミスをやらかしていることに気づかされました。
(昨日からプログラムを素人作りしていまして、同じことを何度も繰り返し作業しておるので注
意力が落ちております。)
もう一度その部分をやりなおしましたら(L=1の場合だけあわない。)
L=12-->6.8335807737830
L=13-->7.3331890714742
L=19-->10.3333273665176
と上記の関係式から決まる数値と一致して、動かしていたプログラムが正常に作動したこと
がわかりました。この関係式がどんなに有り難いものか、世界で一番知っているのが私であ
ることを保証します。