彩票旋转矩阵算法优化
首先申明,只是对算法感兴趣,对买彩票并不是很热衷,而且旋转矩阵只能做到让买彩票的人的损失稳定化,并不能提高你的中大奖几率。
最近做了一个双色球旋转矩阵的算法,基本原理是先列出所有符合预先设定条件的号码,比如中6保5,就从第一个号码开始,将所有该号码有5个相同红球的组合打上标记,继续查找下一个没有被打上任何的号码,重复以上操作,直到最后一个号码。实际使用后发现用该方法生成的旋转矩阵比彩票网站的缩水结果相比,最终的注数要多于网站上的注数,33选6中5最终缩水出来的注数是29000多注。分析了一下原因,这种设计方法没有优化,比较好的方法是不采用遍历,比如说第一个号码处理完成后,不能顺序查找第二个号码,而是要查找一个与第一个号码重复数字最少的号码来进行标记操作,然而后面这种算法的计算量要远远大于第一种算法,有没有人能设计一种效率比较高的算法加快运行的速度?
我的算法里一注彩票号码是使用一个64Bit的整数进行存储的,0~32Bit为红球,某一位为1表示有该红球,33~48Bit为蓝球,用这种方法存储既可以表示单注号码,也可以表示复式投注,同时可以快速对两个号码进行比较,两个号码按位与操作,得出来的结果里面有几位为1就表示有几个号码重合,一个号码左移一位后与自身进行与操作就可以快速判断是否有连续号等等。