梧桐精舍
东湖沙湾论彩 · 少量开放,精准服务

首页 / 数字三工具乐园 / 文章

质数号码和选号器 开发者文档

2026-11-05 16:40:56 · 数字三工具乐园

质数号码和选号器 - 开发者文档

目录

  1. 项目结构
  2. 技术架构
  3. 模块说明
  4. API文档
  5. 开发环境
  6. 扩展开发

项目结构

质数号码和选号器/
├── main.py                          # 主程序入口
├── data_fetcher.py                  # 数据获取模块
├── omission_calculator.py           # 遗漏值计算模块
├── prime_checker.py                 # 质数判断模块
├── number_filter.py                 # 号码筛选模块
├── history_simulator.py              # 历史模拟测试模块
├── registration/                    # 注册系统目录
│   ├── client_license_validator.py  # 客户端验证模块
│   ├── production_registration_core.py  # 注册系统核心
│   ├── 注册管理工具.py              # 注册管理工具
│   ├── keys/                        # 密钥目录
│   └── license/                     # 授权文件目录
├── requirements.txt                 # 依赖包列表
├── README.md                        # 项目说明
└── docs/                            # 文档目录

技术架构

技术栈

  • 编程语言:Python 3.7+
  • GUI框架:Tkinter
  • 数据处理:Pandas
  • 网络请求:Requests
  • 加密库:Cryptography
  • 打包工具:PyInstaller

架构设计

┌─────────────────────────────────────┐
│          GUI界面层 (main.py)         │
├─────────────────────────────────────┤
│  业务逻辑层                           │
│  ├── NumberFilter (号码筛选)          │
│  ├── HistorySimulator (历史模拟)      │
│  └── OmissionCalculator (遗漏值计算)  │
├─────────────────────────────────────┤
│  数据层                               │
│  ├── DataFetcher (数据获取)          │
│  └── PrimeChecker (质数判断)         │
├─────────────────────────────────────┤
│  注册系统层                           │
│  ├── ClientLicenseValidator          │
│  └── ProductionRegistrationCore     │
└─────────────────────────────────────┘

模块说明

1. main.py - 主程序

功能:程序入口,GUI界面,功能整合

主要类:

  • PrimeNumberSelector:主程序类

主要方法:

  • create_widgets():创建界面
  • fetch_data():获取数据
  • start_filter():开始筛选
  • start_simulation():开始模拟测试
  • init_registration_system():初始化注册系统
  • check_activation_status():检查激活状态

2. data_fetcher.py - 数据获取模块

功能:从互联网获取3D/P3开奖数据

主要类:

  • DataFetcher:数据获取器

主要方法:

  • fetch_data(data_type):获取指定类型的数据
  • get_latest_period(data_type):获取最新一期数据

数据源:

  • 3D:`[数据源地址已隐藏]
  • P3:`[数据源地址已隐藏]

3. omission_calculator.py - 遗漏值计算模块

功能:计算百位、十位、个位的遗漏值

主要类:

  • OmissionCalculator:遗漏值计算器

主要方法:

  • calculate_omission(digit, position):计算指定位置指定数字的遗漏值
  • calculate_omissions_for_number(number):计算指定号码的遗漏值
  • calculate_omission_sum(number):计算遗漏值总和

算法说明:

  • 遗漏值 = 最新期号 - 上一次出现的期号
  • 如果最新一期就是该数字,遗漏值为1(下一期)

4. prime_checker.py - 质数判断模块

功能:判断一个数是否为质数

主要类:

  • PrimeChecker:质数判断器

主要方法:

  • is_prime(n):判断n是否为质数

算法:

  • 使用试除法
  • 只需检查到sqrt(n)
  • 使用缓存优化性能

5. number_filter.py - 号码筛选模块

功能:筛选出遗漏值总和为质数的号码

主要类:

  • NumberFilter:号码筛选器

主要方法:

  • filter_numbers(progress_callback):筛选号码

筛选逻辑:

  1. 遍历000-999所有号码
  2. 计算每个号码的遗漏值
  3. 判断遗漏值总和是否为质数
  4. 返回符合条件的号码列表

6. history_simulator.py - 历史模拟测试模块

功能:模拟测试历史期数,验证筛选效果

主要类:

  • HistorySimulator:历史模拟器

