当前位置: 首页 > 编程笔记 >

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

方祺
2023-03-14
本文向大家介绍使用Python计算玩彩票赢钱概率,包括了使用Python计算玩彩票赢钱概率的使用技巧和注意事项,需要的朋友参考一下

工具:Jupyter notebook + Anaconda

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

目前想到两种买法:

  1. 随机购买,人是感性动物,很容易受周围环境干扰。完全随机购买在生活中是不存在的。
  2. 分析数字在前面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

赢得几率提升了不少,甚至赢>输,说的我都想翘课买彩票了。

好了回到正题。珍爱生命,远离黄赌毒。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 这是我的任务。 如果随机的3位数字与用户的3位数字完全匹配,则会获得一些奖励。 如果用户匹配3位数字但顺序不一致,则其他奖励。 如果用户匹配2位,则其他奖品 如果用户输入仅匹配1位,则其他奖品 这是我想出的: 我得到了三位数的匹配,有时编译后会得到三位数和两位数的匹配。告诉我怎么了。提前谢谢你们。

  • 本文向大家介绍你来回答一下这个问题,一个轮盘,25%的概率是再转一次,25%的概率是赢1块钱,50%的概率是不赢钱,转一次轮盘可以赢多少钱,需要写出计算过程相关面试题,主要包含被问及你来回答一下这个问题,一个轮盘,25%的概率是再转一次,25%的概率是赢1块钱,50%的概率是不赢钱,转一次轮盘可以赢多少钱,需要写出计算过程时的应答技巧和注意事项,需要的朋友参考一下 答案是1/3 假设转一次轮盘可以

  • 我必须创建一个彩票游戏,其中你随机生成六个中奖号码,模拟彩票。让用户输入六个数字,看看他们是否中了彩票! 我已经做了很多,但现在我卡住了。我对java真的很陌生,所以请原谅我。当它提示要求另一个数字时,它会这样做,但它仍然显示它以显示自制的彩票选秀权。此外,当显示计算机制作的彩票选秀权的数字时,它们是重复的相同数字,而不是6个数字。计数器不太好用,可能有点小问题,但我无法弄清楚。谢谢你

  • 本文向大家介绍一个轮盘,25%的概率是再转一次,25%的概率是赢1块钱,50%的概率是不赢钱,转一次轮盘可以赢多少钱,请讲讲解题思路相关面试题,主要包含被问及一个轮盘,25%的概率是再转一次,25%的概率是赢1块钱,50%的概率是不赢钱,转一次轮盘可以赢多少钱,请讲讲解题思路时的应答技巧和注意事项,需要的朋友参考一下 答案是1/3 假设转一次轮盘可以赢X元 则:X=0.25X+0.25*1+0.5

  • 本文向大家介绍Python实现的彩票机选器实例,包括了Python实现的彩票机选器实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现彩票机选器的方法。分享给大家供大家参考。具体实现方法如下: 运行效果如下所示: 希望本文所述对大家的Python程序设计有所帮助。

  • 我正在为课堂编写一个程序。这是一个彩票游戏。这是给出的问题: 编写一个java程序。该程序应该有一个名为lotteryNumber()的方法,该方法应该接受两个整数,最大和最小数字,并应该随机生成并返回这两个数字之间的一个数字(均包含在内)。 另外,提供一个名为checkWinner()的方法,该方法应该接受两个数组(一个用于彩票号码,一个用于用户号码),并检查它们是否相同(相同的号码和序列)。如