使用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 TCPServer 多線程多客戶端通信的實現(xiàn)
這篇文章主要介紹了Python TCPServer 多線程多客戶端通信的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
詳解如何在python中讀寫和存儲matlab的數(shù)據(jù)文件(*.mat)
這篇文章主要介紹了詳解如何在python中讀寫和存儲matlab的數(shù)據(jù)文件(*.mat),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02
flask框架json數(shù)據(jù)的拿取和返回操作示例
這篇文章主要介紹了flask框架json數(shù)據(jù)的拿取和返回操作,結合實例形式分析了flask框架針對json格式數(shù)據(jù)的解析、數(shù)據(jù)庫操作與輸出等相關操作技巧,需要的朋友可以參考下2019-11-11

