スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コインを投げ続ける確率の問題

◇◇知恵袋数学カテの質問の検証プログラム◇◇

[一橋大の問題]
最初の試行で3枚の硬貨を同時に投げ、裏が出た硬貨を取り除く。次の試行で残った硬貨を同時に投げ、裏が出た硬貨を取り除く。これを硬貨がなくなるまで繰り返す。
試行がn回以上行われる確率

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1130552466

Tags : 数学 組合せ論

私の出した理論式は
1 - { 1-(1/2)n-1 }3
導出は上記URL参照。

この結果の真偽を検証する。

[プログラムリスト(C言語)]
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>

int main(void)
{
bool coin[3]={true,true,true};
int trial[65535];
int r,n=10000000,i,j,k;
double sum;

srand((unsigned)time(NULL));
memset(trial,0,65535);

for(k=0;k<n;k++){
for(i=1;;i++){
for(j=0;j<3;j++){
if(coin[j]){
r=rand()%2;
if(r==0) coin[j]=false;
}
}
if(!(coin[0]|coin[1]|coin[2])) break;
}

trial[i]++;
coin[0]=coin[1]=coin[2]=true;
}

for(i=0;i<30;i++){
sum=0.0;
for(j=0;j<i;j++){
sum+=(double)trial[j]/n;
}
printf("%2d回以上続く確率:%lf\n",i,1.0-sum);
}

return 0;
}


[実行結果(例)]
 0回以上続く確率:1.000000
1回以上続く確率:1.000000
2回以上続く確率:0.874849
3回以上続く確率:0.577946
4回以上続く確率:0.329483
5回以上続く確率:0.177886
6回以上続く確率:0.088225
7回以上続く確率:0.046965
8回以上続く確率:0.022628
9回以上続く確率:0.013030
10回以上続く確率:0.007308
11回以上続く確率:0.002883
12回以上続く確率:0.001190
13回以上続く確率:0.000381
14回以上続く確率:0.000137
15回以上続く確率:0.000076
16回以上続く確率:0.000031
17回以上続く確率:0.000015
18回以上続く確率:0.000015
19回以上続く確率:0.000015
20回以上続く確率:0.000015
21回以上続く確率:0.000015
22回以上続く確率:0.000000
23回以上続く確率:0.000000
24回以上続く確率:0.000000
25回以上続く確率:0.000000
26回以上続く確率:0.000000
27回以上続く確率:0.000000
28回以上続く確率:0.000000
29回以上続く確率:0.000000

※試行回数10000000回


[理論式との誤差]
 1回以上…:0
2回以上…:0.000151
3回以上…:0.000179
4回以上…:0.000595125
5回以上…:-0.00186060937
6回以上…:0.00262583008
7回以上…:-0.000818607178
8回以上…:0.000626871368
9回以上…:-0.00135696676
10回以上…:-0.00146006164

どうやら理論式は正しいらしい。検証終了。
誤差の原因は、試行回数が少ないことの他に、乱数(rand()関数)の精度の問題もありそう。

2009/09/14
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

fura2

Author : fura2
数学・コンピュータを中心に、考えたこと・やったことを書いていきます。

誤植等を含め、間違いはご指摘いただければ幸いです。

FC2カウンター
検索フォーム
最新記事
最新コメント
最新トラックバック
月別アーカイブ
リンク
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。