小白量化彩票实战彩票号码中六保五缩水和旋转矩阵

Posted 荷蒲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白量化彩票实战彩票号码中六保五缩水和旋转矩阵相关的知识,希望对你有一定的参考价值。

小白量化彩票实战(6)彩票号码中六保五缩水和旋转矩阵
我写彩票的博客,不是鼓励大家去买彩票,读者要以学习编程娱乐的思想来看待。兴趣是学习最大的动力!

我编写彩票软件都有近十多年时间,一直没搞懂彩票号码中六保五缩水和旋转矩阵的原理,我以前使用别人做好的现成缩水公式实现的。
例如选10个号六保五缩水,我使用了别人做好的公式保存为“c10x6d0z6b5.txt”文件。这个意思是选10号,0胆号,中6要保5。全部组合要210注,使用中6要保5只需要18组号码。

 1 2 3 4 5 6
 1 2 3 4 7 8
 1 2 3 4 910
 1 2 3 5 7 9
 1 2 3 5 810
 1 2 3 6 710
 1 2 3 6 8 9
 1 2 4 5 710
 1 2 4 5 8 9
 1 2 4 6 7 9
 1 2 4 6 810
 1 2 5 6 7 8
 1 2 5 6 910
 1 2 7 8 910
 3 4 5 6 7 8
 3 4 5 6 910
 3 4 7 8 910
 5 6 7 8 910

我们读入这个缩水公式,把这个连续号码看作数组或列表下标。这样可以替换为任意10个号码。
这就是很多彩票软件常用的方式,有些彩票软件文件目录中能找到类似的缩水公式。有些彩票书上也印刷出了这些缩水公式给彩民。

小白量化提供了组合号码和缩水公式,我们看看程序和运行结果。

import time
import HP_cp as hcp   #小白量化彩票模块

## 双色球,选M个号码
M=10

##生成 全部组合
print('开始生成全部号码.')
t=time.time()
hm=hcp.SSQ(M)
t=time.time()-t
print(M,'个号码生成结束,生成%d注,耗时 %f 秒。'%(len(hm),t))

##中65缩水
t=time.time()
hm2=hcp.bao(hm,b=5)
t=time.time()-t
print(M,'个号码缩水结束,生成%d注,耗时 %f 秒。'%(len(hm2),t))
print(hm2)

程序运行结果:

开始生成全部号码.
10 个号码生成结束,生成210注,耗时 0.000000 秒。
10 个号码缩水结束,生成18注,耗时 0.000000 秒。
[[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 7, 8], [1, 2, 3, 4, 9, 10], [1, 2, 3, 5, 7, 9], [1, 2, 3, 5, 8, 10], [1, 2, 3, 6, 7, 10], [1, 2, 3, 6, 8, 9], [1, 2, 4, 5, 7, 10], [1, 2, 4, 5, 8, 9], [1, 2, 4, 6, 7, 9], [1, 2, 4, 6, 8, 10], [1, 2, 5, 6, 7, 8], [1, 2, 5, 6, 9, 10], [1, 2, 7, 8, 9, 10], [3, 4, 5, 6, 7, 8], [3, 4, 5, 6, 9, 10], [3, 4, 7, 8, 9, 10], [5, 6, 7, 8, 9, 10]]

结果与上面的缩水公式差不多。
我们把程序中M值换为12。

M=12

运行结果:

开始生成全部号码.
12 个号码生成结束,生成924注,耗时 0.001000 秒。
12 个号码缩水结束,生成68注,耗时 0.006000 秒。

我们看到程序缩水后需要68注。还能注数再少点吗?
当然可以。中6要保5最小投注数如下:

7个号 ,18个号 , 49 个号 ,810个号 ,1811个号 , 3012个号 , 5913个号 , 10414个号 , 17415 个号 ,27416 个号 ,42417个号 , 58818个号 , 74819个号 , 98820个号 , 1321

如何再减少投注号码,我做了下面程序测试。

