最好用一个例子来描述问题。假设我有一个十进制值 100.227273。
100.227273 * X = Y
我需要找到给出整数 Y 的最小正整数 X。
如果 100.227273 只是一个近似值,并且您想获得最佳有理近似值,请使用连分数 http://en.wikipedia.org/wiki/Continued_fraction.
以100.227273为例。
- 去掉整数部分(100)。现在您得到 100.227273 = 100 + 0.227273。
- 将 0.227273 反转得到 4.39999(4.4?)。
- 重复步骤 1,直到您对错误感到满意为止。
所以你得到
1
100.227273 = 100 + —————————
1
4 + —————
1
2 + —
2
简化该表达式得到 2205/22。
[编者注:示例代码参见这个答案 https://stackoverflow.com/a/55410253.]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)