咱自己写个彩票程序,成功亏掉3个亿

今天突发奇想,自己设计一个小程序,模拟彩票中奖,看看如果自己有个彩票公司,能挣钱吗?
代码如下:

# -*- utf-8 -*-
"""
彩票模拟示例
""" import random
import datetime starttime = datetime.datetime.now() # 记录开始时间 money = 2 # 一张彩票单价
money_list = [] # 彩票及奖金池
buy_list = [] # 购买的号码
lottery_list = [] # 中奖号码
time_1 = 1 # 模拟次数
lottery_dic = {
"一等奖": 0,
"二等奖": 0,
"三等奖": 0,
"四等奖": 0,
"五等奖": 0,
} # 中奖统计 while time_1 < 50000000: # 购买的彩票池
list_1 = random.sample(range(1,34),5) # 生成5个红球
list_1.sort()
number_b = random.randint(1,16) # 生成1个蓝球
list_1.append(number_b)
buy_list.append(list_1)
time_1 += 1 # 模拟开奖
list_2 = random.sample(range(1,34),5)
list_2.sort()
number_bl = random.randint(1,16)
list_2.append(number_bl) # 生成中奖的号码 # 判断中了几等奖
for i in buy_list:
number_1 = 0
for j in i[0:5]:
if j in list_2[0:5]:
number_1 += 1
if i[-1] == list_2[-1]:
number_1 +=1 if number_1 == 6:
lottery_dic["一等奖"] += 1
# print(i)
elif number_1 == 5:
lottery_dic["二等奖"] += 1
# print(i)
elif number_1 == 4:
lottery_dic["三等奖"] += 1
elif number_1 == 3:
lottery_dic["四等奖"] += 1
elif number_1 == 2:
lottery_dic["五等奖"] += 1 打印中奖情况
print(
"""
一等奖:{}
二等奖:{}
三等奖:{}
四等奖:{}
五等奖:{}
""".format(lottery_dic["一等奖"],lottery_dic["二等奖"],lottery_dic["三等奖"],lottery_dic["四等奖"],lottery_dic["五等奖"])
) # 查看中奖号码及是否有一等奖
if list_2 in buy_list:
print(list_2)
else:
print("没有一等奖")
print(list_2) # 计算售卖金额、奖金、累计余额池并打印
money_sole = time_1 * 2
money_give = lottery_dic["一等奖"]*5000000 + lottery_dic["二等奖"]*80000 + lottery_dic["三等奖"]*1000\
+ lottery_dic["四等奖"]*100 + lottery_dic["五等奖"]*10
money_resi = money_sole - money_give money_list.append(money_sole)
money_list.append(money_give)
money_list.append(money_resi)
print(money_list) endtime = datetime.datetime.now() # 结束时间
print((endtime - starttime).seconds) # 打印所花时间

咱模拟的是某球的中奖情况,当然对中奖情况和号码购买进行了简化,没有考虑多倍购买,中奖等级也简单的根据中奖的号码个数进行设计,运行结果如下:

这不运行不知道,一运行吓一跳,直接给我来了13注一等奖,按照每注500万,这一等奖就得发6500万,再加上后面的奖,要发的奖金就有4.977亿!那咱卖了多少钱呢?
咱们程序设置的是2块钱一注,一共进行了5000万次循环,也就是卖出了5000万注彩票,一共收入1个亿,好家伙,还不够奖金发的。
最后算下来,咱们净亏3.977亿,真的是裤衩子都输没了,要是王多鱼有我,还怕花不完10个亿。

最后

这个程序仅是个小模拟,各位大佬不要当真,真正的彩票系统要复杂得多,是我这条酸菜猿弄不出来的哈哈哈哈

------------------------------------------------------------------------------------------
更新,以下是完整的演示代码,包含了所有奖项:

# -*- utf-8 -*-
"""
彩票模拟示例
""" import random
import datetime starttime = datetime.datetime.now() # 记录开始时间 money = 2 # 一张彩票单价
money_list = [] # 彩票及奖金池
buy_list = [] # 购买的号码
lottery_list = [] # 中奖号码
time_1 = 1 # 模拟次数
lottery_dic = {
"一等奖": 0,
"二等奖": 0,
"三等奖": 0,
"四等奖": 0,
"五等奖": 0,
"六等奖": 0,
} # 中奖统计 while time_1 < 100000: # 购买的彩票池
list_1 = random.sample(range(1, 34), 6) # 生成6个红球
list_1.sort()
number_b = random.randint(1,16) # 生成1个蓝球
list_1.append(number_b)
buy_list.append(list_1)
time_1 += 1
# with open("彩票购买号码.txt","wt") as f:
# for i in buy_list:
# f.write(str(i)+"\n") # 模拟开奖
list_2 = random.sample(range(1,34),6)
list_2.sort()
number_bl = random.randint(1,16)
list_2.append(number_bl) # 生成中奖的号码 # 判断中了几等奖
for i in buy_list:
number_1 = 0
for j in i[0:6]:
if j in list_2[0:6]:
number_1 += 1
if i[-1] == list_2[-1]:
number_1 +=1 if number_1 == 7:
lottery_dic["一等奖"] += 1
# print(i)
elif number_1 == 6 and i[-1] != list_2[-1]:
lottery_dic["二等奖"] += 1
# print(i)
elif number_1 == 6 and i[-1] == list_2[-1]:
lottery_dic["三等奖"] += 1
elif number_1 == 5:
lottery_dic["四等奖"] += 1
elif number_1 == 4:
lottery_dic["五等奖"] += 1
elif i[-1] == list_2[-1]:
lottery_dic["六等奖"] += 1 # 打印中奖情况
print(
"""
一等奖:{}
二等奖:{}
三等奖:{}
四等奖:{}
五等奖:{}
六等奖:{}
""".format(lottery_dic["一等奖"],lottery_dic["二等奖"],lottery_dic["三等奖"],\
lottery_dic["四等奖"],lottery_dic["五等奖"],lottery_dic["六等奖"])
) # 查看中奖号码及是否有一等奖
if list_2 in buy_list:
print(list_2)
else:
print("没有一等奖")
print(list_2) # 计算售卖金额、奖金、累计余额池并打印
money_sole = time_1 * 2
money_give = lottery_dic["一等奖"]*5000000 + lottery_dic["二等奖"]*150000 + lottery_dic["三等奖"]*3000\
+ lottery_dic["四等奖"]*200 + lottery_dic["五等奖"]*10 + lottery_dic["六等奖"]*5
money_resi = money_sole - money_give money_list.append(money_sole)
money_list.append(money_give)
money_list.append(money_resi)
print(money_list) endtime = datetime.datetime.now() # 结束时间
print((endtime - starttime).seconds) # 打印所花时间

