|
Guten Tag.
Ich Studiere Informatik und stoße bei der folgenden aufgabe auf das problem das ich die Gleichung, die zu implementieren ist, nicht verstehe, mir aber gleichzeitig die zeit ausgeht. Mir würde es daher sehr helfen wenn mir jemand etwas auführlicher beschrieben könnte was diese aufgabenstellung versucht zu sagen.
Es soll doch folgendes 7 mal addiert werden: Cent bis 2 Euro) mal den münkombinationen(?) gleich dem betrag? Somit sind die münzwertde die dazughörigen kombinationen aber das geht nicht auf...
Zur übersicht und für die in Latex geschriebenen Mathematische Ausdrücke habe ich die Aufgabe als Bild hinzugefügt.
Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich bräuchte bitte einen kompletten Lösungsweg." (setzt voraus, dass der Fragesteller alle seine Lösungsversuche zur Frage hinzufügt und sich aktiv an der Problemlösung beteiligt.) |
|
|
Hallo,
Du hast eine Vorgabe in Form einer Datenstruktur (Array, Liste, von (Münz-) Werten. Entweder ist Dir die Anzahl der Werte vorgegeben oder Du musst sie vorab ermitteln, das ist auch nicht beschrieben. Ausserdem kennst Du den zu ermittelnden Gesamtbetrag . Letztendlich sollst Du eine rekursive Funktion schreiben, die die Gesamtzahl gemäß dieses Algorithmus ermittelt. Diese könnte in etwa so aussehen:
Integer betragM(Datenstruktur Integer Integer
Integer Integer if (anzahl gleich dann return if dann return betragM(c, if dann betragM(c, return
Ich habe es nicht überprüft, aber intuitiv würde ich erwarten, dass die Werte bis aufsteigen sortiert sein müssen, damit das funktioniert. Aber wenn man die Funktion geschrieben hat, lässt sich das ja leicht überprüfen.
|
|
Gut, also sind alle Münzwerte gespeichert in einem Array cent, 2 cent... 2 euro), ist die anzahl der münzen (hier und der berag für den die kombinationen ermittelt werden sollen, stimmts? Bedeutet an der stelle an der du "anzahl" geschrieben hast (erste if-anweisung) meintest du n?
Habe es eben so implementiert, gibt nen stackOverflow an der stelle wo er berechnen soll aber daran kann ich arbeiten, schonmal besten Dank!
|
|
Ja, ich denke Anzahl sollte sein. ist beim Initialaufruf die Anzahl der verschiedenen Münzen, wird aber dann bei der Berechnung von dekrementiert, was dem Entfernen des höchsten Münzwerts entspricht. Und ja, ist der Betrag, der zusammengebastelt werden soll, so bezeichbnet wie in deinem Angabetext. Der Algorithmus sollte nach meinem Dafürhalten korrekt sein.
Hier eine schnelle Implementation in Mathcad (mit globalem Münzstapel):

Anm.: rows(c) liefert die Mächtigkeit des Münzvektors hier also 8.
Wenn du nichtganzzahlige Münzwerte verwendest, solltest du natürlich eine Konstante eps definieren mit zB eps=10^-8 und dann anstelle von x<-eps und anstelle von |x|<eps schreiben.
|
|
So funktioniert und habs verstanden. Boomerang du hattest nur einen fehler bei dem gößergleich. Es ist ein kleinergleich. Danke euch beiden.
|
|
Hallo,
"Boomerang du hattest nur einen fehler bei dem gößergleich. Es ist ein kleinergleich."
Kommt davon, wenn man erst anders herum rangehen will, weshalb ich gedanklich das "kleiner" aus der Aufgabenstellung in ein " " umgewandelt habe. Ausserdem hatte ich das Ganze nur in einer theoretischen, allgemein verständlichen Form als Pseudocode geschrieben und nicht konkret überprüft.
|