使用Python计算玩彩票赢钱概率

Halona ·
更新时间:2024-11-15
· 624 次阅读

工具:Jupyter notebook + Anaconda

游戏规则:时时彩一种玩法是买尾号。2元一个数字,中奖是20元。每个数字出现的概率相等。

目前想到两种买法:

随机购买,人是感性动物,很容易受周围环境干扰。完全随机购买在生活中是不存在的。 分析数字在前面N期出现的概率,选择概率最小的n个数字购买。

导入包

import numpy as np

定义玩法一:完全随机购买

def play_lottery(my_money,play_num,money): ''' 随机选择数的中奖率 result:结果字典 num:用于统计每个数字出现次数 my_money:我的余额 play_num:投注期数 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('开奖结果统计:\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期开奖号的中奖规律,不不不,应该是前面N期的各个数字出现的次数。

方法如下:

def play_lottery2(my_money,play_num,money): ''' 随机选择数的中奖率 result:结果字典 num:用于统计每个数字出现次数 my_money:我的余额 play_num:投注期数 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('开奖结果统计:\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实现彩票系统Python实现的彩票机选器实例Python随机生成彩票号码的方法Python数据分析之双色球基于线性回归算法预测下期中奖结果示例Python编程实现使用线性回归预测数据Python分析彩票记录并预测中奖号码过程详解



用python Python 彩票

需要 登录 后方可回复, 如果你还没有账号请 注册新账号