咱们设置卖了1千万张,看看运行结果:

可以看到,经过重新设置后,中奖率明显下降,但是依然开出了2注一等奖,直接1千万发出去了,但我还是赚了3百多万,是我模拟中最差的一次。

【python小示例】简易彩票中奖模拟的更多相关文章

  1. Python 小案例实战 —— 简易银行存取款查询系统

    Python 小案例实战 -- 简易银行存取款查询系统 涉及知识点 包的调用 字典.列表的混合运用 列表元素索引.追加 基本的循环与分支结构 源码 import sys import time ban ...

  2. 牛客小白月赛13 小A买彩票 (记忆化搜索)

    链接:https://ac.nowcoder.com/acm/contest/549/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...

  3. 小A买彩票-(组合数)

    链接:https://ac.nowcoder.com/acm/contest/549/C来源:牛客网 题目描述 小A最近开始沉迷买彩票,并且希望能够通过买彩票发家致富.已知购买一张彩票需要3元,而彩票 ...

  4. EX14 彩票中奖 (lottery.pas/c/cpp)

    [题目描述]小明想试试运气去购买彩票,所以他开始研究彩票大乐透的玩法:超级大乐透是指由购买者从01—35共35个号码中选取5个号码为前区号码,并从01—12共12个号码中选取2个号码为后区号码组合为一 ...

  5. python 小题

    python 小题:给定一个字符串,找出不含有重复字符的最长子串的长度.示例 1:输入: "abcabcbb"输出: 3 解释: 无重复字符的最长子串是 "abc&quo ...

  6. ReactNative新手学习之路06滚动更新ListView数据的小示例

    本节带领大家学习使用ListView 做一个常用的滚动更新数据示例: 知识点: initialListSize={200} 第一次加载多少数据行 onEndReached={this.onEndRea ...

  7. Python小工具--删除svn文件

    有的时候我们需要删除项目下的svn相关文件,但是SVN会在所有的目录下都创建隐藏文件.svn,手工一个个目录查找然后删除显然比较麻烦.所以这里提供了一个Python小工具用于批量删除svn的相关文件: ...

  8. MVC客户端验证的小示例

    MVC客户端验证的小示例 配置客户端验证的可用性: <configuration> <appSettings>  <add key="ClientValidat ...

  9. 【java】彩票中奖码生成器:java.util.Random里的方法public int nextInt(int bound)

    package 彩票中奖码生成器; import java.util.Random; public class TestRandom { public static void main(String[ ...

随机推荐

  1. bash copy multi files

    bash copy multi files # copy one file $ cp file1.js /var/www/html # copy multi files ??? no space $ ...

  2. Apple CSS Animation All In One

    Apple CSS Animation All In One Apple Watch CSS Animation https://codepen.io/xgqfrms/pen/LYZaNMb See ...

  3. SQL All In One

    SQL All In One Structured Query Language SQL is an ANSI (American National Standards Institute) stan ...

  4. Arctic Code Vault Contributor

    Arctic Code Vault Contributor GitHub Archive Program https://archiveprogram.github.com/ Preserving o ...

  5. js 实现简单的parseInt和parseFloat

    function myParseInt(str: string): number { let result = NaN; for (let i = 0; i < str.length; i++) ...

  6. 2. Vue语法--插值操作&动态绑定属性 详解

    目录 1. 设置vue模板 2. vue语法--插值操作 3. 动态绑定属性--v-bind 一. 设置vue模板 我们经常新建一个vue项目的时候, 会写如下的一段代码 <!DOCTYPE h ...

  7. python 第三方库paramiko

    目录 介绍 三种常用方式 使用密码进行登录 使用密钥免密码登录 SFTP 传输文件 terminal demo 介绍 paramiko是什么可以参考其他人的博客或文章,这里不再赘述,直入正题. 本次测 ...

  8. ajax缺点

    ajax请求在SEO中效率低,SEO就是关键字搜索的匹配度. 比如在百度搜索Java,一般来说内容中出现Java的次数越多排名越靠前,当使用ajax时,它的异步刷新导致必须是页面刷新出来才去刷新数据, ...

  9. 用Vue3构建企业级前端应用,TS能让你更轻松点

    摘要:Vue 3已经发布有一段时间了,到底有哪些新特性值得关注,如何用它构建企业级前端项目,怎样快速上手Vue 3?本篇文章将对此进行详细讲解. 前言 工欲善其事,必先利其器 --<论语> ...

  10. 基于μcOS-II实时操作系统源码实现RMS和EDF调度(共享资源)

    μcOS-II多任务实验报告(RMS.EDF调度) 目录 μcOS-II多任务实验报告(RMS.EDF调度) 一.实验概述 二.环境搭建 三.代码分析 四.实验步骤 1 给TCB块添加扩展 2 创建并 ...