技术架构文档
📖 目录
系统架构
整体架构
┌─────────────────────────────────────────────┐
│ GUI层 (main.py) │
│ - Tkinter界面 │
│ - 事件处理 │
│ - 数据展示 │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 业务逻辑层 │
│ ┌──────────┬──────────┬──────────┐ │
│ │数据分析 │号码推荐 │实战工具 │ │
│ └──────────┴──────────┴──────────┘ │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 数据访问层 │
│ ┌──────────┬──────────┬──────────┐ │
│ │数据获取 │数据缓存 │数据查询 │ │
│ └──────────┴──────────┴──────────┘ │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 数据源层 │
│ - 网络API (17500.cn) │
│ - 本地缓存 (JSON) │
└─────────────────────────────────────────────┘
模块设计
1. main.py - 主程序
职责:GUI界面和事件处理
核心类:
KL8SmartAnalyzerGUI:主界面类
主要方法:
setup_ui():初始化界面create_menu():创建菜单栏- 各标签页setup方法
- 各功能处理方法
代码量:约2900行
2. config.py - 配置模块
职责:全局配置管理
主要配置:
# 应用信息
APP_NAME = "快乐八智能分析选号器"
APP_VERSION = "1.1"
APP_AUTHOR = "摸球校尉陈八七"
# 快乐8规则
KL8_MIN_NUMBER = 1
KL8_MAX_NUMBER = 80
KL8_DRAW_COUNT = 20
# 游戏玩法
KL8_GAME_TYPES = {
'选一': {...},
'选二': {...},
...
}
# 界面配置
WINDOW_WIDTH = 1400
WINDOW_HEIGHT = 900
3. data_fetcher.py - 数据获取
职责:从网络获取开奖数据
核心类:
KL8DataFetcher
主要方法:
fetch_kl8_data():获取快乐8数据_parse_data():解析数据_save_cache():保存缓存_load_cache():加载缓存
数据源:
- URL: [数据源地址已隐藏]
- 格式:文本文件
- 缓存:data/kl8_cache.json
4. serial_converter.py - 序列号转换
职责:序列号转换和分析
核心类:
SerialConverter
主要方法:
convert_to_serial():转换为序列号analyze_serial_position():分析序列号位置get_serial_stats():序列号统计
算法原理:
原始号码排序 → 分配序列号1-20 → 分析位置规律
5. data_analyzer.py - 数据分析
职责:基础数据分析
主要功能:
- 频率统计
- 遗漏值计算
- 共现关系分析
6. number_recommender.py - 号码推荐
职责:智能号码推荐
核心类:
NumberRecommender
推荐策略:
- 混合策略
- 热门/冷门策略
- 遗漏平衡策略
- 序列号模式策略
7. enhanced_features.py - 增强功能
职责:高级功能实现
核心类:
DanmaRecommender:胆码推荐MultiPlayRecommender:多玩法推荐NumberKiller:杀号推荐SimilarityFinder:相似号码检索
主要功能:
- 多维度胆码评分
- 遗漏分层推荐
- 共现关系分析
- 随机性优化(v1.1新增)
8. advanced_analyzer.py - 高级分析
职责:专业分析功能
主要分析:
- AC值分析
- 和值分析
- 尾数分析
- 热度衰减分析
- 周期轮回分析
- 马尔可夫链预测
核心方法:
generate_ac_report()generate_sum_report()generate_tail_report()generate_heat_decay_report()generate_cycle_report()generate_markov_report()
9. ml_analyzer.py - 机器学习
职责:机器学习算法实现
核心类:
MLAnalyzer
主要功能:
- K-Means聚类分析
- Apriori关联规则挖掘
- LSTM时间序列预测
LSTM缓存机制(v1.1新增):
# 缓存文件:data/lstm_cache.json
缓存结构:
{
"issue": "期号",
"report": "分析报告",
"time": "缓存时间"
}
# 缓存逻辑
1. 检查缓存是否存在
2. 验证券号是否一致
3. 一致则加载缓存(秒开)
4. 不一致则重新分析并更新缓存
10. lottery_tools.py - 实战工具
职责:实用工具集
主要功能:
- 缩水过滤系统
- 旋转矩阵优化
- 智能胆拖生成
核心方法:
filter_combinations():缩水过滤generate_rotation_matrix_with_numbers():旋转矩阵generate_dantuo():智能胆拖
核心算法
1. 遗漏值计算
def calculate_omission(history_df):
"""计算每个号码的遗漏值"""
omission_data = {}
for num in range(1, 81):
omission = 0
for row in history_df:
if num in row['开奖号码']:
break
omission += 1
omission_data[num] = omission
return omission_data
2. 欲出指数
欲出指数 = 当前遗漏 / 平均遗漏
# 解释
- > 1.5:高欲出(回补预期强)
- 1.0-1.5:中欲出
- < 1.0:低欲出
3. 胆码评分算法
score = (
omission_score * 0.3 + # 遗漏值得分
desire_score * 0.3 + # 欲出指数得分
heat_score * 0.2 + # 近期热度得分
frequency_score * 0.2 # 历史频率得分
)
4. LSTM预测
# 模型结构
Sequential([
LSTM(32, return_sequences=False),
Dropout(0.2),
Dense(16, activation='relu'),
Dense(1, activation='sigmoid')
])
# 输入:近30期时间序列
# 输出:下期开出概率
5. 旋转矩阵
# 15选10 中6保5
- 输入:15个号码
- 输出:8注优化组合
- 保证:中6个至少中5个
- 对比:全包需要C(15,10)=3003注
数据流
数据获取流程
用户点击"获取数据"
↓
DataFetcher.fetch_kl8_data()
↓
请求网络API (17500.cn)
↓
解析数据 → DataFrame
↓
保存到缓存 (data/kl8_cache.json)
↓
返回给GUI显示
分析流程
用户点击分析按钮
↓
检查数据是否加载
↓
调用对应分析模块
↓
生成分析报告(文本)
↓
显示在结果区域
LSTM缓存流程
用户点击"LSTM预测"
↓
检查缓存文件是否存在
↓
加载缓存 → 验证券号
↓
期号一致?
├─ 是 → 加载缓存结果(秒开)
└─ 否 → 重新训练模型
↓
保存新缓存
↓
显示结果
技术栈
核心技术
| 技术 | 用途 | 版本 |
|---|---|---|
| Python | 编程语言 | 3.8+ |
| Tkinter | GUI框架 | 标准库 |
| Pandas | 数据处理 | 1.x |
| NumPy | 数值计算 | 1.x |
| Requests | 网络请求 | 2.x |
| Scikit-learn | 机器学习 | 1.x |
| TensorFlow | 深度学习 | 2.x |
| Cryptography | 加密签名 | 最新 |
依赖包
pandas>=1.3.0
numpy>=1.21.0
requests>=2.26.0
scikit-learn>=1.0.0
tensorflow-cpu>=2.6.0
cryptography>=3.4.0
开发工具
- IDE:VS Code / PyCharm
- 版本控制:Git
- 文档:Markdown
- 测试:unittest
性能优化
1. 数据缓存
- 网络数据本地缓存
- 避免重复请求
- 加速启动速度
2. LSTM缓存(v1.1)
- 分析结果缓存
- 相同期号秒开
- 节省计算资源
3. 多线程
- 数据获取使用后台线程
- 避免界面卡顿
- 提升用户体验
4. 算法优化
- 简化版LSTM(50个epoch)
- 采样分析(部分号码)
- 早期停止(EarlyStopping)
安全机制
1. 注册激活系统
- RSA加密签名
- 设备ID绑定
- 7天试用期
2. 数据验证
- 号码范围验证(1-80)
- 格式验证
- 异常处理
3. 错误处理
- Try-Except捕获
- 日志记录
- 用户友好提示
扩展性设计
插件化架构
- 模块化设计
- 易于添加新功能
- 低耦合高内聚
配置化管理
- 集中配置(config.py)
- 易于修改参数
- 支持自定义
数据接口
- 标准化数据格式
- 支持多种数据源
- 易于扩展
技术架构版本:v1.1
最后更新:2026-04-17