python双色球模拟投注及开奖,可复式投注

最近刚学python,加上前阵子双色球小中4等奖,所以就尝试写了个双色球模拟中奖,可模拟复式投注及奖金计算。唯一的难点就是复式投注中奖时奖金的计算公式,想了很久才搞清楚。

双色球每年开155期,假设一个人每期买10注机选6+1,连续买70年,这个是模拟结果,运气不错竟然中了二等奖,在第34年中的~~
在这里插入图片描述

俗话说有些人十辈子都中不了一等奖,这是模拟买700年的,每期买5注复式7+3的结果,也还是只中了1注二等奖,在第327年中的。。。
在这里插入图片描述
在这里插入图片描述

源码如下:

在开头可修改购买参数,大家可以模拟下,看买多久可以中1等奖。单式是6红+1蓝,复式投注就改红球和蓝球的个数就行

# 数据初始化
num_of_buyTotal = 155*10  # 总共购买几期 每年开大约155期
num_of_buy = 10  # 每期购买几组机选
num_of_red = 7  # 红球投注个数(范围6-20)
num_of_blue = 3  # 蓝球投注个数(范围1-16)
prize1 = 5000000  # 一等奖奖金 一般都是浮动的,这里默认500W
prize2 = 200000  # 二等奖奖金 一般都是浮动的,这里默认20W
show_num = 0  # 是否显示机选号码及中奖号码: 1显示,0不显示  购买组数较多时,不建议显示
import math  # 导入math库,计算彩票组合时用到
import random  # 导入random库,生成随机数的时候要用到

# 数据初始化
num_of_buyTotal = 155*10  # 总共购买几期 每年开大约155期
num_of_buy = 10  # 每期购买几组机选
num_of_red = 7  # 红球投注个数(范围6-20)
num_of_blue = 3  # 蓝球投注个数(范围1-16)
prize1 = 5000000  # 一等奖奖金 一般都是浮动的,这里默认500W
prize2 = 200000  # 二等奖奖金 一般都是浮动的,这里默认20W
show_num = 0  # 是否显示机选号码及中奖号码: 1显示,0不显示  购买组数较多时,不建议显示


# 组合计算 n中选取m个
def comb(n, m):
    if n == 0 or n < m:
        return 0
    else:
        return math.factorial(n) // (math.factorial(n - m) * math.factorial(m))


# 计算总投注金额(期数*每期购买组数*每组注数*2)
money_buy = num_of_buyTotal * num_of_buy * comb(num_of_red, 6) * num_of_blue * 2


# 获取机选号码  1.选几个号码;2.颜色:1红2蓝
def get_random(num_of_selected, color):
    num_selected = []
    if color == 1:  # 红球蓝球选取范围不同
        pick_scope = list(range(1, 34))
    else:
        pick_scope = list(range(1, 17))

    for i in range(0, num_of_selected):
        random.shuffle(pick_scope)
        ball_picked = pick_scope.pop()
        num_selected.append(ball_picked)
    num_selected.sort()
    return num_selected


# 获取对应红球中奖个数及蓝球中奖个数对应的总奖金(红球中奖个数,蓝球中奖个数)
def get_prize(red_win, blue_win):
    n_blue = num_of_blue
    if blue_win == 1:
        n_blue = num_of_blue 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值