From 86eac5e980a9475cbf93cf6c2bc723f56c2525c3 Mon Sep 17 00:00:00 2001 From: chenwj <654891551@qq.com> Date: Sun, 25 Jun 2023 17:44:49 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .idea/.gitignore diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..7901210 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,9 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +.idea/ \ No newline at end of file From ed10f88f563db45297346d60aca82733bc29b04c Mon Sep 17 00:00:00 2001 From: chenwj <654891551@qq.com> Date: Sun, 2 Jul 2023 18:36:31 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9football=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E8=A1=A8model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/football_match.py | 5 +++-- model/football_match_bf_odds.py | 6 ++++-- model/football_match_bqc_odds.py | 6 ++++-- model/football_match_spf_odds.py | 6 +++++- model/football_match_zjq_odds.py | 7 +++++-- 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/model/football_match.py b/model/football_match.py index 196098b..c60b58b 100644 --- a/model/football_match.py +++ b/model/football_match.py @@ -1,5 +1,5 @@ # coding: utf-8 -from sqlalchemy import Column, Date, DateTime, Integer, String, text +from sqlalchemy import Column, Date, DateTime, Integer, text from sqlalchemy.dialects.mysql import VARCHAR from sqlalchemy.ext.declarative import declarative_base @@ -28,8 +28,9 @@ class FootballMatch(Base): result = Column(Integer, comment='结果:0 负 1 平 3 胜') rq_count = Column(Integer, comment='让球数') rq_result = Column(Integer, comment='让球结果:0 负 1 平 3 胜') - bqc_result = Column(String(10, 'utf8mb4_general_ci'), comment='半全场结果') + bqc_result = Column(VARCHAR(10), comment='半全场结果') spf_odds_ranking = Column(Integer, comment='胜平负赔率排名') + rq_spf_odds_ranking = Column(Integer, comment='让球胜平负赔率排名') bf_odds_ranking = Column(Integer, comment='比分赔率排名') bqc_odds_ranking = Column(Integer, comment='半全场赔率排名') zjq_odds_ranking = Column(Integer, comment='总进球数赔率排名') diff --git a/model/football_match_bf_odds.py b/model/football_match_bf_odds.py index 9cd3ccb..41a554d 100644 --- a/model/football_match_bf_odds.py +++ b/model/football_match_bf_odds.py @@ -1,5 +1,5 @@ # coding: utf-8 -from sqlalchemy import Column, DateTime, Float, Integer, text +from sqlalchemy import Column, DateTime, Float, Integer, JSON, text from sqlalchemy.dialects.mysql import VARCHAR from sqlalchemy.ext.declarative import declarative_base @@ -14,7 +14,8 @@ class FootballMatchBfOdd(Base): id = Column(Integer, primary_key=True) match_id = Column(Integer) issue = Column(VARCHAR(255)) - result = Column(Float) + result = Column(VARCHAR(50)) + odds = Column(Float) _1_0 = Column('1-0', Float) _2_0 = Column('2-0', Float) _2_1 = Column('2-1', Float) @@ -46,4 +47,5 @@ class FootballMatchBfOdd(Base): win_others = Column(Float) draw_others = Column(Float) lost_others = Column(Float) + odds_history = Column(JSON) created_at = Column(DateTime, server_default=text("CURRENT_TIMESTAMP")) diff --git a/model/football_match_bqc_odds.py b/model/football_match_bqc_odds.py index 3a64351..01d4cf4 100644 --- a/model/football_match_bqc_odds.py +++ b/model/football_match_bqc_odds.py @@ -1,5 +1,5 @@ # coding: utf-8 -from sqlalchemy import Column, DateTime, Float, Integer, String, text +from sqlalchemy import Column, DateTime, Float, Integer, JSON, text from sqlalchemy.dialects.mysql import VARCHAR from sqlalchemy.ext.declarative import declarative_base @@ -14,7 +14,8 @@ class FootballMatchBqcOdd(Base): id = Column(Integer, primary_key=True) match_id = Column(Integer) issue = Column(VARCHAR(255)) - result = Column(String(50, 'utf8mb4_general_ci')) + result = Column(VARCHAR(50)) + odds = Column(Float) _3_3 = Column('3_3', Float) _3_1 = Column('3_1', Float) _3_0 = Column('3_0', Float) @@ -24,4 +25,5 @@ class FootballMatchBqcOdd(Base): _0_3 = Column('0_3', Float) _0_1 = Column('0_1', Float) _0_0 = Column('0_0', Float) + odds_history = Column(JSON) created_at = Column(DateTime, server_default=text("CURRENT_TIMESTAMP")) diff --git a/model/football_match_spf_odds.py b/model/football_match_spf_odds.py index 3c58958..5778e23 100644 --- a/model/football_match_spf_odds.py +++ b/model/football_match_spf_odds.py @@ -1,5 +1,5 @@ # coding: utf-8 -from sqlalchemy import Column, DateTime, Float, Integer, text +from sqlalchemy import Column, DateTime, Float, Integer, JSON, text from sqlalchemy.dialects.mysql import VARCHAR from sqlalchemy.ext.declarative import declarative_base @@ -15,12 +15,16 @@ class FootballMatchSpfOdd(Base): match_id = Column(Integer) issue = Column(VARCHAR(255)) result = Column(Integer, comment='结果') + odds = Column(Float) rq_count = Column(Integer, comment='让球数') rq_result = Column(Integer, comment='让球结果') + rq_odds = Column(Float) win = Column(Float, comment='胜') draw = Column(Float, comment='平') lost = Column(Float, comment='负') rq_win = Column(Float, comment='让球-胜') rq_draw = Column(Float, comment='让球-平') rq_lost = Column(Float, comment='让球-负') + odds_history = Column(JSON) + rq_odds_history = Column(JSON) created_at = Column(DateTime, server_default=text("CURRENT_TIMESTAMP")) diff --git a/model/football_match_zjq_odds.py b/model/football_match_zjq_odds.py index 3a8b5c6..4ebc035 100644 --- a/model/football_match_zjq_odds.py +++ b/model/football_match_zjq_odds.py @@ -1,5 +1,5 @@ # coding: utf-8 -from sqlalchemy import Column, Float, Integer, String +from sqlalchemy import Column, DateTime, Float, Integer, JSON, text from sqlalchemy.dialects.mysql import VARCHAR from sqlalchemy.ext.declarative import declarative_base @@ -14,7 +14,8 @@ class FootballMatchZjqOdd(Base): id = Column(Integer, primary_key=True) issue = Column(VARCHAR(255)) match_id = Column(Integer) - result = Column(String(50, 'utf8mb4_general_ci')) + result = Column(VARCHAR(50)) + odds = Column(Float) ball_0 = Column(Float) ball_1 = Column(Float) ball_2 = Column(Float) @@ -23,3 +24,5 @@ class FootballMatchZjqOdd(Base): ball_5 = Column(Float) ball_6 = Column(Float) ball_7_plus = Column(Float) + odds_history = Column(JSON) + created_at = Column(DateTime, server_default=text("CURRENT_TIMESTAMP")) From dcee2b8d342c8f70b079efa599311021aeb7bcb7 Mon Sep 17 00:00:00 2001 From: chenwj <654891551@qq.com> Date: Sun, 2 Jul 2023 19:06:56 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E6=8E=92=E5=88=97=E4=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lottery/plw.py | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/lottery/plw.py b/lottery/plw.py index 078e781..fcc9595 100644 --- a/lottery/plw.py +++ b/lottery/plw.py @@ -1,11 +1,30 @@ import numpy as np import pandas as pd -import math +count = 1000 * 100 -a = np.arange(100000) +a = np.arange(count) l = set([ f"{i:05d}" for i in a ]) sum_list = [ sum(map(int, list(i))) for i in l] sum_df = pd.value_counts(sum_list) -print(sum_df.to_dict()) -print(np.ceil((100000/sum_df)).to_dict()) \ No newline at end of file +# print(sum_df.to_dict()) +# print(np.ceil((100000/sum_df)).to_dict()) + +# 数字个数统计 +sum_union_dict = dict() +num_cnt_dict = dict() +for i in a: + item = f"{i:05d}" + sum_first_3 = sum(map(int, list(item[:3]))) + sum_next_3 = sum(map(int, list(item[2:]))) + sum_key = f"{sum_first_3}_{sum_next_3}" + sum_v = sum_union_dict.get(sum_key, 0) + sum_union_dict[sum_key] = sum_v + 1 + num_count = len(set(item)) + v = num_cnt_dict.get(num_count, 0) + num_cnt_dict[num_count] = v + 1 +sum_union_df = pd.Series(sum_union_dict) +num_cnt_df = pd.Series(num_cnt_dict) +print(sum_union_df.sort_values(ascending=False)[:20]) +print(count / num_cnt_df) +print(sum_union_df["14_15"]) \ No newline at end of file