Aufgabe 6.4


at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)
at WechselMoeglichkeiten.moeglich_dp(WechselMoeglichkeiten.java:68)

das kommt wenn ich mit mehr als 5361 aufrufe (über die kommandozeile)


ah, da sind sie ja, die Stackoverflows und out of heapspace fehler! wurd ja mal langsam zeit ;D

kurzum: du verbrauchst zuviel Speicher!


hmpf dabei is moeglich_dp bis 5361 so schön schnell…


jo, bei mir ist es sogar bis MAXBETRAG schön schnell (mehr müssen wir ja nicht unterstützen!)


also moeglich_dp anders implementieren?

dabei speicherts doch jeden berechneten wert inner tabelle und wird bei bedarf ausgelesen


Dann ist scheinbar deine Tabelle ineffizient! ich teste mal schnell bis wohin meine möglichkeit funktioniert!

edit: 29790 ist der letzte funktionierende Wert, danach werden die Ergebnisse negativ, da der Datentyp long überlauft!

edit2: den ersten stackoverflow/heap gibt es bei 64086


wie weit funzt deine _rec methode absurd?


boah glaubst du ich hab ein Rechenzentrum und ein bisschen zuviel Freizeit? :wink:

ich teste mal ein paar werte, so in ein zwei wochen poste ich die ergebnisse


du sollst ja nur den definitions bereich schnell eingrenzen, will ja keine werte… zeitaufwand 30secs…


dir ist klar das rec bei betrag=15000 gute 5 min braucht?


dir ist klar, dass ich keine werte will?

die stackoverflow fehler kommen (bei mir?) entweder sofort oder gar nicht. wenn du bei 15000 noch keine bekommst, dann reicht mir das auch als ergebnis, wobei ichs nich versteh, weil die _rec kann man doch gar nicht anders implementieren, als sie gegeben ist (am übungsblatt)

  • tobi

so gesehen läuft 15000 noch, die frage die mich interessiert ist, ob es durchläuft!


so ists bei mir auch fehler gleich oder rechnen bis in die ewigkeit… und ich wüßte auch nich wie die einfache anders als aufm blatt zu implementieren is. Gebts halt zu dass ihrs auf 8GB workstations mit intel quad core getestet habt :slight_smile:

Und weil ich grad am testen bin -.- :
moeglich_dp bis 5361
moeglich_rec (die einfache!!!) bis ca. 6500…


Ihr 2 wart doch die Spezis die die Tabelle in der Main aufgebaut haben, oder? daran könnte es nämlich liegen dass die Programme früher abbrechen … hmmm ich merke grade es könnte bei mir sein, das dp, die Tabelle von iter mitverwendet hat :confused:

edit: ich brech rec jetzt ab, kein bock mehr ;D

edit2: dp geht auch bis MAXBETRAG wenn iter die tabelle nicht befüllt puh


sie wird im konstruktor aufgebaut, zählt das zu main?


jap, das meinte ich eigentlich auch!


also in der dp methode aufbauen lassen?


Im Konstruktor halt nur matrix = new long[muenzen.length][15001];

die iteration fehlt mir ja auch noch…
wenn ich mir die tabelle anschau die für beträge von 1-10 gemacht wird, dann kommt mir zwar ne idee das umzusetzen in iteration, aber leider ist es bei den ersten 10 schon nicht stimmig :frowning:


das wäre die logische Konsequenz