Trabajando a través de SICP ahora mismo, y el ejercicio 1.19 describe las reglas de la secuencia de Fibonacci como una transformación $T$ por lo que $a + b \rightarrow a$ y $a \rightarrow b$ y señala que la aplicación de $T$ a los valores iniciales de 1 y 0 $n$ veces produce $Fib(n+1)$ y $Fib(n)$ . En este punto, introduce una clase más amplia de transformación $T_{pq}$ diciendo que $T$ es un caso especial en el que $p = 0$ y $q = 1$ y que la transformación $T_{pq}$ funciona de la siguiente manera:
$bq + aq + ap \rightarrow a$ y $bp + aq \rightarrow b$ .
A continuación, se nos pide que utilicemos esta fórmula para demostrar que es posible expresar de forma concisa las aplicaciones dobles del procedimiento para hacer que un algoritmo para calcular los números de fibonacci se ejecute en O(log n). Si quieres ver el texto completo del problema, está en la página 51 del libro enlazado arriba.
Ahora, puedo ver cómo funciona esto, pero no por qué. Mi pregunta es ¿en qué se basa esta generalización? ¿Qué característica de la secuencia de Fibonacci lo hizo evidente, o tiene alguna aplicación en un área diferente y la superposición se observó después?