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回当たりの平均利益(期待値)を
上記理論値とともに表示しています
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円
具体的な数値での計算過程
ゲーム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)は
以下のリンクからダウンロードできます