2009-03-25 16 views
1

Ich habe dieses massive Array von Ints von 0-4 in diesem Dreieck. Ich versuche, die dynamische Programmierung mit Ruby zu lernen und würde etwas Hilfe gerne in die Anzahl der Pfade im Dreieck berechnen, die drei Kriterien erfüllen:Dynamische Programmierung Rekursion und eine Prise Memoisierung

  1. Sie an einen der Nullpunkte in der Reihe mit 70 Elementen beginnen.
  2. Ihr Pfad kann direkt über Ihnen eine Zeile sein (wenn es eine Nummer direkt darüber gibt) oder eine Zeile nach oben, die diagonal nach links zeigt. Eine dieser Optionen ist immer verfügbar
  3. Die Summe des Pfades, den Sie ergreifen, um die Null in der ersten Reihe bekommen muss bis zu 140.

Beispiel hinzufügen, an der zweiten Null in der unteren Reihe starten. Sie können sich direkt auf die Eins oder diagonal nach links zur 4 bewegen. In jedem Fall muss die Anzahl, zu der Sie kommen, zur laufenden Anzahl aller von Ihnen besuchten Nummern hinzugefügt werden. Von der 1 kannst du zu einer 2 (laufende Summe = 3) direkt über oder zur 0 (laufende Summe = 1) Diagonale nach links reisen.

0 
41 
302 
2413 
13024 
024130 
4130241 
30241302 
241302413 
1302413024 
02413024130 
413024130241 
3024130241302 
24130241302413 
130241302413024 
0241302413024130 
41302413024130241 
302413024130241302 
2413024130241302413 
13024130241302413024 
024130241302413024130 
4130241302413024130241 
30241302413024130241302 
241302413024130241302413 
1302413024130241302413024 
02413024130241302413024130 
413024130241302413024130241 
3024130241302413024130241302 
24130241302413024130241302413 
130241302413024130241302413024 
0241302413024130241302413024130 
41302413024130241302413024130241 
302413024130241302413024130241302 
2413024130241302413024130241302413 
13024130241302413024130241302413024 
024130241302413024130241302413024130 
4130241302413024130241302413024130241 
30241302413024130241302413024130241302 
241302413024130241302413024130241302413 
1302413024130241302413024130241302413024 
02413024130241302413024130241302413024130 
413024130241302413024130241302413024130241 
3024130241302413024130241302413024130241302 
24130241302413024130241302413024130241302413 
130241302413024130241302413024130241302413024 
0241302413024130241302413024130241302413024130 
41302413024130241302413024130241302413024130241 
302413024130241302413024130241302413024130241302 
2413024130241302413024130241302413024130241302413 
13024130241302413024130241302413024130241302413024 
024130241302413024130241302413024130241302413024130 
4130241302413024130241302413024130241302413024130241 
30241302413024130241302413024130241302413024130241302 
241302413024130241302413024130241302413024130241302413 
1302413024130241302413024130241302413024130241302413024 
02413024130241302413024130241302413024130241302413024130 
413024130241302413024130241302413024130241302413024130241 
3024130241302413024130241302413024130241302413024130241302 
24130241302413024130241302413024130241302413024130241302413 
130241302413024130241302413024130241302413024130241302413024 
0241302413024130241302413024130241302413024130241302413024130 
41302413024130241302413024130241302413024130241302413024130241 
302413024130241302413024130241302413024130241302413024130241302 
2413024130241302413024130241302413024130241302413024130241302413 
13024130241302413024130241302413024130241302413024130241302413024 
024130241302413024130241302413024130241302413024130241302413024130 
4130241302413024130241302413024130241302413024130241302413024130241 
30241302413024130241302413024130241302413024130241302413024130241302 
241302413024130241302413024130241302413024130241302413024130241302413 
1302413024130241302413024130241302413024130241302413024130241302413024 
02413024130241302413024130241302413024130241302413024130241302413024130 

Antwort

1

Aber ich mag Hausaufgaben :)

ich es einfacher, an die Vernunft über die ‚Pfade‘ Problem zu finden, wenn sie von oben nach unten, und im Anschluss an die um die andere Art und Weise Regeln.

Das bedeutet:

  • ein Teilweg der oberen Null sein kann, oder eine erweiterte Teilweg
  • die Verlängerungen eines Teilweg Pr, c sind, es sei denn, r die letzte Zeile ist, in der sie sind komplett, die Vereinigung von
    • die Verlängerungen von Pr, c + P (r + 1), c
    • die Verlängerungen von Pr, c + P (r + 1), c + 1

Die 'Summen'-Regel wählt nur bestimmte vollständige Pfade aus.

+0

Dies ist sehr hilfreich! – Auburnate

Verwandte Themen