Hoy tengo que lidiar con algo que recuerda la secuencia de Fibonacci. Digamos que tengo un cierto número k, que es el número n-ésimo de cierta secuencia. Esta secuencia, sin embargo, es creada por una fórmula recursiva que conocemos de Fibonacci $a(n) = a(n-1) + a(n-2)$ donde $n \ge 2$ y $a(0) \le a(1) \le \dots \le a(n)$ . Así que digamos $a(n) = k$ . Ahora tengo que encontrar $a(0)$ , $a(1)$ que son el número inicial de esta secuencia, sin embargo la secuencia debe ser lo más larga posible y en caso de que haya muchas de ellas que sean de la misma longitud $a(0)$ debería ser lo más pequeño posible. Algún ejemplo:
$k = 10$
Puedo decir simplemente $a(0) = 0$ , $a(1) = 10$ así que $a(n) = k$ es parte de esta secuencia, ya que $a(0) + a(1) = a(2) = 10$ . Pero no es el más largo posible. Por ejemplo, elegir $a(0) = 0$ , $a(1) = 2$ Ahora $a(2) = 2$ , $a(3) = 4$ , $a(4) = 6$ , $a(5) = 10$ también es válida la secuencia y la longitud es $6$ y por lo que sé, no puede ser más largo.
¿Alguna idea de cómo hacerlo para cualquier $k$ ? Podría ser una fórmula matemática o algún algoritmo.