サンクトペテルブルグのパラドックスを律儀に試すコメントをどうぞTweetTweetTweet「サンクトペテルブルグのパラドックス」は、現実的にはあまり儲からなそうな賭けの期待値が、計算上無限大に発散するとされる有名なパラドックスです。パラドックスを知らない人のために賭けの要点を書いておくと、以下のようになります。「コインを投げ続け、表が出たらゲーム終了。表が出たのが1回目なら1円獲得、2回目なら2円、3回目なら4円...というように、裏が1回出るたびにもらえる金額が倍になる。いくらの賭け金ならこの賭けに参加するべきか。儲け額の期待値Wは以下のように計算されます。1/2で1円、1/4で2円、となるので...ここまで見てだまされないぞと思った人は、しっかり悩んでみてください。Flicker.先日友人との間で話題になって、実際のところおおよそどんな具合で儲かるのかやってみようということでさくっと書いてみたものです。確率についてなんやかんやと議論するのも楽しいですが、ゴリ押しでデータを集めるのもまた面白いものがあります。あと探しても意外とそういう資料が見当たらなかったので。ソースコードいつもどおりC++です。オプションをつけてください。0;}特記するようなものもありません。コマンドライン引数から2の何乗回計算するかを決めて、律儀に試行を繰り返して平均獲得金額を求めています。int型なので2の50乗回程度までは問題ないと思いますが、そのはるか手前の2の30乗前後(数億程度)で計算時間がきつくなってくると思います。乱数も毎回1ビットしか使っていないしシングルスレッドだしで、高速化する余地はまだ残っています。大量に試行した結果は以下のようになります。