用Python预测双色球福利彩票中奖号码(请不要当真)

news/2025/2/12 16:17:06/

前言

双色球是中国福利彩票的一种玩法。

红球一共6组,每组从1-33中抽取一个,六个互相不重复。然后蓝球是从1-16中抽取一个数字,这整个组成的双色球

python从零基础入门到实战

今天,我们就用Python来统计一下各号码的中奖概率,并可视化展示。我本人,也会买概率最大的几个号码试试,中奖的话,我就删号,并开始朴实无华有钱人的生活!!!

先是数据的来源,采集双色球往期中奖数据

发送求情

import requests # 数据请求# 发送请求的url地址
url = 'http://www.cwl.gov.cn/cwl_admin/kjxx/findDrawNotice'params = {'name': 'ssq','issueCount': '','issueStart': '','issueEnd': '','dayStart': '2017-10-24','dayEnd': '2021-08-04','pageNo': page,
}
headers = {'Referer': 'http://www.cwl.gov.cn/kjxx/ssq/kjgg/','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
}
response = requests.get(url=url, params=params, headers=headers)
# <> 对象 200 请求成功  状态码

解析数据,for遍历

for index in result:dit = {'期号': index['code'],'开奖日期': index['date'],'红球': index['red'],'蓝球': index['blue'],'一等奖中奖注数': index['prizegrades'][0]['typenum'],'一等奖中奖金额': index['prizegrades'][0]['typemoney'],'二等奖中奖注数': index['prizegrades'][1]['typenum'],'二等奖中奖金额': index['prizegrades'][1]['typemoney'],'三等奖中奖注数': index['prizegrades'][2]['typenum'],'三等奖中奖金额': index['prizegrades'][2]['typemoney'],'四等奖中奖注数': index['prizegrades'][3]['typenum'],'四等奖中奖金额': index['prizegrades'][3]['typemoney'],'五等奖中奖注数': index['prizegrades'][4]['typenum'],'五等奖中奖金额': index['prizegrades'][4]['typemoney'],'六等奖中奖注数': index['prizegrades'][5]['typenum'],'六等奖中奖金额': index['prizegrades'][5]['typemoney'],'一等奖中奖地区': index['content'],'奖池金额': index['poolmoney']}

保存数据

import csv # 内置模块f = open('双色球.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['期号','开奖日期','红球','蓝球','一等奖中奖注数','一等奖中奖金额','二等奖中奖注数','二等奖中奖金额','三等奖中奖注数','三等奖中奖金额','四等奖中奖注数','四等奖中奖金额','五等奖中奖注数','五等奖中奖金额','六等奖中奖注数','六等奖中奖金额','一等奖中奖地区','奖池金额'])csv_writer.writeheader() # 写入表头
csv_writer.writerow(dit)
print(dit)

运行代码,这样就得到了往期双色球的数据了

现在开始,我们来分析这些数据

先导入需要用到的模块

import pandas as pd
from pyecharts.charts import *
from sklearn.linear_model import LogisticRegression

读取采集到的表格数据

data = pd.read_csv('双色球.csv',encoding='utf-8', engine='python')
data.head()

取数据,指定训练集和测试集

def get_lotto_data(data, lotto, lotto_id):data['lotto_id'] = lotto_idX = []Y = []# 标签and值for s, p in zip(data['lotto_id'], data[lotto]):X.append([float(s)])Y.append(float(p))return X, Y

建立线性回归模型

def linear_model_test(X, Y, predict_value):regr = LogisticRegression()regr.fit(X, Y)predict_outcome = regr.predict(predict_value)predictions = {}predictions['intercept'] = regr.intercept_predictions['coefficient'] = regr.coef_predictions['predicted_value'] = predict_outcomereturn predictions

使用线性回归推测中奖号码

def get_predicted_num(file, lotto, lotto_id):X, Y = get_lotto_data(file, lotto, lotto_id)predict_value = [[33]]result = linear_model_test(X, Y, predict_value)if lotto_id < 7:print(f'中奖第{lotto_id}个红球为:', result['predicted_value'].astype('int64'), '号球')else:print('中奖蓝球为:', result['predicted_value'].astype('int64'), '号球')

预测结果

get_predicted_num(data, 'r1', 1)  # 预测红1
get_predicted_num(data, 'r2', 2)  # 预测红2
get_predicted_num(data, 'r3', 3)  # 预测红3
get_predicted_num(data, 'r4', 4)  # 预测红4
get_predicted_num(data, 'r5', 5)  # 预测红5
get_predicted_num(data, 'r6', 6)  # 预测红6
get_predicted_num(data, '蓝球', 7)  # 预测蓝7

可视化展示

红球中奖概率分布图

