Me gusta esta pregunta, tiene la cantidad correcta de “diversión”.
Advertencia: sigue el pensamiento de forma libre, estoy publicando de cualquier manera y no editando:
Veamos, en el caso general:
- ¿Por qué los algoritmos no hacen las preguntas sobre Quora?
- ¿Debería alguien que se aplica a un campo de arranque de desarrollo ya saber cómo escribir una función para sumar una matriz multidimensional?
- ¿Qué es un algoritmo eficiente para encontrar una isla de 1s conectados en una matriz de 0s y 1s?
- ¿Cómo planificarías un campamento de algoritmos y estructuras de datos de un mes?
- ¿Cuál es el equivalente binario de -2?
[matemáticas] \ {x0, x1, … , x_i, x_ {i + 1}, …, x_n \} [/ math]
No está garantizado que incluso tengamos un movimiento. Tenemos que tener tres elementos consecutivos de modo que los dos primeros sumen como máximo el tercer elemento. (Estoy tomando un aumento monótono aquí, entonces (4,4,8) es una secuencia legal y (4,4,8) -> (8,8) es un movimiento válido).
(Así que imagino que la proporción del último elemento y el primer elemento establece un límite superior bastante claro en la cantidad de movimientos posibles).
Es probable que la mejor secuencia sean las secuencias de la familia fibonnaci, hagamos una prueba:
1,1,2,3,5,8,13,21, 34
1,1 – 2,3, – 5,8, – 13,21, – 34
Agrupar pares consecutivos debería producir otra secuencia más corta que sea plegable, lo que nos da el máximo de movimientos posibles.
2,5,13,34,34
7,13,34,34
21,34,34
No podríamos haberlo hecho mejor porque cada movimiento siempre reducirá la longitud de la secuencia en uno y dejará la suma sin cambios. Dado que el tamaño está limitado en el último elemento, necesitamos al menos tres elementos para contener la suma de la secuencia de 89.
Entonces podemos colocar un límite superior en:
[matemáticas] N – \ frac {\ displaystyle \ Sigma {x}} {x_n} [/ matemáticas]
Voy a publicar esto y revisarlo para poder averiguar a dónde ir desde aquí.