Complejidad temporal para encontrar el n-ésimo número de Fibonacci usando matrices

Tengo una pregunta sobre la complejidad temporal de encontrar el n-ésimo número de Fibonacci usando matrices.

Sé que puedes encontrar F norte de:

( 1 1 1 0 ) norte = ( F norte + 1 F norte F norte F norte 1 )

Desde arriba, F norte es la entrada en la fila 1, columna 2 de la matriz. He leído en una fuente en línea que elevar la matriz Q de Fibonacci a la potencia de n toma O (n) tiempo. No estoy seguro de por qué este es el caso. ¿Es la multiplicación de matrices una operación que se puede hacer en tiempo constante en las computadoras? Esa es la única razón por la que puedo ver que la operación anterior toma tiempo O (n) (ya que tendría que hacer n-1 multiplicaciones para elevar la matriz Q a la potencia de n). Cualquier idea es apreciada.

(Creo que tienes un error tipográfico en la ecuación: ¿el lado derecho no debe elevarse a una potencia?) Sí, ¿cuánto tiempo crees que lleva calcular el producto de dos 2 × 2 matrices?
Sí, mi mal, lo arreglaré. Para calcular el producto de dos matrices de 2 x 2, hay 8 multiplicaciones y 4 sumas involucradas. La multiplicación y la suma toman un tiempo constante, pero dado que hay 12 operaciones involucradas, ¿no significaría esto que el tiempo tomado es O(n)?
Multiplicación de dos matrices de tamaño acotado (aquí 2 × 2 ) no puede tomar más que un tiempo constante, simplemente porque no hay norte .
Para darle una idea de cómo se calculan eficientemente las potencias de la matriz, considere A 2 = A A , A 4 = A 2 A 2 , A 8 = A 4 A 4 , A dieciséis = A 8 A 8 , entonces por ejemplo A 20 = A dieciséis A 4 se obtiene en 5 multiplica
Veo, evaluando A 2 que toma una multiplicación, luego puedes evaluar A 4 en una multiplicación también porque sabes A 2 etcétera.

Respuestas (1)

multiplicando dos 2 × 2 las matrices se pueden hacer con ocho multiplicaciones y cuatro sumas, así que sí, eso es tiempo constante. (De hecho, se puede hacer en menos multiplicaciones a costa de más adiciones, pero el punto permanece).

Multiplicando un 2 × 2 matriz por ( 1 1 1 0 ) se puede hacer con solo dos adiciones, lo que es aún más rápido.

pero la informática F norte usando F norte = F norte 1 + F norte 2 toma solo una suma, entonces, ¿por qué usar matrices?

La respuesta es que la informática METRO norte para una matriz METRO en realidad se puede hacer usando O ( registro norte ) multiplicaciones y sumas, utilizando la exponenciación al cuadrado . ¡Échale un vistazo!

La multiplicación y la suma son solo operaciones de tiempo constante si el número de dígitos es fijo, ¿no? Pero el número de dígitos de F norte crece linealmente.
@OscarLanzi Bueno, se necesita O ( norte ) tiempo sólo para leer todos los dígitos de F norte . Entonces, O ( norte registro norte ) ¿tal vez?