用python实现,随机生成N组彩票号码,并对出现概率排序后,取出现概率最低数,组成新彩票号码

以双色球为例,代码如下:

import random
import time

# 获取开始时间
start_time = time.time()


# 以双色球为例,生成单注彩票号码
def generate_lottery():
    lottery = []
    for i in range(6):
        num = random.randint(1, 33)
        while num in lottery:
            num = random.randint(1, 33)
        lottery.append(num)
    lottery.sort()
    lottery.append(random.randint(1, 16))
    return lottery


# 生成N次彩票号码
lotteries = []
lottery_times = 5000
print("执行随机次数是:%d" % lottery_times)
for i in range(lottery_times):
    lotteries.append(generate_lottery())


# 统计数字出现次数,红球、蓝球分开统计
count_red = {}
count_blue = {}
for lottery in lotteries:
    for num in lottery[:-1]:
        if num in count_red:
            count_red[num] += 1
        else:
            count_red[num] = 1
    if lottery[-1] in count_blue:
        count_blue[lottery[-1]] += 1
    else:
        count_blue[lottery[-1]] = 1

# 按数字出现次数进行排序,倒序
sorted_dict_red = sorted(count_red.items(), key=lambda x: x[1], reverse=False)
sorted_dict_blue = sorted(count_blue.items(), key=lambda x: x[1], reverse=False)
lowest_count_red = [x[0] for x in sorted_dict_red[:6]]
lowest_count_blue = [x[0] for x in sorted_dict_blue[:1]]

print("统计%s组随机彩票结果,出现概率最低的彩票组合为:" % lottery_times)
final_count = sorted(lowest_count_red) + lowest_count_blue
print(final_count)

# 获取结束时间
end_time = time.time()
elapsed_time = end_time - start_time
print("统计%s组随机彩票结果,生成低概率彩票共耗时:%s秒" % (lottery_times, elapsed_time))

运行结果如下:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值