import time
import HP_cp as hcp   #小白量化彩票模块
import random

## 双色球,选M个号码
M=12

##生成 全部组合
print('开始生成全部号码.')
t=time.time()
hm=hcp.SSQ(M)
t=time.time()-t
print(M,'个号码生成结束,生成%d注,耗时 %f 秒。'%(len(hm),t))

##中65缩水
cs=[]
for i in range(50):
    hm2=hm.copy()
    random.shuffle(hm2)   #打乱顺序
    hm3=hcp.bao(hm2,b=5)  ##中65缩水
    cs.append(len(hm3))
    print(len(hm3),end=',')
    
print('\\n最少次数:',min(cs))

运行了3次,结果都不相同。

开始生成全部号码.
12 个号码生成结束,生成924注,耗时 0.001000 秒。
72,69,70,66,74,65,68,65,67,70,74,66,71,72,70,71,67,69,64,66,67,69,68,69,65,67,69,65,69,73,73,68,69,70,70,69,65,67,69,70,69,68,69,70,66,72,67,67,68,66,
最少次数: 64

开始生成全部号码.
12 个号码生成结束,生成924注,耗时 0.000000 秒。
67,72,69,68,67,69,66,66,69,65,67,66,67,69,72,65,68,67,62,64,71,67,67,69,67,68,68,69,70,67,67,69,70,68,67,70,67,72,65,67,66,67,67,69,71,68,69,69,68,72,
最少次数: 62

开始生成全部号码.
12 个号码生成结束,生成924注,耗时 0.001000 秒。
70,68,67,63,65,66,69,65,65,69,67,66,67,64,68,69,71,67,64,66,70,65,65,68,72,66,68,70,64,71,72,68,66,67,68,70,68,67,67,67,68,68,68,66,60,70,66,70,73,68,
最少次数: 60

这说明,能否投注最小与号码位置有关。因此需要用号码旋转方式,改变号码组合顺序。

import time
import HP_cp as hcp   #小白量化彩票模块

## 双色球,选M个号码
M=12

##生成 全部组合
print('开始生成全部号码.')
t=time.time()
hm=hcp.SSQ(M)  #生成双色球号码全部组合。
t=time.time()-t
print(M,'个号码生成结束,生成%d注,耗时 %f 秒。'%(len(hm),t))

##中65缩水
cs=[]
for i in range(len(hm)):
    hm2=hm.copy()
    hm2=hcp.revolve(hm2,n=i) #号码旋转
    hm3=hcp.bao(hm2,b=5)  ##中65缩水
    cs.append(len(hm3))
    print(len(hm3),end=',')
    
print('\\n最少次数:',min(cs))
print('旋转次数:',cs.index(min(cs)))

程序运行结果:

开始生成全部号码.
12 个号码生成结束,生成924注,耗时 0.001000 秒。
68,68,84,76,86,77,86,83,84,80,86,81,83,81,82,87,84,...,65,65,65,65,63,63,68,
最少次数: 59
旋转次数: 309

我经过测试研究,已经把研究结果都封装到小白量化金融模块的HP_cp.py文件中了,你们有兴趣可买我写的书,在读者群下载这个模块研究。
如果要输出中6保5缩水公式,可以用如下代码实现:

#购买<零基础搭建量化投资系统>正版书,送小白量化软件源代码。
# https://item.jd.com/61567375505.html
#独狼荷蒲qq:2775205
#小白量化彩票软件开发群:712300766
#小白量化PythonTkinter软件开发群:524949939
#电话微信:18578755056
#微信公众号:独狼股票分析

import time
import HP_cp as hcp   #小白量化彩票模块

## 双色球,选M个号码
M=12

##生成 全部组合
print('开始生成全部号码.')
t=time.time()
hm=hcp.SSQ(M)
t=time.time()-t
print(M,'个号码生成结束,生成%d注,耗时 %f 秒。'%(len(hm),t))

#获取旋转密码
xzcs=hcp.cipher[M]