主要方法:

  • simulate_periods(num_periods, progress_callback):模拟测试指定期数

测试逻辑:

  1. 从最新一期开始,往前测试指定期数
  2. 对于每一期,使用该期之前的历史数据计算遗漏值
  3. 判断该期号码的遗漏值总和是否为质数
  4. 记录符合条件的期数

API文档

DataFetcher类

fetch_data(data_type: str) -> Optional[pd.DataFrame]

获取指定类型的数据。

参数:

  • data_type:数据类型,'3D' 或 'P3'

返回:

  • pd.DataFrame:包含开奖数据的DataFrame,失败返回None

示例:

fetcher = DataFetcher()
df = fetcher.fetch_data('3D')

get_latest_period(data_type: str) -> Optional[Dict]

获取最新一期开奖数据。

参数:

  • data_type:数据类型

返回:

  • Dict:包含最新一期数据的字典,失败返回None

OmissionCalculator类

calculate_omission(digit: int, position: str) -> int

计算指定位置指定数字的遗漏值。

参数:

  • digit:数字(0-9)
  • position:位置('百位'、'十位'或'个位')

返回:

  • int:遗漏值(期数)

示例:

calculator = OmissionCalculator(history_data)
omission = calculator.calculate_omission(0, '百位')

calculate_omissions_for_number(number: str) -> Dict[str, int]

计算指定号码的百位、十位、个位遗漏值。

参数:

  • number:三位号码字符串,如"000"

返回:

  • Dict:包含百位、十位、个位遗漏值的字典

示例:

omissions = calculator.calculate_omissions_for_number("000")
# 返回: {'百位': 1, '十位': 15, '个位': 1}

PrimeChecker类

is_prime(n: int) -> bool

判断一个数是否为质数。

参数:

  • n:要判断的整数

返回:

  • bool:True表示是质数,False表示不是质数

示例:

checker = PrimeChecker()
is_prime = checker.is_prime(17)  # True

NumberFilter类

filter_numbers(progress_callback=None) -> List[Dict]

筛选出符合条件的号码。

参数:

  • progress_callback:可选的回调函数,用于报告进度
  • 函数签名:callback(current, total, number)

返回:

  • List[Dict]:符合条件的号码列表

示例:

filter_obj = NumberFilter(history_data)

def progress(current, total, number):
    print(f"处理中: {current}/{total} ({number})")

results = filter_obj.filter_numbers(progress_callback=progress)

HistorySimulator类

simulate_periods(num_periods: int, progress_callback=None) -> List[Dict]

模拟测试过去若干期。

参数:

  • num_periods:要测试的期数
  • progress_callback:可选的回调函数
  • 函数签名:callback(current, total, period)

返回:

  • List[Dict]:符合条件的期数列表

示例:

simulator = HistorySimulator(history_data)
results = simulator.simulate_periods(100)

开发环境

环境要求

  • Python 3.7+
  • Windows 操作系统

安装依赖

pip install -r requirements.txt

依赖包

  • requests>=2.25.1:网络请求
  • pandas>=1.3.0:数据处理
  • cryptography>=3.4.8:RSA加密
  • psutil>=5.8.0:硬件信息

开发工具

  • IDE:推荐使用PyCharm或VSCode
  • 调试:使用Python内置调试器
  • 测试:使用unittest或pytest

扩展开发

添加新的筛选条件

  1. 在number_filter.py中添加新的筛选逻辑
  2. 修改filter_numbers方法
  3. 更新GUI界面(如需要)

添加新的数据类型

  1. 在data_fetcher.py中添加新的数据源
  2. 更新DATA_SOURCES字典
  3. 修改数据解析逻辑

自定义界面

  1. 修改main.py中的create_widgets方法
  2. 添加新的界面组件
  3. 绑定事件处理函数

代码规范

命名规范

  • 类名:大驼峰命名(PascalCase)
  • 函数名:小写下划线(snake_case)
  • 常量:全大写下划线(UPPER_SNAKE_CASE)

注释规范

  • 使用中文注释
  • 函数和类必须有文档字符串
  • 复杂逻辑需要行内注释

文件编码

  • 所有Python文件使用UTF-8编码
  • 文件开头添加编码声明:# -- coding: utf-8 --

版本:v1.1.0
更新日期:2025-12-18

← 返回数字三工具乐园文章列表

同栏目其它文章