Re^3: Laesst sich mit dyn. Programmierung machen.
Hi,
es gab den Hinweis mit der dynamischen Programmierung in der zweiten Teilaufgabe(der Klausur). Bei der ersten Teilaufgabe(das war die Aufgabe, die ich hier hin gepostet habe) gab es dazu kein Hinweis. Ich habe die Aufgabe so geloest, wie ich sie vor einigen Tagen hier beschrieben habe, weil ich den ganzen Kram mit der dynamischen Programmierung so gut wie gar nicht verstanden habe. Ausserdem bin ich nicht in der Lage sowas(z.B. meine vorschlagene Loesung) zu implementieren. Einige Sachen aus der Vorlesung kann ich nicht implementieren(Algorithmen und Datenstrukturen), sondern nur beschreiben, wie z.B. Graphenalgorithmen, Algorithmen in (a,b)-Baeume und Skip-Listen, etc..
Es geht fuer mich bei dieser Klausur nur um Bestehen(4.0) oder 5.0. Ich habe die Vorlesung „Datenstrukturen und Algorithmen?nur widerwillig gemacht und habe da auch die groessten Schwierigkeiten im Studium. Also, ich habe aus dem ganzen dazugelernt, dass nicht Mathe die Schwierigkeiten in einem Informatistudium sind, sondern die ganzen Vorlesungen aus der theoretischen Informatik
Felix
Hallo,
ich habe das ganz anders gemacht. Moechte es mit einem
Beispiel zeigen. Gegeben sind 2- und 5-DM Muenzen und ein
Betrag, sagen wir mal 12 DM. Dann koennte man folgende
Produkte bilden: 12=6*2DM=2*5 DM +1*2 DM. Den Algorithmus
wuerde ich folgendermassen beschreiben:
1. Tue folgendes bei fuer jeden Muenzbetrag
1.1 Subtrahiere den Muenzbetrag v vom Betrag, bis der
Betrag<=0 und zaehle die Anzahl der Subtraktionen
1.2 Falls Betrag = 0, dann brich ab gebe die Anzahl aus und
gehe zu 1.
1.3 Falls Betrag< 0, dann addiere v auf den Betrag,
dekrementiere den Zaehler und gehe zu 1 und suche ein anderen
Muenzbetrag aus ausser v.
Wie siehts denn damit aus?
Felix
1. Das ist halt nicht dynamisch, weil Du fuer jeden M?zbetrag
auch
alle Zwischenwerte neu berechnen mu?.
2. Mu?das nicht unbedingt klappen: Gegeben 11 Mark und 2 und
5 Mark-St?ke. l?ung ist 3*2+5. Wenn wir mit 2 anfangen,
laufen wir bis -1, dann zu 1 und versuchen dann 1 mit 5
darzustellen (genauso wenn wir mit 5 anfangen).
3. Nochnals der Rat: Schreib diese Programme doch bitte
einfach.
Dann nimmst Du dir einen Debugger und beobachtest das ganze.
Du lernst einerseits wie man einen Debugger benutzt und
andererseits viel mehr ?er die Algorithmen, als ich Dir hier
erz?len kann.
MfG
Martin