gm300の日記: 3人の囚人。 2
日記 by
gm300
めんどうなんでプログラムで。オイラが普段使う言語はマイナーっぽいので、ここはjavascritp。
基本コンセプトはこう。
誰が恩赦になるか乱数を使って選ぶ。オイラの技量では乱数からA,B,C に一気にマップできないので、0,1,2 という数字で代用。本質じゃないし。
1が恩赦になったときはcontinue.
そうでない場合は、死刑執行回数++.
0が恩赦がされた場合は、OKnum ++.
で、
var i, par,trynum,oknum ;
trynum = oknum = 0 ;
for( i = 0 ; i < 1000000 ; i ++ ) {
par = Math.floor(Math.random()*3) ;
if( par == 1 ) continue ;
trynum ++ ;
if( par == 0 ) oknum ++ ;
}
document.write(" person0 survive "+(oknum/trynum*100).toFixed(2)+"%, when person1 killed<br>");
結果は約50%.問題は合計試行回数だろうね。
基本コンセプトはこう。
誰が恩赦になるか乱数を使って選ぶ。オイラの技量では乱数からA,B,C に一気にマップできないので、0,1,2 という数字で代用。本質じゃないし。
1が恩赦になったときはcontinue.
そうでない場合は、死刑執行回数++.
0が恩赦がされた場合は、OKnum ++.
で、
var i, par,trynum,oknum ;
trynum = oknum = 0 ;
for( i = 0 ; i < 1000000 ; i ++ ) {
par = Math.floor(Math.random()*3) ;
if( par == 1 ) continue ;
trynum ++ ;
if( par == 0 ) oknum ++ ;
}
document.write(" person0 survive "+(oknum/trynum*100).toFixed(2)+"%, when person1 killed<br>");
結果は約50%.問題は合計試行回数だろうね。
たびたびすみません (スコア:1)
お求めなのは 「B が死刑になるときに A が恩赦になる割合」で、 3囚人問題で欲しいのは、 「B が死刑になると看守が言ったときに A が恩赦になる割合」です。 B が死刑になるときでも、看守は C が死刑になると答える可能性があります。
javascript はどうも相性が悪いので、Perl で書き直すと次のようになります。
Re:たびたびすみません (スコア:2)