小白量化彩票实战(5)彩票号码快速生成组合及利用数据库生成彩票号码组合
我写彩票的博客,不是鼓励大家去买彩票,读者要以学习编程娱乐的思想来看待。兴趣是学习最大的动力!
我们继续以双色球6+1为例,介绍33选6的生成全部号码组合。
组合就是每注号码,只能出现33号的一个,不能重复。我们可以用多重循环来生成号码。

import pandas as pd
import numpy  as np
import timeprint('开始生成全部号码.')
t=time.time()#双色球33选6全部红号组合
m=33
hm=[]
for a  in range(1, m-4):for b  in range(a+1, m+1):for c  in range(b+1, m+1):for d  in range(c+1, m+1):for e  in range(d+1, m+1):for f  in range(e+1, m+1):hm.append([a,b,c,d,e,f])
t=time.time()-t
print('号码生成结束,生成%d注,耗时 %f 秒。'%(len(hm),t))print(hm[-20:])  #输出最后20注号码

程序运行结果:

开始生成全部号码.
号码生成结束,生成1107568注,耗时 1.185000 秒。
[[26, 27, 28, 30, 32, 33], [26, 27, 28, 31, 32, 33], [26, 27, 29, 30, 31, 32], [26, 27, 29, 30, 31, 33], [26, 27, 29, 30, 32, 33], [26, 27, 29, 31, 32, 33], [26, 27, 30, 31, 32, 33], [26, 28, 29, 30, 31, 32], [26, 28, 29, 30, 31, 33], [26, 28, 29, 30, 32, 33], [26, 28, 29, 31, 32, 33], [26, 28, 30, 31, 32, 33], [26, 29, 30, 31, 32, 33], [27, 28, 29, 30, 31, 32], [27, 28, 29, 30, 31, 33], [27, 28, 29, 30, 32, 33], [27, 28, 29, 31, 32, 33], [27, 28, 30, 31, 32, 33], [27, 29, 30, 31, 32, 33], [28, 29, 30, 31, 32, 33]]

根据上面代码,我们不难生成其他组合,例如大乐透红区35选5等。
排列型彩票全排列如何生成呢?我们以双色球3D为例,可以用下面代码快速生成。

t=time.time()
m=3
hm=[]
for i  in range(10**m):hm.append(str(i).zfill(3))  #转换为字符串,前面补0
t=time.time()-t
print('号码生成结束,生成%d注,耗时 %f 秒。'%(len(hm),t))
print('输出前10注号码',hm[:10])  #输出前10注号码
print('输出后10注号码',hm[-10:])  #输出后10注号码

程序输出结果:

开始生成全部号码.
号码生成结束,生成1000注,耗时 0.000000 秒。
输出前10注号码 ['000', '001', '002', '003', '004', '005', '006', '007', '008', '009']
输出后10注号码 ['990', '991', '992', '993', '994', '995', '996', '997', '998', '999']

有了这些全组合或全排列,我们可以利用前面介绍的特征分析及自编仿通达信公式对生成全部组合或全部排列的号篮中数据进行选出提取号码或过滤删除掉不满足特征要求的号码。

我在利用Visual FoxPro 9.0(简称VFP)开发彩票软件时,由于这个软件的限制,不能生成太大的数组,因此数据太多要以DBF格式文件来处理,文件处理读写速度很慢,因此用循环生成双色球的110万组合,需要30分钟以上。为提高速度,我采用VFP9的SQL-T命令,利用cursor来,快速生成双色球110万全部组合号码。VFP9程序如下:

** 独狼荷蒲qq:2886002 / 2886002
** 百度独狼VFP
** 这段程序能够在Visual FoxPro 9.0(简称VFP)上cursor快速生成数百万条彩票组合号
** 下面是VFP群号
** VFP应用程序算法 12787940
** 振兴VFP(老车).Ⅰ. 691863737
** 振兴VFP(老车).Ⅱ. 914539613
** 振兴VFP(老车).Ⅲ. 1033136324
** VFP软件开发学习  328329074
** 我的FLL  312802882
** Visual FoxPro(VFP) 初级群 248423** 独狼荷蒲qq:2886002 / 2886002
** 小白量化彩票软件开发群:712300766
** 小白量化PythonTkinter软件开发群:524949939
** 小白量化MT5群:556894446
** tkinter,pyqt,gui,Python交流2群:517029284
** 手机微信: 18578755056** 双色球33选6,大乐透红区35选5,蓝区12选2
**球号q=33
q=33
**选择xj个号
xj=6
lsql="select * from "
create cursor tmp (id N(2))
for i=1 to q
insert into tmp (id) value (i)
ENDFOR
FOR j=1to xj
IF j<xj
lsql=lsql+"tmp t"+ALLTRIM(STR(j))+","
ELSE
lsql=lsql+"tmp t"+ALLTRIM(STR(j))+" "
endif
ENDFOR
lsql=lsql+"where "
FOR k=1 TO xj-1
IF k<xj-1
lsql=lsql+"t"+ALLTRIM(STR(k))+'.id<'+"t"+ALLTRIM(STR(k+1))+'.id '+"and "
else
lsql=lsql+"t"+ALLTRIM(STR(k))+'.id<'+"t"+ALLTRIM(STR(k+1))+'.id'
endif
ENDFOR
lsql=lsql+" into cursor lszhb"
&lsql
use
RETURN

VFP9在我的电脑运行0.34秒,生成110万组双色球数据。速度提高了很多。我现在根据这段程序算法,移植到了Python中,读者可以了解Python中如何用数据库来生成全部组合号码。
我们以SQLite为列,这段程序展示了数据库的写入和读取操作,其他数据库也是类似。程序代码如下:

#购买<零基础搭建量化投资系统>正版书,送小白量化软件源代码。
# https://item.jd.com/61567375505.html
#独狼荷蒲qq:2775205
#小白量化彩票软件开发群:712300766
#小白量化PythonTkinter软件开发群:524949939
#电话微信:18578755056
#微信公众号:独狼股票分析
import math
import datetime as dt
import pandas as pd
import numpy  as np
import matplotlib.pyplot as plt
from sqlalchemy import create_engine
import time# 初始化数据库连接:
engine= create_engine('sqlite:///ssq.db')#连接数据#sqlalchemy 数据库操作演示
conn = engine.connect()sql2='drop table IF EXISTS tmp'
conn.execute(sql2)#执行 sql 语句据sql2='drop table IF EXISTS cp2'
conn.execute(sql2)#执行 sql 语句据sql2='CREATE TABLE tmp (id int)'
conn.execute(sql2) #执行 sql 语句for i in range(1,33+1):sql='insert into tmp (id) values (%d)'%ia=conn.execute(sql) #执行 sql 语句for i in range(6):sql2='drop table IF EXISTS t%d'%(i+1)conn.execute(sql2)#执行 sql 语句据sql="CREATE TABLE t%d AS select * from tmp"%(i+1)a=conn.execute(sql) #执行 sql 语句sql="CREATE TABLE cp2 AS select "
sql2=" from "
sql3="  where "xj=6
for i in range(1,xj+1):if i<(xj):sql=sql+" t%d.id t%d"%(i,i)+" ,"sql2=sql2+'t%d'%i+" ,"sql3=sql3+"t%d.id<t%d.id"%(i,i+1)+' and 'else:sql=sql+" t%d.id t%d"%(i,i)sql2=sql2+'t%d'%isql3=sql3+"t%d.id>0"%isql=sql+sql2+sql3print('开始生成全部号码.')
t=time.time()
a=conn.execute(sql) #执行 sql 语句
t=time.time()-t
print('号码生成结束,耗时 %f 秒。'%t)df3=pd.read_sql('cp2',engine) #读取数据库,保存到 df3 中.
print(df3)

程序运行结果:

开始生成全部号码.
号码生成结束,耗时 2.019000 秒。t1  t2  t3  t4  t5  t6
0         1   2   3   4   5   6
1         1   2   3   4   5   7
2         1   2   3   4   6   7
3         1   2   3   5   6   7
4         1   2   4   5   6   7..  ..  ..  ..  ..  ..
1107563  27  28  29  30  32  33
1107564  27  28  29  31  32  33
1107565  27  28  30  31  32  33
1107566  27  29  30  31  32  33
1107567  28  29  30  31  32  33[1107568 rows x 6 columns]

菜(全部号码组合)有了,调料(号码特征分析技术)有了,剩下就等你自己做菜(开发出彩票软件)了。

我计划下一篇介绍号码缩水原理。
假如我选择了7个号码:1、2、3、4、5、6、7,其中1、2、3、4、5、7是中奖号。
如果这7号包含6个奖号,我们想中大奖,即6个奖号在一起,必须全部组合都要买。
[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5, 7],
[1, 2, 3, 4, 6, 7],
[1, 2, 3, 5, 6, 7],
[1, 2, 4, 5, 6, 7],
[1, 3, 4, 5, 6, 7],
[2, 3, 4, 5, 6, 7]
要买上面7注号码。
能选中6个号码,是运气问题,如果我们放弃6个号码在一组情况(不要大奖),要保证5个号码在一起的情况(只要中奖),我们需要买几注?我们需要买上面任意一注都符合要求,这就是“中六保五”策略。
因此7个号码在“中六保五”策略下只需买一注。
你可能说你傻啊,哪有7个号码会出1、2、3、4、5、6、7。其实我们可以把这个连续号码看作数组下标。这样可以替换为任意7个号码。
采用“中六保五”策略,7个号码只需要买一注,那么我们原先要买7注,现在只需要买1注就可以了,剩下6组我们是不是能再选7个号码组合,来采用“中六保五”策略。总体上讲,是不是提高了中奖概率。
如果我们选择[1, 2, 3, 5, 6, 7]号码这一注刚好是大奖号,你走了狗屎运。因此采用“中六保五”策略,仍有中大奖的机会。
假定我们选择11个号码,全组合有462注,采用采用“中六保五”策略只须34 注,采用“中六保四”策略买的注数更少。
如果你认为某些号码“肯定”会出现,你可以采取胆托方式组号,托号部分也可以采用中M保N方式缩水。

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

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

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

