一夜暴富還是傾家蕩產?Python模擬賭博實驗
在知乎上看見這麼一個問題:既然賭博每局的勝率為50%,為何最終有那麼多人會賭到傾家蕩產?
似乎挺有道理的,有人就是想不通,勝率50%,長期應該是各有勝負,為何會有人傾家蕩產,對於這個問題我們不妨用Python做一個模擬實驗。
實驗思路:
賭博方式設定為玩骰子、猜大小,一天賭一次,每局一莊一閒,直到閒家輸光或者賭場下班(假設賭場也會下班);
賭徒認為勝負是純運氣時間,堅信不可能把把開大(或開小),所以在連輸三把之後,賭徒會加註50%;
賭徒共有一百萬元存款,第一次參加賭局會攜帶兩萬元現金;
賭徒輸光存款之後會嘗試借高利貸扳本(保守估計月利率5%,國家規定的高利貸利率上限3%,據說賭場高利貸會高很多,具體多少不明);
借高利貸之後第二天立即歸還(一般賭徒很少還錢這麼快的,假設我們模擬的是一個“自律”的賭徒)。
試驗步驟
1. 建立人物
class gambler():
def __init__(self):
self.deposit = 1000000 # 百萬存款,這裡不考慮不動產
self.bet = 20000 # 賭資
self.usury = 0 # 借貸
self.lose = 0 # 連輸局數
Cathala = gambler()#賭博商人卡達拉Cathala.bet = 100000000Cathala.deposit = 100000000
賭場
Geralt = gambler()#Geralt是一名狂熱的賭博愛好者
這是一個喪心病狂的賭徒
2. 建立賭局
今天我們不玩昆特牌,玩色子。
就是這個靠運氣的遊戲
下面是賭局的函式實現:
bet = 1000#每一把1000塊count = 0gambling_list = []#記錄每局比賽的輸贏
def gambling(gambler_a,gambler_b,bet,count):
#a是莊家,b是閒家,bet是當局賭注,count是當前的賭局編號
point = random.randint(2, 12) # 骰子點數
guess = random.randint(0, 1) # 猜大小,0為小,1為大
if (point > 7 and guess == 1) or (point <= 7 and guess == 0): # 猜對了
Geralt.bet += bet
Cathala.bet -= bet return True
else:
Geralt.bet -= bet
Cathala.bet += bet return False
是男人就玩100局
def One_day_gambling():
Geralt.bet = 20000
bet = 1000
count = 0
while True:
gambling_list.append(gambling(Cathala, Geralt, bet, count))
count += 1
if count > 3 and gambling_list[count - 3] == gambling_list[count - 2] ==
gambling_list[count - 1] == False:
bet = bet * 1.5
#連輸三局加賭注,加完之後如果還輸繼續加,贏了賭注保持不變
if Geralt.bet <= -5000 or count >= 100:
#每天最多隻敢借五千的高利貸,每天最多100局,其實大部分都玩不到100局就輸光了
break
return Geralt.bet-20000#返回每天獨居結束時的負債或盈利
然後我們把每天的輸贏都記錄下來,最後統計一下有沒有破產。
def record_daily_gambling():
debt = []#記錄每一天的最終盈虧
for i in range(3000):
n = One_day_gambling()
if n<0:
#小於零就要借高利貸了,計一天的利息
n = n*1.00167
debt.append(n)
if sum(debt) <= -1000000:#一百萬輸光算破產
return (sum(debt),i)
#破產後記下最終輸掉的資金,以及破產時間
return (sum(debt),3000)#一直沒有破產的人def main():
every_example = pd.DataFrame()
lost_money = []
bankrupt_time = [] for j in range(1000):
m = record_daily_gambling()
lost_money.append(m[0])
bankrupt_time.append(m[1])
print(j)
every_example['lost_money'] = lost_money
every_example['bankrupt_time'] = bankrupt_time
every_example.to_csv('experiment_data.csv',index=False,sep=',')
if __name__ == "__main__":
main()
3. 統計資料
總共模擬了1000人,其中未破產的有167人(其中虧損3人,盈利164人),破產833人,破產率83.3%,基本上最後都破產了,我們看看大家各自的破產時間吧。
破產時間分佈
那麼最後沒有破產的人呢?最終盈利多少呢?
未破產人員的八年總盈利
其中最富有的贏了1250萬,一千萬以上的只有六個。
看起來很多對吧,我們繼續往下看:
這是中國這近十年的通貨膨脹率(官方資料):
近十年通貨膨脹率
但是實際通貨膨脹率要比官方資料(根據居民消費指數)高得多(十年前兩塊錢一個的肉夾饃如今已經要十塊錢了,按3%算,現在肉夾饃應該賣兩塊7毛錢~),為何會有這麼大偏差呢,因為國家統計的CPI(居民消費指數)還是採用的1997年以前的標準,沒有將買房支出算入CPI中。
網上查到的認可度比較高的說法是近十年的通貨膨脹率已經達到了13%,暫且按13%計算的話,8年後的1250萬僅相當於今天的553萬,1000個身家100萬的人,沒日沒夜地撲在賭桌上,花了八年時間,最多的一個人也只掙了553萬。
結論
模擬賭博破產率高達83.3%,且有一半人在一年內破產;
因為賭博盈利的隨機性,利潤率並不高,說明賭博並不能作為一個發家致富的手段;
贏倒賭場的可能性幾乎為0。
★推薦閱讀★
相關文章
- 遊戲公司豪賭數億,暴富抑或暴斃?遊戲
- 如何避免手機失竊後傾家蕩產——手把把教你設定SIM卡密碼(也就是PIN密碼)密碼
- DataGuard模擬FailOver實驗AI
- 一夜爆火的現象級產品ChatGPT,是AI突破還是曇花乍現?ChatGPTAI
- 解除安裝oracleasm實驗模擬OracleASM
- Python學習之Craps賭博遊戲篇Python遊戲
- 英國賭博委員會:2019年英國賭博行業報告行業
- 忌賭博 | 美賭博網站資料洩露,說裸奔就裸奔網站
- 分割槽儲存管理模擬實驗
- LInux實驗 : 程式排程模擬Linux
- 實驗三 程式模擬排程程式
- 實驗三 程式排程模擬程式
- CRAPS賭博小遊戲遊戲
- 實驗二 作業模擬排程程式
- YouGov:全球賭博業調查Go
- HTML5實驗:JavaScript模擬流體效果HTMLJavaScript
- 百度搜尋曝賭博推廣:深夜推賭博網站 清晨關閉網站
- 從“模擬”的角度看,《微軟模擬飛行》還需要什麼?微軟
- 模擬退火演算法(1)Python 實現演算法Python
- 用python實現模擬登入人人網Python
- 快手團購小程式先鋒者張哥:哪有一夜暴富,不過慧眼識珠,負重前行
- 實時數倉是一個產品還是解決方案?
- 遊戲飾品交易平臺,暗藏賭博?遊戲
- 傳三星組建新的實驗室:研究無人機虛擬現實賭未來無人機
- 如何用Python投機倒把幾天“暴富”Python
- 【實驗】【LOCK】“鎖等待”模擬、診斷及處理方法
- 騙子、假先知們一夜暴富背後:區塊鏈是迴歸網際網路本來意義的唯一希望區塊鏈
- 模擬資料傳輸常用方式PK,最安全高效的還得是它!
- Python-模擬登入Python
- python模擬c的structPythonStruct
- 單例項歸檔空間佔滿故障模擬實驗單例
- 央視曝光棋牌遊戲特大網路賭博案,參賭金額超1億!遊戲
- Python爬蟲實戰之(五)| 模擬登入wechatPython爬蟲
- Speos — 光學產品設計模擬工具
- promise的模擬實現Promise
- javascript模擬實現replaceAll()JavaScript
- “開箱”等同於賭博? 開箱機制歷史回溯
- Java程式編寫 • 【第5章 程式:賭博遊戲】Java遊戲