우리는 O (N)에서이 문제를 해결하는 알고리즘을 찾고 있습니다. | - B의사 Diophantine 방정식을 최소화하는 빠른 알고리즘
:
주어진 두 실수의 a와 b 발현을 최소화 -N과 N 사이의 정수 n 찾기 (일반성을 잃지 않고 당신은 그들이 모두 0과 1 사이입니다 가정 할 수 있습니다) - 둥근 (an - b) |
유클리드 알고리즘이 잘 작동한다고 생각했지만 해결할 수 없습니다. 정수 n을 철저히 검색하는 것보다 훨씬 빠른 방법이 있어야합니다.
참고 : 우리의 상황에서 a와 b는 자주 변경 될 수 있으므로 룩업 테이블에 대해 a와 b를 고정하는 것이 가능합니다. 따라서 N도 달라질 수 있으므로 추한 것입니다. 룩업 테이블을 상세히 보지 않았다면, N의 함수로서 얻을 수있는 것이 얼마나 작은 지 알 수있다.
k 개의 다른 * n *을 테스트하려는 경우 | a - b - round (a - b) |를 보장 할 수있는 솔루션을 제공 할 수 있습니다. <1/k. – ElKamina
| n | <= N – John