Wenn dies dein erster Besuch hier ist, lese bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich registrieren, bevor du Beiträge verfassen kannst. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
ja die aufgabe halt wie sie oben genannt ist.. nur der lehrer labert die ganze Zeit iwas von wegen lösungswegen bla bla.. kapier ich auch nicht mehr ;D
Oh, stimmt, darauf hab ich gar net geachtet ;)
Wenn du meins übernimmst, dann musst du die Liste andersherum sortieren, wie bei mir auch ;)
Versteh auch net ganz, warum es unterschiedliche Ergebnisse ausgeben soll, denn es kann nur eine optimale Lösung geben.
Hatte ja schonmal gefragt:
Verständnisfrage, was ist die Lösung der Aufgabe:
12 Münzen mit Gesamtgewicht von 99,26g
13 Münzen mit Gesamtgewicht von 99,90g
Also ist eher das Gewicht annähernd an 100g wichtig oder die Anzahl der Münzen
Ja, beschreib mal näher. So wies Killa verstanden hat, würde es nach Rekursion schreien. Aber das wäre ne deutliche Nummer schwieriger als die Ausgangsaufgabe, kann ich mir irgendwie net vorstellen...
Hmm, die Zähl- und Abbruchbedingungen dürften falsch sein. Gefragt sind ja die Mengen, die möglichst genau an die 100g rankommen; das würd' ich so definieren, dass es nicht möglich ist, eine von den leichtesten Münzen noch hinzu- oder wegzunehmen, ohne ungenauer zu werden. Also 100g +/- leichteste Münze (Ränder exklusive). Deine Lösung hat ja die Bedingung, dass es exakt 100g sein müssen.
Würde die Zählbedingung so ändern:
if (sum == limit) -> if ( sum + lightest(coins) > limit && sum - lightest(coins) < limit )
Und die Abbruchbedingung so:
if (sum + lightest(coins) > limit)
Der Algorithmus zählt übrigens viele Lösungen mehrfach, liefert also ein viel zu hohes Ergebnis.
Hab mir das jetzt nicht angeguckt.
Wenn alle Kombinationen an Münzen gefunden werden soll, kannst du halt das bentutzen, was in meinem ersten Post steht. An der Stelle, wo kontrolliert wird, ob der neue Stapel besser ist als ein vorheriger, zählst du einfach, das eine weitere Lösung gefunden wurde (und merkst sie dir gegebenfalls bzw. gibst sie aus). Da kommen auch keine Lösungen doppelt vor.
Kommentar