Programació dinàmica
La programació dinàmica és un mètode de resolució de problemes que es basa a resoldre el problema a partir d'un subproblema més petit de forma recursiva fins a trobar el resultat del subproblema menor.
Introducció
Per exemple, per calcular el factorial de 7, el podem calcular multiplicant 7 pel factorial de 6, i el factorial de 6 el podem calcular multiplicant 6 pel factorial de 5, etc.
A continuació tens un algorisme recursiu per calcular el factorial de n:
return 1
return *
assert == 720Tots els algorismes recursius es poden transformar en lineals mitjançant un array que guarda els resultats parcials, tal com pots veure a continuació:
=
= 1
= *
return
assert == 720, fEncara que un algorisme recursiu sigui molt més senzill d’escriure, i més “entenedor”, els algorismes lineals són molt més ràpids d’executar i no estan limitats per la mida de la pila d’execució del procés.
Per aquest motiu, molts compiladors reescriuen el codi recursiu en lineal de forma automàtica si l’algorisme és “tail-recursive”.
Estàs llegint una vista prèvia.
Inicia sessió amb Google per llegir la pàgina completa.
Inicia sessió amb GoogleAmb qualsevol compte de Google. Només et demanarem que acceptis les condicions del servei.