2009-10-08 19 views
84

Szukam łatwego do zrozumienia przykładu dla kogoś, kto chce nauczyć się programowania dynamicznego. There are nice answers here about what is dynamic programming. Sekwencja fibonacci jest świetnym przykładem, ale jest zbyt mała, aby zarysować powierzchnię. Wygląda na to, że jest to świetny temat do nauczenia się, chociaż nie podjąłem jeszcze lekcji algorytmów, mam nadzieję, że jest na mojej liście na wiosnę.Prosty przykład dla kogoś, kto chce zrozumieć programowanie dynamiczne

Odpowiedz

4

Obliczanie odległości Levenshteina było jednym z pierwszych problemów, które rozwiązałem dzięki programowaniu dynamicznemu; Myślę, że jest to przyzwoity następny krok od sekwencji Fibonacciego pod względem złożoności.

http://en.wikipedia.org/wiki/Levenshtein_distance

28
+1

Widząc ten wykład z MIT http://video.mit.edu/watch/introduction-to-algorithms- wybierz 19-dynamiczne-programowanie-i-fibonacci-shortest-paths-14225/, a następnie rozwiązuj powyższe problemy , pomoże ci zrozumieć, dlaczego DP jest pomocny. – user504879

+0

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić w nim istotne części odpowiedzi i podać link do odsyłacza. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. - [Z recenzji] (/ opinia/niskiej jakości-posts/17995545) – kometen

6

Ideą programowania dynamicznego jest to, że jesteś buforowanie (memoizing) rozwiązania podproblemów, choć myślę, że chodzi o coś więcej niż tylko to.

Istnieje wiele problemów z blokadą kodu Google, które wymagają, aby rozwiązania dynamiczne były wydajne. Przykłady:

Welcome to Code Jam (moderate)

Cheating a Boolean Tree (moderate)

PermRLE (hard)

pamiętać, że każdy z praktyką konkursach Code Jam ma sekcję "Konkurs Analysis" Bo jeśli jesteś zakłopotany próbując rozwiązać problem.

+0

Dzięki za zasoby. Od czasu do czasu rozwiązuję jedno lub dwa pytania od eulera projektu i wydaje mi się, że utknąłem w niektórych problemach wymagających wiedzy o DP. – AraK

5
  1. Maniacy dla geeków mają problemy z programowaniem dynamicznym collection. Uważam, że ten zestaw jest jednym z najlepszych, jeśli przygotowujesz się do rozmowy kwalifikacyjnej.
  2. Jeśli chcesz mieć małe filmy instruktażowe dotyczące problemów z DP, możesz sprawdzić zestaw problemów z MIT na this.
Powiązane problemy