Мы ищем алгоритм для решения этой проблемы в O (N).
с учетом двух действительных чисел a и b (без потери общности можно предположить, что они оба находятся между 0 и 1)Найдите целое число n между -N и N, которое минимизирует выражение:
| an - b - round (an - b) |
Мы думали, что евклидов алгоритм может хорошо работать для этого, но не могу понять это.Похоже, что это должно быть гораздо быстрее, чем через исчерпывающий поиск по целым числам n.
Примечание: в нашей ситуации a и b могут часто меняться, поэтому исправление a и b для таблицы поискавозможно, это становится уродливым, так как N также может меняться.Еще не посмотрел подробно таблицу соответствия, чтобы увидеть, как мало мы можем получить ее в зависимости от N.