Skip to content

一款双模式近似比例计算器,将任意数值对转化为近似的最简整数比。支持Tkinter图形界面与命令行双模式。纯Python+Tkinter(可选)实现,开箱即用。 / A dual-mode approximate ratio calculator that converts any pair of numbers into the simplest integer ratio. Features both Tkinter GUI and command-line interfaces. Pure Python implementation with optional Tkinter dependency—works out of the box.

Notifications You must be signed in to change notification settings

RxinnotRstar/ratio-finder-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

近似比例计算器

Python

将任意数值对转化为最简整数比的轻量级工具,支持Tkinter图形界面命令行双模式运行。

Snipaste_2025-12-03_01-41-09Snipaste_2025-12-03_01-41-28Snipaste_2025-12-03_01-41-50 图片

功能特点

  • 双模式支持:自动检测环境,优先启动Tkinter GUI(自动置顶),CLI模式作为可靠后备
  • 误差可视化:精确显示每个候选比例与原始数据比值的误差
  • 智能推荐低位:部分情况下,优先推荐简洁的一位数比例(如 3:4、5:6)
  • 极限处理:对“畸形”数值启用“极限模式”,直接输出1:xxxx或者xxxx:1
  • 零依赖:纯Python+Tkinter(可选)标准库实现,可无需额外安装

快速开始

方式一:图形界面(推荐)

python 近似比例计算器.py

方式二:命令行模式

python 近似比例计算器.py --cli

使用示例(GUI)

输入1920 1080
输出

近似比例1【16:9】
     误差=0
近似比例2【105:59】
     误差≈0.00188324
近似比例3【103:58】
     误差≈0.00191571
近似比例4【89:50】
     误差≈0.00222222
近似比例5【87:49】
     误差≈0.00226757
...

输入801 6000
输出

一位数比例【1:8】
     误差≈0.00850000
——————————
近似比例1【2:15】
     误差≈0.00016667
近似比例2【7:52】
     误差≈0.00111538
近似比例3【7:53】
     误差≈0.00142453
近似比例4【5:37】
     误差≈0.00163514
近似比例5【5:38】

输入1145 141919810
输出

特殊比例【1:123947】
     误差<0.00000001

⚠警告:超出常规搜索范围。
因此,程序将较小值设为1,
据此计算最优的近似比例。

注意:可能不是最近似的值。

配置参数

在脚本开头可自定义以下参数:

参数 说明 默认值 建议范围
MAX_DENOMINATOR 搜索范围上限(分母最大值) 64 10-10000
SINGLE_DIGIT_THRESHOLD 一位数比例优先的误差阈值 0.01 按需修改,推荐保持默认

调整原则

  • 增大 MAX_DENOMINATOR 可获得更低误差的比值数对,但计算时间增加,且输出的比值数对的位数可能会增加
  • 增大 SINGLE_DIGIT_THRESHOLD 更容易显示简洁比例

技术原理

  1. 穷举搜索:在 [1, MAX_DENOMINATOR] 范围内枚举所有互质分数
  2. 误差计算error = |num/den - a/b|
  3. 结果排序:按误差从小到大返回前5组最简比例

About

一款双模式近似比例计算器,将任意数值对转化为近似的最简整数比。支持Tkinter图形界面与命令行双模式。纯Python+Tkinter(可选)实现,开箱即用。 / A dual-mode approximate ratio calculator that converts any pair of numbers into the simplest integer ratio. Features both Tkinter GUI and command-line interfaces. Pure Python implementation with optional Tkinter dependency—works out of the box.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages