N88-BASICでパロンドのパラドックス

2022/9/3(土)
N88-BASICでパロンドのパラドックス
 
パロンド(Parrondo)のパラドックスとは
不利なゲームを組合わせているのに
有利なゲームができるというものだそうです
 
ゲームA(不利なゲーム)
 48%の確率で1円得、52%の確率で1円払う
 
ゲームB(不利なゲーム)
 所持金が3の倍数なら
   1%の確率で1円得、99%の確率で1円払う
 所持金が3の倍数以外なら
  85%の確率で1円得、15%の確率で1円払う
 
ゲームC(有利なゲーム)
 半々の確率でゲームAまたはゲームBをする
 
これら、ゲームA~Cの期待値を求めて見ます
まず、
pa  = 0.48
pb0 = 0.01
pb1 = 0.85
pc  = 0.5
と置いて、式をつくります
 
ゲームA
 paの確率で1円得、1-paの確率で1円払う
 
ゲームB
 所持金が3の倍数なら
  pb0の確率で1円得、(1-pb0)の確率で1円払う
 所持金が3の倍数以外なら
  pb1の確率で1円得、(1-pb1)の確率で1円払う
 
ゲームC
 pcの確率でゲームA、(1-pc)の確率でゲームBをする
 
期待値EBC 
所持金を3で割った余りが0,1,2である確率を
それぞれx,y,zとし、
余りが0の時、勝つ確率をp0、それ以外の時、
勝つ確率をp1とする
 
所持金/3の余り:確率
0(x)→1(y,+1):p0、0(x)→2(z,-1):(1-p0)
1(y)→2(z,+1):p1、1(y)→0(x,-1):(1-p1)
2(z)→0(x,+1):p1、2(z)→1(y,-1):(1-p1)
 
x = (1-p1)y + p1z (y→x,z→x)
y = (1-p1)z + p0x (z→y,x→y)
z = (1-p0)x + p1y (x→z,y→z)
x + y + z = 1
 
z + y = 1 - x
期待値EBC
= {1円×p0-1円×(1-p0)}・x   … x→+1、x→-1
+ {1円×p1-1円×(1-p1)}(y + z) … (y,z)→+1、(y,z)→-1
= (p0-1+p0)・x + (p1-1+p1)(y + z)
= (2p0-1)・x + (2p1-1)(1-x)
= (2p0-1)・x + (2p1-1) - (2p1-1)・x
= 2(p0-p1)・x + 2p1 - 1
 
z = 1 - x - y
 
x = (1-p1)y + p1(1 - x - y)
= (1-p1)y + p1 - p1x - p1y
 
(1+p1)x + (2p1-1)y = p1 
 
y = (1-p1)(1 - x - y) + p0x
= (1-p1) - (1-p1)x - (1-p1)y + p0x
(1-p1-p0)x + (2-p1)y = (1-p1)
 
(1+p1)(2-p1)x + (2p1-1)(2-p1)y = p1(2-p1)
(2p1-1)(1-p1-p0)x + (2p1-1)(2-p1)y = (2p1-1)(1-p1)
 
x = {p1(2-p1)-(2p1-1)(1-p1)}/{(1+p1)(2-p1)-(2p1-1)(1-p1-p0)}
= {p1(2-p1)+(2p1-1)(p1-1)}/{(1+p1)(2-p1)+(2p1-1)(p0+p1-1)}
= (2p1-p12+2p12-2p1-p1+1)/(2-p1+2p1-p12+2p0p1+2p12-2p1-p0-p1+1)
= (p12-p1+1)/(p12+2p0p1+3-p0-2p1)
 
期待値EBC = 2(p0-p1)・x + 2p1 - 1
= 2(p0-p1)(p12-p1+1)/(p12+2p0p1+3-p0-2p1) + 2p1 - 1
= 2(p0-p1){p1(p1-1)+1}/{p1(p1-2)+p0(2p1-1)+3} + 2p1 - 1
 
まとめ
期待値EA 
= 1円 × pa + (-1円) × (1-pa)
= pa - (1-pa) = 2pa - 1 (円)
 
期待値EBC 
= 2(p0-p1){p1(p1-1)+1}/{p1(p1-2)+p0(2p1-1)+3} + 2p1 - 1
に下記数値を代入
ゲームB
 p0 = pb0、p1 = pb1 
ゲームC
 p0 = papc+ pb0(1-pc)、p1 = papc+ pb1(1-pc)
 
実行すると100000円の所持金からスタートして
ゲームA~Cをそれぞれ100000回シミュレートして
1回当たりの平均利益(期待値)を
上記理論値とともに表示しています



おまけ
具体的な数値での計算過程
 
ゲームA(不利なゲーム)
 48%の確率で1円得、52%の確率で1円払う
 
ゲームB(不利なゲーム)
 所持金が3の倍数なら
   1%の確率で1円得、99%の確率で1円払う
 所持金が3の倍数以外なら
  85%の確率で1円得、15%の確率で1円払う
 
