ペテルスブルグのパラドックスはニコラス・ベルヌイ(1695-1726),ダニエル・ベルヌイ(1700-1782)兄弟がペテルスブルグを訪れたとき話題にしたものと言われ,それに因んでペテルスブルグのパラドックスと言われています。
それは,期待値に関連した問題です。期待値は高校の数学の教科書に載っていますが,変量x1, x2, ... , xn の取る確率がそれぞれ,p1, p2, ..., pn であったとき, E=x1p1+x2p2+ ... +xnpn で計算される式です。ここで,p1+ p2+ ...+ pn=1 , すなわちこれらですべての場合を尽くしているとします。これはその言葉の通り,これらの事象が起こったとき,平均的に期待される値です。つまり大体平均的に予想される値です。 因みに第415回全国自治宝くじの期待値を計算してみたところ,約144円でした。大体どの宝くじも同じような期待値だそうです。宝くじは1枚300円ですが,宝くじを買うのが賢明かどうか良く考える必要がありますね。夢を買い,そして自治体に寄付すると考えれば安いかもしれません。
ところで,ペテルスブルグのパラドックスは次のようなゲームです。
さて,このゲームの期待値を計算してみましょう。 n回目でゲームが終わる場合の賞金を xn とし,その起きる確率を pn として期待値を計算すれば良いわけです。 ですから,このとき期待値は E=x1p1+x2p2+ ... +xnpn+ ... で計算されます。
従って期待値は E=x1p1+x2p2+ ... +xnpn+ ...= 1/2 + 1/2 + 1/2 + ... + 1/2 +...= ∞(無限大) です。
期待値が無限大ということは,限りなく有利なゲームと見ることが出来ます。そこで,1回のゲームの代金が10ドルであったとします。皆さんはこのゲームをする価値があると思うでしょうか? 恐らく,催眠商法的な上手な胴元に 「本当なら,期待値が無限大だから,いくら高い代金でもそっちは得をすることは分かっているよ。でも,今日は特別大サービスだ。こっちが損をするのを承知で1回代金10ドルで出来ることにしよう。本当に今日だけだよ,やらないと損だよ。」 といわれた時,やってみようと言う誘惑に駆られるかもしれません。
実際にこのようなゲームを行うことは出来ませんが,コンピュータの中では簡単に実現できます。 次のプログラムはペテルスブルグのパラドックスを実験するものです。 ' ペテルスブルグのパラドックス
'
cls
Price = 10
Gain = 0
MaxCount = 0
NumofGames = 10000
For i=1 to NumofGames
Randomize
Count = 0
Do While 1=1
Result= Round(Rnd(1))
if Result = 1 then
Syoukin = 2^Count
MaxCount= Max(MaxCount,Count)
Exit do
end if
Count = Count +1
Loop
Gain = Gain+ Syoukin - Price
Next i
Print "1回の代金 "; Price;" ドルのとき"
Print "決算金額 "; Gain; "ドル"
Print "最大賞金 ";2^MaxCount;"ドル"
End
プログラムの詳しい説明はここでは省きますが,Price が代金を表しています。 ここでは,代金10ドルとして,10000回ゲームを行ったときの,決算金額を計算しています。
ここで,一体何がパラドックスなのでしょうか。 実は実際に実験を行ってみると,1回10ドルの代金では大損をするのです。理論上はいくらの代金でも儲かるはずですが,10ドルで大損,勿論それ以上の代金ではもっと大損です。不思議ですね。 このパラドックスにもいくつかの解釈があります。でもパラドックスはパラドックスとして自分で考えるのが良いでしょう。ということで,ここでの説明は此処までとしましょう。 |