使用Python計(jì)算玩彩票贏錢概率
工具:Jupyter notebook + Anaconda
游戲規(guī)則:時(shí)時(shí)彩一種玩法是買尾號(hào)。2元一個(gè)數(shù)字,中獎(jiǎng)是20元。每個(gè)數(shù)字出現(xiàn)的概率相等。
目前想到兩種買法:
- 隨機(jī)購買,人是感性動(dòng)物,很容易受周圍環(huán)境干擾。完全隨機(jī)購買在生活中是不存在的。
- 分析數(shù)字在前面N期出現(xiàn)的概率,選擇概率最小的n個(gè)數(shù)字購買。
導(dǎo)入包
import numpy as np
定義玩法一:完全隨機(jī)購買
def play_lottery(my_money,play_num,money):
'''
隨機(jī)選擇數(shù)的中獎(jiǎng)率
result:結(jié)果字典
num:用于統(tǒng)計(jì)每個(gè)數(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('開獎(jiǎng)結(jié)果統(tǒng)計(jì):\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
定義玩法二:按照概率購買
第一次購買,假設(shè)玩家已經(jīng)獲取到前面N期開獎(jiǎng)號(hào)的中獎(jiǎng)規(guī)律,不不不,應(yīng)該是前面N期的各個(gè)數(shù)字出現(xiàn)的次數(shù)。
方法如下:
def play_lottery2(my_money,play_num,money):
'''
隨機(jī)選擇數(shù)的中獎(jiǎng)率
result:結(jié)果字典
num:用于統(tǒng)計(jì)每個(gè)數(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('開獎(jiǎng)結(jié)果統(tǒng)計(jì):\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
相對之前完全隨機(jī)購買
輸:贏:平=6037:1886:2077
贏得幾率提升了不少,甚至贏>輸,說的我都想翹課買彩票了。
好了回到正題。珍愛生命,遠(yuǎn)離黃賭毒。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)復(fù)雜對象轉(zhuǎn)JSON的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)復(fù)雜對象轉(zhuǎn)JSON的方法,結(jié)合具體實(shí)例形式分析了Python針對json轉(zhuǎn)換的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
Python TCPServer 多線程多客戶端通信的實(shí)現(xiàn)
這篇文章主要介紹了Python TCPServer 多線程多客戶端通信的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
詳解如何在python中讀寫和存儲(chǔ)matlab的數(shù)據(jù)文件(*.mat)
這篇文章主要介紹了詳解如何在python中讀寫和存儲(chǔ)matlab的數(shù)據(jù)文件(*.mat),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02
TF-IDF與余弦相似性的應(yīng)用(一) 自動(dòng)提取關(guān)鍵詞
這篇文章主要為大家詳細(xì)介紹了TF-IDF與余弦相似性的應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
詳解Python調(diào)用華為API實(shí)現(xiàn)圖像標(biāo)簽
華為云圖像標(biāo)簽可識(shí)別上千種通用物體以及數(shù)百種場景標(biāo)簽,一個(gè)圖像可包含多個(gè)標(biāo)簽內(nèi)容,語義內(nèi)容非常豐富。本文將通過Python調(diào)用華為API實(shí)現(xiàn)圖像標(biāo)簽,需要的可以參考一下2022-04-04
pytorch模型存儲(chǔ)的2種實(shí)現(xiàn)方法
今天小編就為大家分享一篇pytorch模型存儲(chǔ)的2種實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
flask框架json數(shù)據(jù)的拿取和返回操作示例
這篇文章主要介紹了flask框架json數(shù)據(jù)的拿取和返回操作,結(jié)合實(shí)例形式分析了flask框架針對json格式數(shù)據(jù)的解析、數(shù)據(jù)庫操作與輸出等相關(guān)操作技巧,需要的朋友可以參考下2019-11-11

