Joh*_*sky 12 algorithm math optimization mathematical-optimization fractions
给定两个正整数范围x: [1 ... n]和y: [1 ... m]从0到1的随机实数R,我需要从x和y找到元素对(i,j),使得x_i/y_j最接近R.
找到这对的最有效方法是什么?
ybu*_*ill 12
使用Farey序列.

这在O(1)空间,O(M)时间最差情况和O(log M)平均值中找到最佳近似值.
用有理数逼近实数的标准方法是计算连续分数序列(见[1]).在计算系列的部分时限制分母和分母,并且在打破限制之前的最后一个值是非常接近实数的分数.
这将非常快速地找到非常好的近似值,但我不确定这总是会找到最接近的近似值.众所周知
任何收敛[连续分数展开的部分值]比分母小于收敛分数的任何其他分数更接近连续分数
但是可能存在较大分母(仍然低于极限)的近似值,它们是更好的近似值,但不是收敛值.
[1] http://en.wikipedia.org/wiki/Continued_fraction