大家应该都幻想过一夜暴富,而买彩票应该是最直接的一种方式。最近,我的室友分享给我一个他的一个脑洞,用计算机计算彩票号码的方法。
用计算机生成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小时都不一定够用.....
秉承着一定要变秃变强的理念,我终于找到了一个新的方法,下一期,我们将见证这个新的方法的实力。