Заданы два оператора:
L : L(a,b) => ( 2 * a - b , b )
R : (a,b)R => ( a, 2 * b - a )
и начальная точка (a, b) = (0, 1).
Существует последовательность операторов L и R, такая, что в результате либо a = N, либо b = N.
Например:
Число 21 может быть получено кратчайшей последовательностью L L R L R:
(a, b): L(a, b) | (a, b)R
(0, 1): (-1, 1) | (0, 2)
(-1, 1): (-3, 1) | (-1, 3)
(-3, 1): (-7, 1) | (-3, 5)
(-3, 5): (-11, 5) | (-3, 13)
(-11, 5): (-27, 5) | (-11, 21)
Какова минимальная длина последовательности с помощью которой можно получить N ?
Замечание №1: число N может лежать в диапозоне -231 .. 231-1.
Замечание №2: сложность O(log(N)).
Замечание №3: досупная память O(1).
L : L(a,b) => ( 2 * a - b , b )
R : (a,b)R => ( a, 2 * b - a )
и начальная точка (a, b) = (0, 1).
Существует последовательность операторов L и R, такая, что в результате либо a = N, либо b = N.
Например:
Число 21 может быть получено кратчайшей последовательностью L L R L R:
(a, b): L(a, b) | (a, b)R
(0, 1): (-1, 1) | (0, 2)
(-1, 1): (-3, 1) | (-1, 3)
(-3, 1): (-7, 1) | (-3, 5)
(-3, 5): (-11, 5) | (-3, 13)
(-11, 5): (-27, 5) | (-11, 21)
Какова минимальная длина последовательности с помощью которой можно получить N ?
Замечание №1: число N может лежать в диапозоне -231 .. 231-1.
Замечание №2: сложность O(log(N)).
Замечание №3: досупная память O(1).
внимание! комментарии содержат ответ.