x = red_ball_count.index.tolist()
y = red_ball_count.values.tolist()
# 可视化展示 
pie = (Pie().add("",[list(z) for z in zip(x, y)])
)
pie.render_notebook()

蓝球中奖概率分布图

复制代码

x = blue_ball_count.index.tolist()
y = blue_ball_count.values.tolist()
pie = (Pie().add("",[list(z) for z in zip(x, y)])
)
pie.render_notebook()

复制代码

蓝球中奖次数分布

复制代码

from pyecharts import options as opts
from pyecharts.charts import PictorialBar
from pyecharts.globals import SymbolTypec = (PictorialBar().add_xaxis(x).add_yaxis("",y,label_opts=opts.LabelOpts(is_show=False),symbol_size=18,symbol_repeat="fixed",symbol_offset=[0, 0],is_symbol_clip=True,).reversal_axis().set_global_opts(title_opts=opts.TitleOpts(title='蓝球中奖号码'),xaxis_opts=opts.AxisOpts(is_show=False),yaxis_opts=opts.AxisOpts(axistick_opts=opts.AxisTickOpts(is_show=False),axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(opacity=0)),),)
)
c.render_notebook()

复制代码

中奖注数漏斗图

复制代码

x_data = df['中奖注数'].index.tolist()
y_data = df['中奖注数'].values.tolist()c = (Funnel().add("中奖注数漏斗图",[list(z) for z in zip(x_data, y_data)],label_opts=opts.LabelOpts(position="inside"),).set_global_opts(title_opts=opts.TitleOpts(title="中奖注数漏斗图"))
)
c.render_notebook()

复制代码

很真实,基数太大,一、二等奖的中奖数都看不见了


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

相关文章

昨天是他中奖了

昨天上班 我发现客户公司的人都没上班 我才知道是西方的圣诞节 他们放假了 我们“外包打杂人员”...... 你懂的 所以到点 我们大家都下班了 对&#xff0c;到点就走&#xff01; &#xff08;ps&#xff1a;一般是不会这样&#xff09; 回来的路上看见超市做活动 关注公众号抽奖…

为什么说买彩票是交智商税?

很多人都有一夜暴富的幻想&#xff0c;梦想着好运来临&#xff0c;从此咸鱼翻身&#xff0c;这种心态可以理解&#xff0c;现在经济不景气&#xff0c;工作又辛苦&#xff0c;钱越来越难赚&#xff0c;想来想去能够实现财富自由最轻松的方式就是买彩票了。 我以前也经常买彩票…

java课程设计-彩票购买抽奖程序

一、项目简介 功能描述&#xff1a; 模拟福利彩票36选7&#xff0c;实现彩票的抽奖与中奖通知功能。 1.允许注册用户&#xff0c;用户信息包括用户id,用户名&#xff0c;密码&#xff0c;账户金额&#xff0c;电话号码等属性。 2.允许注册用户购买彩票&#xff1a;手动选号、随…

彩票游戏题目练习

假设你想开发一个玩彩票的游戏&#xff0c;程序随机地产生一个两位数的彩票&#xff0c;提示用户输入一个两位数&#xff0c;然后按照下面的规则判定用户是否能赢。 1)如果用户输入的数匹配彩票的实际顺序&#xff0c;奖金10 000美元。 2)如果用户输入的所有数字匹配彩票的所有…

七乐彩中奖彩票分析

# 七乐彩投注号码范围为01&#xff5e;30&#xff0c; # 七乐彩每期从30个号码中开出7个基本号码和1个特别号码作为中奖号码&#xff0c; # 七乐彩玩法即是竞猜开奖号码中的7个基本号码和1个特别号码&#xff0c;顺序不限 import random # 生成机选的号码 def makeRandomNum():…

猜数字游戏 这是要买彩票中奖的征兆吗?

我的程序&#xff1a;01./* 02.* 程序的版权和版本声明部分: 03.* Copyright (c) 2013, 烟台大学计算机学院 04.* All rights reserved. 05.* 文件名称&#xff1a;test.cpp 06.* 作 者&#xff1a;王鲁峰 07.* 完成日期&#xff1a;2013 年 11月17 日 08.* 版 本 号…

《JAVA练习题目1》 模拟彩票中奖

import java.util.Scanner;public class text {public static void main(String[] args) {// TODO Auto-generated method stubint number[] new int[7];Scanner scan new Scanner(System.in);int user[] new int[7];System.out.println("请输入您选定的号码&#xff1…

买一注彩票平均中奖的金额

今天运气不错&#xff0c;想买注彩票&#xff0c;大致算了下花2块买七星彩平均能中多少钱 static void ticket() {//1234567long first 5000000;//7long second 500000;//6long third 1800;//5long fourth 300;//4long fifth 20;//3long sixth 5;//2long total (long) …