进击的程序员——彩票狂想曲(1)

大家应该都幻想过一夜暴富,而买彩票应该是最直接的一种方式。最近,我的室友分享给我一个他的一个脑洞,用计算机计算彩票号码的方法。

用计算机生成100W注彩票号码,然后对这些注号码出现的次数进行统计,再进行一次排序,将出现次数最少的注中的号码作为种子号码,再基于一系列过滤和排列组合的方法,输出最终的预测号码。

作为一个正在向秃顶进化的程序员,我对这个预测方法的准确性还是有所怀疑的,无论从概率学、还是统计学,貌似都很难形成一个完整的推导逻辑。不过,这么一个大数据量的计算分析,作为程序员的我第一时间嗅到了猎物的味道。想要变秃变强,就得找硬骨头啃。

我们先将问题简化:

每一注彩票分两类,一类是从1-33中抽取6个不同的数字,一类是从1-16中抽取1个数字,将这7个数字作为一注。计算机生成100W注彩票号码,对这些注号码的出现次数(7个数字全相等)进行排序,将出现次数最少的输出。

今天我们先来看一下最简单直接的方法,暴力分析。

1. 创建一个列表,用来记录次数与一注彩票的对应关系

2. 100W注彩票,从第一注开始向后依次获取一注

3. 获取的一注如果不在列表中,则将这一注放到次数为1对应的位置;如果在列表中,则将这一注从次数为n对应的位置移动到次数为n+1对应的位置。

4. 从列表记录次数1开始向后遍历,找到第一注输出

有了思路,就开始干!

写完了代码,我们来测试一下,先用1000注测一下,耗时0.06s,还不错;再用10000注测一下,耗时7s,也还可以忍受吧;再用100000注测一下,我吃了个饭都没返回结果......这个运算效率,如果真分析100W注彩票,我觉得计算一次24小时都不一定够用.....

秉承着一定要变秃变强的理念,我终于找到了一个新的方法,下一期,我们将见证这个新的方法的实力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值