我们正在寻找一种算法来在 O(N) 下解决这个问题。
给定两个实数 a 和 b(不失一般性,您可以假设它们都在 0 和 1 之间)找到一个介于 -N 和 N 之间的整数 n 以最小化表达式:
|an - b - 圆形(an - b)|
我们认为欧几里得算法可能适用于此,但无法弄清楚。看起来应该有比通过对整数 n 进行详尽搜索更快的方法来做到这一点。
注意:在我们的情况下,a 和 b 可能会经常变化,因此可以为查找表修复 a 和 b,它会变得有点难看,因为 N 也可以变化。还没有详细查看查找表,看看我们可以将它作为 N 的函数得到多小。