Powiedz S = 5 i N = 3 rozwiązania powinny wyglądać - < 0,0,5> < 0,1,4> < 0,2,3 > < 0,3,2> < 5,0,0> < 2,3,0> < 3,2,0> < 1,2,2> itp itdLiczba sposobów sumowania do sumy S z numerami N
W ogólnym przypadku, N zagnieżdżone pętle mogą być użyte do rozwiązania problemu. Uruchom N zagnieżdżoną pętlę, wewnątrz nich sprawdź, czy zmienne pętli dodać do S.
Jeśli nie wiemy N z wyprzedzeniem, możemy użyć rozwiązanie rekursywne. Na każdym poziomie uruchom pętlę, zaczynając od 0 do N, a następnie wywołaj samą funkcję ponownie. Kiedy osiągniemy głębokość N, zobaczmy, czy uzyskane liczby sumują się z S.
Jakieś inne rozwiązanie do programowania dynamicznego?
Czy to zadanie domowe? – templatetypedef
duplikat (na math.stackexchange): http://math.stackexchange.com/questions/2455/geometric-proof-of-the-formula-for-simplex-numbers –
Dynamiczne rozwiązanie programistyczne nie różni się zbytnio od klasyczny [problem plecaka 0-1] (http://en.wikipedia.org/wiki/Knapsack_problem#0-1_knapsack_problem). Różnice polegają na tym, że interesują nas tylko pełne plecaki (prosta zmiana w rozwiązaniu) i te, które zawierają dokładnie N elementów (niewielka zmiana w rozwiązaniu). – marcog