聖彼得堡悖論

2021-08-20 21:49:00 字數 1640 閱讀 2856

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

"""created on fri jun 22 15:15:13 2018

author: yunjinqi

email:[email protected]

sigature:it takes significant discipline,research,diligence and patience

to be successful at algorithmic trading.it takes months,if not years,

to generate consistent profitability.

"""'''

聖彼得堡悖論是數學家丹尼爾·伯努利(daniel bernoulli)的

表兄尼古拉·伯努利(nicola bernoulli)在1738提出的乙個概率期望值悖論,

它來自於一種擲幣遊戲,即聖彼得堡遊戲(表1)。

設定擲出正面或者反面為成功,遊戲者如果第一次投擲成功,得獎金2元,遊戲結束;

第一次若不成功,繼續投擲,第二次成功得獎金4元,遊戲結束;

這樣,遊戲者如果投擲不成功就反覆繼續投擲,直到成功,遊戲結束。

如果第n次投擲成功,得獎金2n元,遊戲結束。

按照概率期望值的計算方法,將每乙個可能結果的得獎值乘以該結果發生的概率

即可得到該結果獎值的期望值。遊戲的期望值即為所有可能結果的期望值之和。

隨著n的增大,以後的結果雖然概率很小,但是其獎值越來越大,每乙個結果的期望值均為l,

所有可能結果的得獎期望值之和,即遊戲的期望值,將為「無窮大」。

按照概率的理論,多次試驗的結果將會接近於其數學期望。

但是實際的投擲結果和計算都表明,多次投擲的結果,

其平均值最多也就是幾十元。正如hacking(1980)所說:「沒有人願意花25元去參加一次這樣的遊戲。」

這就出現了計算的期望值與實際情況的「矛盾」,問題在**?

實際在遊戲過程中,遊戲的收費應該是多少?

決策理論的期望值準則在這裡還成立嗎?這是不是給「期望值準則」提出了嚴峻的挑戰?

正確認識和解決這一矛盾對於人們認識隨機現象、發展決策理論和指導實際決策無疑具有重大意義。、

'''# simulate the paradox

import pandas as pd

import numpy as np

import random

def bet_one_win_money():

tows=[1,-1]

times=0

result=0

while result!=1:

result=random.choice(tows)

times+=1

return 2**times

def get_mean_money_for_many_times(n=1000):

money=

for i in range(n):

return sum(money)/len(money)

mean_money=get_mean_money_for_many_times(10000000)

print(mean_money)

聖彼得堡悖論之破解

import numpy as np import pandas as pd 聖彼得堡悖論 1,2,4,8,16,class stpetresburg object def init self,beitou 2,peilv 1.97 self.peilv peilv 賠率 self.beitou b...