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


Posted in Python onJune 26, 2019

工具: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

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

可以看出输:赢:平=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

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

可以看出按照概率购买之后比值为:

输:赢:平=3733:3761:2506

相对之前完全随机购买

输:赢:平=6037:1886:2077

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用python分割TXT文件成4K的TXT文件
May 23 Python
Python创建日历实例
Aug 21 Python
python中pycurl库的用法实例
Sep 30 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
Nov 18 Python
Python多进程同步简单实现代码
Apr 27 Python
Python Django使用forms来实现评论功能
Aug 17 Python
python3制作捧腹网段子页爬虫
Feb 12 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
Jan 03 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 Python
学习Python爬虫的几点建议
Aug 05 Python
Pygame框架实现飞机大战
Aug 07 Python
java中的控制结构(if,循环)详解
Jun 26 #Python
PyQt5实现QLineEdit添加clicked信号的方法
Jun 25 #Python
pyqt5 键盘监听按下enter 就登陆的实例
Jun 25 #Python
PyQt5响应回车事件的方法
Jun 25 #Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 #Python
用python做游戏的细节详解
Jun 25 #Python
Python二进制文件读取并转换为浮点数详解
Jun 25 #Python
You might like
php访问查询mysql数据的三种方法
2006/10/09 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
javascript 有趣而诡异的数组
2009/04/06 Javascript
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
JavaScript中将数组进行合并的基本方法讲解
2016/03/07 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
js微信分享实现代码
2020/10/11 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
vue 路由子组件created和mounted不起作用的解决方法
2019/11/05 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
python 定时修改数据库的示例代码
2018/04/08 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
详解python中init方法和随机数方法
2019/03/13 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
eBay英国购物网站:eBay.co.uk
2019/06/19 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
感恩教师节演讲稿
2014/09/03 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
走群众路线学习心得体会
2014/10/31 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis