使用sql语句分析双色球(85天)
这个题目看似有点无厘头,老写技术博客,也来干点“正事",用sql语句分析一下近十年来的双色球情况,不过我肯定算不出来开奖结果,纯属个人娱乐,
个人觉得概率让一切皆有可能,但是用sql语句测试,有些结果还是和大家的想象有很大的出入。
首先通过博彩网站找到数据来源,可以下载成excel文档之类的,对格式做一个简单的排版。
然后对这些结果拼凑sql语句,类似如下的方式。
insert into test_data values(2014051 , 10,16,19,21,23,24,13 );
insert into test_data values(2014050 , 03,17,23,25,26,32,13 );
insert into test_data values(2014049 , 06,07,16,17,23,32,06 );
在数据库中建立一个表test_data,语句如下:
create table test_data(red1 number(2),red2 number(2),red3 number(2),red4 number(2),red5 number(2),red6 number(2),blue number(2));
然后就可以跑这个脚本了,把数据插入进去。
SQL> select count(*)from test_data;
COUNT(*)
----------
1651
这些年来,从2003年起到目前为止一共有1600多期。
来看看下面的结果吧
1.开奖结果(红球+蓝球)有重复,隐隐觉得应该还是会有重复的结果。
SQL> select count(*),red1,red2,red3,red4,red5,red6,blue from test_data group by red1,red2,red3,red4,red5,red6,blue having count(*)>1;
no rows selected
2.可能有些苛刻,那么红球相等的几率有多大呢。
SQL> select count(*),red1,red2,red3,red4,red5,red6 from test_data group by red1,red2,red3,red4,red5,red6 having count(*)>1;
no rows selected
3. 6个红球,连续的情况有吗?
SQL> select *from test_data where red1+red2+red3+red4+red5+red6=(red1+red6)*red5/2
2 /
no rows selected
4. 6个连续的没有,5个的有吗?
SQL> select *from test_data where red2+red3+red4+red5+red6=(red2+red6)*red5/2
2 /
no rows selected
SQL> select *from test_data where red1+red2+red3+red4+red5=(red1+red5)*red4/2
2 /
no rows selected
5. 连续4个的呢。看来还是有的,不过是很小的概率了。
red1+red2+red3+red4=(red1+red4)*red3/2
or
red2+red3+red4+red5=(red2+red5)*red4/2
or
red3+red4+red5+red6=(red3+red6)*red5/2
SEQ_NO RED1 RED2 RED3 RED4 RED5 RED6 BLUE
--------------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
2011087 2 3 4 5 18 28 1
2011037 1 3 4 6 17 25 11
2007059 1 3 4 6 7 29 14
2006151 1 3 4 6 16 22 8
2005027 1 3 4 6 21 32 15
2003087 2 3 4 5 24 28 13
6. 6个数字都在10以内的情况怎么样呢。
SQL> select *from test_data where red6<=10;
no rows selected
点到为止,可以看到尽管概率存在,但是从这些年的情况来看,有些事情和咱们想象的还是有些出入。
- Docker下redis的主从、持久化配置
- vuejs、eggjs、mqtt全栈式开发设备管理系统
- Xss和Csrf介绍
- GraphQL介绍&使用nestjs构建GraphQL查询服务
- 使用auth_request模块实现nginx端鉴权控制
- Docker学习之Docker镜像基本使用
- Docker学习之Centos7下安装
- Impala的Short-Circuit Reads
- js各种继承方式汇总
- Cloudera Navigator异常分析
- lodash源码分析之数组的差集
- lodash源码分析之baseFindIndex中的运算符优先级
- 在Ubuntu中安装Hadoop
- 如何编译及使用hive-testbench生成Hive基准测试数据
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法