hm2=hcp.revolve(hm,n=xzcs) #号码旋转
hm3=hcp.bao(hm2,b=5)  ##中65缩水
print(M,'个号码缩水结束,生成%d注。'%len(hm3))
print(hm3)

程序运行结果:

开始生成全部号码.
12 个号码生成结束,生成924注,耗时 0.000000 秒。
12 个号码缩水结束,生成59注。
[[1, 3, 6, 7, 10, 12], [1, 3, 6, 8, 9, 10], [1, 3, 6, 8, 11, 12], [1, 3, 7, 8, 9, 11], [1, 3, 9, 10, 11, 12], [1, 4, 5, 6, 7, 8], [1, 4, 5, 6, 9, 10], [1, 4, 5, 6, 11, 12], [1, 4, 5, 7, 9, 11], [1, 4, 5, 7, 10, 12], [1, 4, 5, 8, 9, 12], 

上面这个输出可以当旋转公式,要生成用户投注号,需要按下标替换号码。假定用户选择[5,7,8,12,16,20,22,28,31]这9个号码,可以用下列程序进行组号。

#购买<零基础搭建量化投资系统>正版书,送小白量化软件源代码。
# https://item.jd.com/61567375505.html
#独狼荷蒲qq:2775205
#小白量化彩票软件开发群:712300766
#小白量化PythonTkinter软件开发群:524949939
#电话微信:18578755056
#微信公众号:独狼股票分析

import time
import HP_cp as hcp   #小白量化彩票模块

##用户号码
yhhm=[5,7,8,12,16,20,22,28,31]

## 双色球,选M个号码
M=len(yhhm)

##生成 全部组合
print('开始生成全部号码.')
t=time.time()
hm=hcp.SSQ(M)
t=time.time()-t
print(M,'个号码生成结束,生成%d注,耗时 %f 秒。'%(len(hm),t))

#获取旋转密码
xzcs=hcp.cipher[M]
hm2=hcp.revolve(hm,n=xzcs) #号码旋转
hm3=hcp.bao(hm2,b=5)  ##中65缩水
print(M,'个号码缩水结束,生成%d注。'%len(hm3))
hm4=[]
for h in hm3:
    hm5=[]
    for h2 in h:
        hm5.append(yhhm[h2-1])
    hm4.append(hm5)
    print(hm5)

程序运性结果:

开始生成全部号码.
9 个号码生成结束,生成84注,耗时 0.000000 秒。
9 个号码缩水结束,生成8注。
[5, 7, 8, 12, 16, 20]
[5, 7, 8, 12, 22, 28]
[5, 7, 8, 16, 22, 31]
[5, 7, 8, 20, 28, 31]
[5, 7, 12, 16, 28, 31]
[5, 7, 12, 20, 22, 31]
[5, 7, 16, 20, 22, 28]
[8, 12, 16, 20, 22, 28]

上面介绍了中6保5缩水,其他缩水中6保4,胆1中6保4等等,都可以用上面程序进行修改实现。

购买《零基础搭建量化投资系统――以Python为工具》(https://item.jd.com/61567375505.html)一书,就能得到小白量化第二代全部源代码。其中包括完整的HP_cp模块。

#独狼荷蒲qq:2775205 /2886002
#小白量化彩票软件开发群:712300766
#小白量化PythonTkinter软件开发群:524949939
#电话微信:18578755056
#微信公众号:独狼股票分析

请点赞本文,你的鼓励是我写作的动力!
请持续关注我的博客,我的进步,就是你的进步!

以上是关于小白量化彩票实战彩票号码中六保五缩水和旋转矩阵的主要内容,如果未能解决你的问题,请参考以下文章

小白量化彩票实战彩票特征号码重号邻号连号和表格展示

小白量化彩票实战用sklearn神经网络预测彩票号码和特征

旋转矩阵

双色球中5个红号的几率是多少?

java的彩票

彩票双色球中奖的几率是多少?谁算过?