2

你知道如何在 C 中对十进制数进行有理逼近(类似于Matlab 函数)吗?

更新

如果我们想要一个双数number的 P/Q 近似值,快速解决方法可能是:

int factor=1000000;
P=floor(number*factor);
Q=factor;

误差小于(数量/因子),可以忽略不计。

4

2 回答 2

3

连分数可用于计算实数的有理逼近,这在某种意义上是最优的。这样,输入 0.33333333 您就有机会获得 1/3 而不是 3333/10000。

于 2012-02-23T08:11:59.803 回答
1

您可以执行与更新中相同的操作,但随后检查顶部和底部之间的最高公因数并简化。例如,0.5会按照500000/1000000你的方法去做。他们有一个共同的因素,500000所以你可以将顶部和底部除以得到1/2。谷歌有很多 hcf 函数的例子,比如这个(编辑:还有这个令人印象深刻的列表)。

于 2012-02-23T08:04:30.490 回答