esta interesante el tema de la programacion dinamica. me lei la wiki en la version ingles, que por cierto, esta mas completo. aun no comprendo todos los conceptos porque no estoy muy familiarizado con el tema. pero me llamo mucho la atencion eso de memoization. aunque no viene al caso, ya que se esta discutiendo en python, pero igual pienso que es aplicable para cualquier lenguaje. transcribi dos pseudocodigo a javascript (la funcion recursiva y la memoization), me sorprendio ver la diferencia de rapidez en resultados. aqui se los comparto...
Código:
// recursiva;
fib = function(n){
if(n == 0)return 0;
if(n == 1)return 1;
return fib(n - 1) + fib(n - 2);
}
// memoization top-down;
m = {0:0, 1:1};
fib = function(n){
if(!m.hasOwnProperty(n)) m[n] = fib(n - 1) + fib(n - 2);
return m[n];
}
intenten por ejemplo el valor 100 en ambas versiones. es sorprendente las diferencias de resultado. gracias por crear este tema, porque creo que de aqui a 10 años mas no me hubiera enterado. deberian de crear un foro especificamente para tecnicas de programacion que sea aplicable para cualquier lenguaje.