python爬取体彩排列3历史数据并验证其纯随机性

news/2024/10/25 20:31:11/

摘要:本文目的为验证体彩排列3的纯随机性。从网站上爬取一千二百多条历史开奖数据。将三个数字依次作为百位十位个位,以这些数据看作时间序列,然后利用时间序列分析白噪声检验其纯随机性,结果从大方向看体彩排列3开奖号确实是纯随机的。
主要步骤:
一、编写爬虫爬取数据并处理储存。
二、绘制时序图、自相关图等。
三、进行白噪声检验。

第一步:爬取数据
代码如下:

import requests
import bs4
import pandas as pd
import matplotlib.pyplot as plt
from pandas.plotting import autocorrelation_plot
from statsmodels.sandbox.stats.diagnostic import acorr_ljungbox
url='http://datachart.500.com/pls/history/inc/history.php?limit=1284&start=20000&end=21284'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'}
r=requests.get(url=url,headers=headers)
# 改变格式,把文本版的数据赋值给另一个变量
r.encoding='gbk'
T_W=r.text
# 创建bs4对象
bs1=bs4.BeautifulSoup(T_W,'html.parser')
k=0
Z=[]
for j in bs1.find_all('td',class_='cfont2'):txt=j.texttxt=txt.replace(" ","")k=k+1Z.append(int(txt))
Z=Z[::-1]
K=range(k)
PD_S=pd.DataFrame(Z,columns=['开奖'])
PD_S1=pd.DataFrame(K,columns=['序号'])
PD_S=PD_S1.join(PD_S)

第二步:绘制时序图、自相关图等。

# 绘制时序图
fig1= plt.figure(1)
plt.plot(range(len(Z)),Z, color='blue', linewidth=2)
plt.grid()
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.title('开奖号')
plt.xlabel("时间")
plt.ylabel("号码")
ax4= plt.gca()
plt.show()# 绘制自相关图
fig2= plt.figure(2)
autocorrelation_plot(Z)
plt.title('开奖号码自相关图')
plt.show()
qljungbox, pval=acorr_ljungbox(Z,boxpierce=False)

第三步:进行白噪声检验

fig3= plt.figure(3)
plt.plot(range(len(qljungbox)),qljungbox, color='blue', linewidth=2)
plt.title('LB值')
plt.show()fig4= plt.figure(4)
plt.plot(range(len(pval)),pval, color='blue', linewidth=2)
plt.title('P值')
plt.show()qljungbox6, pval6=acorr_ljungbox(Z,lags=6,boxpierce=False)
print('延期为6时P值')
print(pval6[5])qljungbox12, pval12=acorr_ljungbox(Z,lags=12,boxpierce=False)
print('延期为12时P值')
print(pval12[11])qljungbox18, pval18=acorr_ljungbox(Z,lags=18,boxpierce=False)
print('延期为18时P值')
print(pval18[17])qljungbox24, pval24=acorr_ljungbox(Z,lags=24,boxpierce=False)
print('延期为24时P值')
print(pval24[23])

在这里插入图片描述
从P值图上可以看出,P值显然大于0.05,故接受原假设(序列非纯随机)。
当然这只是很片面的得出的结论,也是从大方向看的结果,那么如果就短时间来说,彩票有无规律可循呢?


http://www.ppmy.cn/news/966521.html

相关文章

vs无法打开源文件_体彩: 西汉姆联vs曼联 英超

【 体彩】 西汉姆联vs曼联 【体彩】西汉姆联vs曼联 【体彩】 西汉姆联vs曼联 2020年12月06日 01:30 西汉姆联 西汉姆联上赛季艰难逃过降级的命运,新赛季再度征战英超却是完全不用的发挥,现在积分榜暂列第五跻身欧联区,是近些年来最好的开局。…

scrapy 抓取 体彩-超级大乐透,历年开奖号码【娱乐篇】

最近正好在看scrapy,手贱有了如下代码,核心代码如下:(不要给我讲pipline,我完全是图方便才这么写的) 彩票中出现频率最高的号码整理,如下: 【05,19,29&…

Java基于Set集合实现体彩大乐透2.0

编写程序实现体彩大乐透机选5注 题目 编写程序实现体彩大乐透机选五注,把机选结果打印在控制台上,具体规则如下 大乐透由前区和后区构成前区:从1-35中随机选出不重复的5个数后区:从1-12中随机选出不重复的2个数 Set集合实现就…

html中使用js实现体彩大乐透随机选号

体彩大乐透随机选号 页面预览&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>体彩大乐透随机选号</title><script>function start() {var arr1 ne…

c语言七星彩票兑奖7位数,7位数的体彩!具体中奖怎么算!

满意答案 【江苏体育彩票七位数&#xff0c;中奖规则;】特等奖:彩票7位数号码与中奖号码相同且排列一致&#xff0c;如1234567。 一等奖:彩票号码中连续6位数号码与中奖号码相同位置的连续6位数相同&#xff0c;如123456*或*234567。 二等奖:彩票号码中连续5位数号码与中奖号码…

体彩python_【Python】体育彩票选号器

from tkinter import * importtkinter.ttk as tkimportdatetimefrom tkinter.messagebox import * importtkinter.font as tfimporttimeimportrandomimportthreadingclassSportslottery(Tk):def __init__(self): super().__init__() self.title("体育彩票选号器") se…

Java基于集合实现体彩大乐透1.0

编写程序实现体彩大乐透机选5注 题目 编写程序实现体彩大乐透机选五注&#xff0c;把机选结果打印在控制台上&#xff0c;具体规则如下 大乐透由前区和后区构成前区&#xff1a;从1-35中随机选出不重复的5个数后区&#xff1a;从1-12中随机选出不重复的2个数 创建int型集合…

体彩大乐透中奖提醒程序

近来在体彩大乐透追一注号码&#xff08;这是我一夜暴富的唯一可能了&#xff09;&#xff0c;发现各大彩票网都不提供中奖提醒功能&#xff0c;这么容易实现的功能&#xff0c;它们竟然不提供&#xff0c;不知道为什么。每期自己对奖多麻烦啊&#xff0c;于是用python自己写了…