小白量化彩票实战(5)彩票号码快速生成组合及利用数据库生成彩票号码组合相关推荐

  1. .NET Core实战项目之CMS 第十一章 开发篇-数据库生成及实体代码生成器开发

    上篇给大家从零开始搭建了一个我们的ASP.NET Core CMS系统的开发框架,具体为什么那样设计我也已经在第十篇文章中进行了说明.不过文章发布后很多人都说了这样的分层不是很合理,什么数据库实体应该 ...

  2. 小白量化彩票实战(4)彩票特征号码重号、邻号、连号和表格展示

    小白量化彩票实战(4)彩票特征号码重号.邻号.连号和表格展示 我写彩票的博客,不是鼓励大家去买彩票,读者要以学习编程和娱乐的思想来看待.兴趣是学习最大的动力! 彩票的号码特征很多,我们本篇介绍几个简单 ...

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

    小白量化彩票实战(6)彩票号码中六保五缩水和旋转矩阵 我写彩票的博客,不是鼓励大家去买彩票,读者要以学习编程和娱乐的思想来看待.兴趣是学习最大的动力! 我编写彩票软件都有近十多年时间,一直没搞懂彩票号 ...

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

    小白量化彩票实战(7)用sklearn神经网络预测彩票号码和特征 我写彩票的博客,不是鼓励大家去买彩票,读者要以学习编程和娱乐的思想来看待.兴趣是学习最大的动力! 神经网络是目前比较热门的技术,人工神 ...

  5. 小白量化彩票实战(3)彩票出现次数统计和热温号比分析及图形和表格展示

    小白量化彩票实战(3)彩票出现次数统计和热温号比分析及图形和表格展示 我写彩票的博客,不是鼓励大家去买彩票,读者要以学习编程和娱乐的思想来看待.兴趣是学习最大的动力! 上一篇我们介绍彩票奖号特征值及仿 ...

  6. 小白量化彩票实战(2)奖号特征值与编码器应用

    小白量化彩票实战(2)奖号特征值与编码器应用 我写彩票的博客,不是鼓励大家去买彩票,读者要以学习编程和娱乐的思想来看待. 索普玩的21点,只有1,2副牌,牌发完再重新洗牌,所以通过记牌,计牌估算概率, ...

  7. 自己做量化交易软件(33)小白量化实战7--投资理念与通达信公式回测(1)

    自己做量化交易软件(33)小白量化实战7–投资理念与通达信公式回测(1) 什么是投资理念?我们先给大家讲个小故事. 从前,有个郑国人,打算到集市上买双鞋穿.他先把自己脚的长短量了一下,做了一个尺子.可 ...

  8. 自己做量化交易软件(44)小白量化实战17--利用小白量化金融模块在迅投QMT极速策略交易系统上仿大智慧指标回测及实战交易设计

    自己做量化交易软件(44)小白量化实战17–利用小白量化金融模块在迅投QMT极速策略交易系统上仿大智慧指标回测及实战交易设计 小白量化平台是由若干小白金融模块构成.其中包含行情接收模块,仿通达信大智慧 ...

  9. 自己做量化交易软件(31)小白量化实战5--板块股票池与基本面选股

    自己做量化交易软件(31)小白量化实战5–板块股票池与基本面选股 在小白量化软件中,股票池与板块是一样的,都是股票代码列表.前面博客有零散知识的介绍. 小白量化学习(4)基本面选股与股票池 https ...

  10. 自己做量化交易软件(43)小白量化实战16--利用小白量化金融模块在恒生PTrade交易系统(交易端)上仿大智慧指标回测及实战交易设计

    自己做量化交易软件(43)小白量化实战16–利用小白量化金融模块在恒生PTrade交易系统(交易端)上仿大智慧指标回测及实战交易设计 量化产品PTrade(Personalise Trade)交易系统 ...

最新文章

  1. sql help cs
  2. SSM中配置log4J输出sql语句
  3. javascript boolean/布尔表达式
  4. CCNP-第十四篇-BGP综合实验
  5. mui案例:导航栏 颜色渐变
  6. 实战:基于自定义注解实现自定义框架Spring
  7. 蓝桥杯 ALGO-114 算法训练 黑白无常
  8. 亲密关系--【承担情绪】-如何让对方的情绪软着陆
  9. spring boot系列(三)spring boot 配置spring data jpa
  10. 最新| ClickHouse入门、调优、实战一条龙全解秘籍
  11. 硬盘测试软件看接口,检测硬盘的工具使用方法
  12. java layoutinflater_安卓 LayoutInflater详解
  13. matlab 马氏距离 实例,MATLAB求马氏距离(Mahalanobis distance)
  14. 【单细胞测序】一、单细胞测序技术总结
  15. 金三银四跳槽季,教你这几招提高面试成功率
  16. 软件工程第三次作业——用户体验分析:以“南通大学教务学生管理系统”为例...
  17. Java学习笔记之接口
  18. java utc时间_Java获得UTC时间
  19. 不二少年在路上之兄弟连完美落地
  20. ubuntu下安装配置nginx,搭配web服务器,将8000端口转发到80端口

热门文章

  1. walking机器人仿真教程-激光导航-TEB算法导航
  2. 利用浏览器书签执行脚本辅助
  3. 巧用 Cowrie 部署 SSH 蜜罐,让黑客攻击无处遁形!
  4. go语言复数包_复数 | Go语言圣经
  5. word中插入上下左右箭头
  6. 七周成为数据分析师 第一周:数据分析思维
  7. 最科学 最舒服 【色彩搭配】 平面设计师必备
  8. 任正非写给员工的信 - 要快乐地度过充满困难的一生
  9. html英雄联盟网页,Html+Css+JQuery实现简易英雄联盟官网
  10. 登陆服务器显示guest,登录界面如何隐藏guest账号