[過去ログ] 高校数学の質問スレ Part438 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
391
(2): 2024/08/18(日)19:07 ID:Z78bkjMq(1/3) AAS
n人でジャンケンをして、勝者一人が決定するまでに要するジャンケンの
回数(あいこも一回とカウント)の期待値をfnとすると、次の式が成立

fn = 1 + p1*f1 + p2*f2 + p3*f3 + p4*f4 + ... + p_{n-1}*f_{n-1} + (1-p~)*fn

ここで、 pkはk人が勝ち抜けする確率。 p~はp1+p2+p3+...+p_{n-1}。つまり、(1-p~)はあいこの確率

整理すると、
fn = (1/p~)(1 + p1*f1 + p2*f2 + p3*f3 + p4*f4 + ... + p_{n-1}*f_{n-1})

f1=0,pk=3*C[n,k]/3^n=C[n,k]/3^(n-1)を使うと、

f[n_]:=f[n]=If[n==1,0,(1/Sum[Binomial[n,k]/3^(n-1),{k,1,n-1}])*(1+Sum[Binomial[n,k]/3^(n-1) f[k],{k,1,n-1}])]

というが作れる。

f[11]=52638199503/1504831636
396
(3): 2024/08/18(日)21:42 ID:Z78bkjMq(2/3) AAS
>>394
うちの環境では問題なくf[100]は計算できます。

もしかして、
f[n_]:=f[n]=If[n==1,0,(1/Sum[Binomial[n,k]/3^(n-1),...
ではなく、
f[n_]:=If[n==1,0,(1/Sum[Binomial[n,k]/3^(n-1),...
と定義したのではありませんか?

上の定義では、1度計算したf[n]はテーブルに保存され、同じものが呼び出された時は、それを使います。
下の定義では、fを呼び出すたびに、再帰関数として計算が繰り返されます。
このように定義すると、うちの環境でも止まります。

また、このように再帰的に定義された関数は、いきなり大きなnを呼び出すとエラーになることがあるので、
Table関数などを使って、小さなところから順に呼び出すのがコツです。
398
(1): 2024/08/18(日)22:06 ID:Z78bkjMq(3/3) AAS
f[n_]:=f[n]=If[n==1,0,(1/Sum[Binomial[n,k]/3^(n-1),{k,1,n-1}])*(1+Sum[Binomial[n,k]/3^(n-1) f[k],{k,1,n-1}])];
Table[N[f[k],10],{k,{50,100,150,200,250,300,350,400,450,500}}]

{2.125639851 10^8 , 1.355203941 10^17 , 8.641071598 10^25 , 5.509733036 10^34 , 3.513124244 10^43 ,
2.240043551 10^52 , 1.428299930 10^61 , 9.107147438 10^69 , 5.806913012 10^78 , 3.702612586 10^87 }
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.042s