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 la sessió amb Google per llegir la pàgina sencera.
Inicia la sessió amb GoogleNomés et demanarem que acceptis les condicions del servei.