ゲームC(有利なゲーム)
 半々の確率でゲームAまたはゲームBをする
 
ゲームAの期待値EA 
= 1円 × 48%/100 + (-1円) × 52%/100
= (48-52)/100 = -4/100 = -0.04円
 
ゲームBの期待値EB 
 
所持金を3で割った余りが0,1,2である確率を
それぞれx,y,zとする
 
所持金/3の余り:確率
0(x)→1(y,+1):0.01、0(x)→2(z,-1):0.99
1(y)→2(z,+1):0.85、1(y)→0(x,-1):0.15
2(z)→0(x,+1):0.85、2(z)→1(y,-1):0.15
 
x = 0.15y + 0.85z (y→x,z→x)
y = 0.15z + 0.01x (z→y,x→y)
z = 0.99x + 0.85y (x→z,y→z)
x + y + z = 1
z = 1 - x - y
 
x = 0.15y + 0.85(1 - x - y)
= 0.15y + 0.85 - 0.85x - 0.85y
1.85x + 0.70y = 0.85 (各項×20)
37x + 14y = 17
4255x + 1610y = 1955
518x + 196y = 238
 
y = 0.15(1 - x - y) + 0.01x
= 0.15 - 0.15x - 0.15y + 0.01x
0.14x + 1.15y = 0.15
14x + 115y = 15
196x + 1610y = 210
518x + 4255y = 555
 
4059x = 1745、x = 1745/4059
4059y = 317、y = 317/4059
y + z = (4059-1745)/4059 = 2314/4059
z = (2314-317) 1997/4059
(x≒43.0%、y≒7.8%、z≒49.2%)
 
0(x)→1(y,+1):0.01、0(x)→2(z,-1):0.99
1(y)→2(z,+1):0.85、1(y)→0(x,-1):0.15
2(z)→0(x,+1):0.85、2(z)→1(y,-1):0.15
 
期待値EB 
= (1円×0.01-1円×0.99)・x   … x→+1、x→-1
+ (1円×0.85-1円×0.15)(y + z) … (y,z)→+1、(y,z)→-1
= -0.98×1745/4059 + 0.70×2314/4059
= (-1710.1 + 1619.8) / 4059 = -90.3/4059
= -903/40590 = -301/13530
≒ -0.02224685円
 
ゲームCの期待値EC 
 
所持金を3で割った余りが0,1,2である確率を
それぞれx,y,zとする
 
所持金/3の余り:確率
0(x)→1(y,+1):(0.01+0.48)/2、0(x)→2(z,-1):(0.99+0.52)/2
1(y)→2(z,+1):(0.85+0.48)/2、1(y)→0(x,-1):(0.15+0.52)/2
2(z)→0(x,+1):(0.85+0.48)/2、2(z)→1(y,-1):(0.15+0.52)/2
 
0(x)→1(y,+1):0.245、0(x)→2(z,-1):0.755
1(y)→2(z,+1):0.665、1(y)→0(x,-1):0.335
2(z)→0(x,+1):0.665、2(z)→1(y,-1):0.335
 
x = 0.335y + 0.665z
y = 0.335z + 0.245x
z = 0.755x + 0.665y
x + y + z = 1
z = 1 - x - y
 
x = 0.335y + 0.665(1 - x - y)
= 0.335y + 0.665 - 0.665x - 0.665y
1.665x + 0.33y = 0.665 (各項×200)
333x + 66y = 133
88911x + 17622y = 35511
5994x + 1188y = 2394
 
y = 0.335(1 - x - y) + 0.245x
= 0.335 - 0.335x - 0.335y + 0.245x
0.090x + 1.335y = 0.335 (各項×200)
18x + 267y = 67
1188x + 17622y = 4422
5994x + 88911y = 22311
 
87723x = 31089、x = 31089/87723 = 10363/29241
87723y = 19917、y = 19917/87723 =  6639/29241
(= 2213/9747)
y+z = (29241-10363)/29241 = 18878/29241
z = (18878-6639)/29241 = 12239/29241
(x≒35.4%、y≒22.7%、z≒41.9%)
 
0(x)→1(y,+1):0.245、0(x)→2(z,-1):0.755
1(y)→2(z,+1):0.665、1(y)→0(x,-1):0.335
2(z)→0(x,+1):0.665、2(z)→1(y,-1):0.335
 
期待値EC 
= (1円×0.245-1円×0.755)・x   … x→+1、x→-1
+ (1円×0.665-1円×0.335)(y + z) … (y,z)→+1、(y,z)→-1
= -0.51×10363/29241 + 0.33×18878/29241
= (-5285.13 + 6229.74) / 29241 = 944.61/29241
= 94461/2924100 = 31487/974700
≒ 0.03230429円

 
NL-BASICとblg~.zip(parr001.bas)は
以下のリンクからダウンロードできます

https://ulprojectmail.blogspot.com
Readme.txtを読んで遊んで下さい














このブログの人気の投稿

NEWS

N88-BASICでゲーム (1回目)