- 主题:请教优化代码
首先可以排除123456或者282930313233这种连号
然后按已出奖分布区间设定规则
估计最后也就100000组
【 在 Eggcai 的大作中提到: 】
: 20年前用的是C++,现在学习python,写一个程序,算双色球中奖的。列举所有C(6,33)*16=17721088种可能的号码,从有据可查到现在的1500多期开奖,每个号码能够中多少个一等奖,多少个二等奖到六等奖。
: 程序写出来了,但是运行时间不能接受,求优化代码
: #双色球所有号码历次中奖查询代码
: ...................
--
FROM 120.253.221.91
提供一个思路:
采用位操作
ssq.txt文件预处理下,转化下格式
红球数据转成33位二进制0/1,蓝球可以不转,逗号隔开
比较红球采用与操作 结果有几个1就是多少位相同
【 在 Eggcai 的大作中提到: 】
: 20年前用的是C++,现在学习python,写一个程序,算双色球中奖的。列举所有C(6,33)*16=17721088种可能的号码,从有据可查到现在的1500多期开奖,每个号码能够中多少个一等奖,多少个二等奖到六等奖。
: 程序写出来了,但是运行时间不能接受,求优化代码
: #双色球所有号码历次中奖查询代码
: ...................
--
修改:dgiij FROM 220.249.118.*
FROM 220.249.118.*
随便一搜就有4个相连数字的了,不能想当然排除的,而且1700多万排除到10万,@@
【 在 xlr104 的大作中提到: 】
: 首先可以排除123456或者282930313233这种连号
: 然后按已出奖分布区间设定规则
: 估计最后也就100000组
: ...................
--
FROM 220.173.125.*
我的印象中,数字不太大的情况下,python中的整数乘法是快于位运算的,虽然这是比较,但是估计位运算的优势也不大
【 在 dgiij 的大作中提到: 】
: 提供一个思路:
: 采用位操作
: ssq.txt文件预处理下,转化下格式
: ...................
--
FROM 220.173.125.*
不能吧,最多3连
【 在 Eggcai 的大作中提到: 】
: 随便一搜就有4个相连数字的了,不能想当然排除的,而且1700多万排除到10万,@@
--
FROM 117.136.119.21
我前面贴了ssq.txt,随便搜索一下01020304和30313233都有
【 在 xlr104 的大作中提到: 】
: 不能吧,最多3连
--
FROM 220.173.125.*
开奖才1500多期,直接每期计算哪些号能中奖,累计一下,很快啊
【 在 Eggcai 的大作中提到: 】
: 20年前用的是C++,现在学习python,写一个程序,算双色球中奖的。列举所有C(6,33)*16=17721088种可能的号码,从有据可查到现在的1500多期开奖,每个号码能够中多少个一等奖,多少个二等奖到六等奖。
: 程序写出来了,但是运行时间不能接受,求优化代码
: #双色球所有号码历次中奖查询代码
: ...................
--
FROM 111.202.234.*
一个循环不就解决了。所有的中奖数据循环一次就够了
【 在 Eggcai 的大作中提到: 】
: 20年前用的是C++,现在学习python,写一个程序,算双色球中奖的。列举所有C(6,33)*16=17721088种 ...
--
FROM 124.126.139.*
我也这么想,用已知结果反推,比遍历快多了
【 在 fhd 的大作中提到: 】
: 开奖才1500多期,直接每期计算哪些号能中奖,累计一下,很快啊
--
FROM 103.107.217.225
哈哈哈
【 在 fhd (疯了!) 的大作中提到: 】
: 发信人: fhd (疯了!), 信区: Python
: 标 题: Re: 请教优化代码
: 发信站: 水木社区 (Fri Apr 14 14:24:32 2023), 转信
:
--
FROM 222.131.30.*