使用Python計算玩彩票贏錢概率
工具:Jupyter notebook + Anaconda
游戲規(guī)則:時時彩一種玩法是買尾號。2元一個數(shù)字,中獎是20元。每個數(shù)字出現(xiàn)的概率相等。
目前想到兩種買法:
- 隨機購買,人是感性動物,很容易受周圍環(huán)境干擾。完全隨機購買在生活中是不存在的。
- 分析數(shù)字在前面N期出現(xiàn)的概率,選擇概率最小的n個數(shù)字購買。
導入包
import numpy as np
定義玩法一:完全隨機購買
def play_lottery(my_money,play_num,money): ''' 隨機選擇數(shù)的中獎率 result:結果字典 num:用于統(tǒng)計每個數(shù)字出現(xiàn)次數(shù) my_money:我的余額 play_num:投注期數(shù) money:投注額 flag: 1代表贏錢 0則相反 2表示不輸不贏 ''' flag = 1 temp = my_money result = {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9} data = np.random.randint(0,10,(play_num,1)) num = np.zeros((10,1)) for i in data: play = np.random.randint(0,10,(5,1)) if i in play: temp = temp + money else: temp = temp - money if result[str(i[0])] == i[0]: num[i[0]] = num[i[0]] + 1 print('我的余額:',temp) print('開獎結果統(tǒng)計:\n',num[0][0],num[1][0],num[2][0],num[3][0],num[4][0],num[5][0],num[6][0],num[7][0],num[8][0],num[9][0]) if temp < my_money: flag = 0 elif temp == my_money: flag = 2 return flag
賭博代碼
i = 0 binary = np.zeros((3,1)) while i < 10000: binary[play_lottery(1000,10,10)][0] += 1 i = i + 1
可以看出輸:贏:平=6037:1886:2077
定義玩法二:按照概率購買
第一次購買,假設玩家已經獲取到前面N期開獎號的中獎規(guī)律,不不不,應該是前面N期的各個數(shù)字出現(xiàn)的次數(shù)。
方法如下:
def play_lottery2(my_money,play_num,money): ''' 隨機選擇數(shù)的中獎率 result:結果字典 num:用于統(tǒng)計每個數(shù)字出現(xiàn)次數(shù) my_money:我的余額 play_num:投注期數(shù) money:投注額 flag: 1代表贏錢 0則相反 2表示不輸不贏 ''' flag = 1 temp = my_money result = {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9} data = np.random.randint(0,10,(play_num,1)) num = np.zeros((10,1)) num_first = np.random.randint(0,10,(10,1)) is_one = 1 for i in data: if is_one == 1: play = np.argsort(num_first,axis=0).reshape(-1,1)[0:5] is_one = 0 play = np.argsort(num,axis=0).reshape(-1,1)[0:5] if i in play: temp = temp + money else: temp = temp - money if result[str(i[0])] == i[0]: num[i[0]] = num[i[0]] + 1 print('我的余額:',temp) print('開獎結果統(tǒng)計:\n',num[0][0],num[1][0],num[2][0],num[3][0],num[4][0],num[5][0],num[6][0],num[7][0],num[8][0],num[9][0]) if temp < my_money: flag = 0 elif temp == my_money: flag = 2 return flag
賭博代碼
i = 0 binary = np.zeros((3,1)) while i < 10000: binary[play_lottery2(1000,10,10)][0] += 1 i = i + 1
可以看出按照概率購買之后比值為:
輸:贏:平=3733:3761:2506
相對之前完全隨機購買
輸:贏:平=6037:1886:2077
贏得幾率提升了不少,甚至贏>輸,說的我都想翹課買彩票了。
好了回到正題。珍愛生命,遠離黃賭毒。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python連接SQL Server數(shù)據(jù)庫并實時讀取數(shù)據(jù)
在Python中,可以使用pyodbc庫來連接SQL Server數(shù)據(jù)庫,并使用pandas庫來進行數(shù)據(jù)處理,下面我們就來講講如何實時讀取SQL Server數(shù)據(jù)庫表,并將數(shù)據(jù)寫入Excel文件,需要的可以參考下2023-12-12Python自定義一個類實現(xiàn)字典dict功能的方法
今天小編就為大家分享一篇Python自定義一個類實現(xiàn)字典dict功能的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01Python圖像銳化與邊緣檢測之Sobel與Laplacian算子詳解
圖像銳化和邊緣檢測主要包括一階微分銳化和二階微分銳化,本文主要講解常見的圖像銳化和邊緣檢測方法,即Sobel算子和Laplacian算子,感興趣的可以了解一下2022-12-12Python?OpenCV實現(xiàn)圖片預處理的方法詳解
這篇文章主要為大家詳細介紹了Python?OpenCV實現(xiàn)圖片預處理的方法,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的可以了解一下2022-09-09python json load json 數(shù)據(jù)后出現(xiàn)亂序的解決方案
今天小編就為大家分享一篇python json load json 數(shù)據(jù)后出現(xiàn)亂序的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02