ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
1390
1390
EMPFEHLEN
-
Hallo Leute,
Ich hab folgende Aufgabe bekommen:
Eingabe sind verschiedene Münzen mit je einer Wertigkeit und Anzahl der jeweiligen Münzen.
Diese soll ich auf n Töchter verteilen.
Ich soll also überprüfen ob ich mit den gegebenen Münzen alle zum gleichen Wert auf die n töchter genau aufteilen kann. (rekursiv)
Meine Idee:
Die werte der münzen(key) und ihre anzahl (value) in ein treemap zu speichern und mit dieser zu rechnen
dann erstmal überprüfen ob der gesammtbetrag durch die n töchter zu teilen sind
wenn ja
gesamt durch n rechnen um anteile der einzelnen töchter zu beckommen
nehme ich die map und versuche vom größten münzwert angefangen den ersten teil der ersten tochter zu füllen mit den gegebenen münzen
wenns klappt
weiter zur nächsten
wider auffüllen
weiter zur nächsten
bis zur n ten tochter
wenn ich alle füllen kann klappts wenn nicht(münswerte größer als anteil) brichts ab
FRAGE:
Ist das so OK oder gibt es einene bessere bzw. effizientere Methode dies "rekursiv" zu lösen?

-
31.05.11 12:55 #2
- Registriert seit
- Feb 2009
- Beiträge
- 193
Naja, als rekursive Variante würde mir spontan einfallen eine Methode zu schreiben die mit den Münzen und den Töchtern aufgerufen wird und jeweils eine Münze verteilt und sich dann wieder selber aufruft wenn noch Geld da ist. Ist allerdings eher umständlicher. Ist denn in der Aufgabe explizit angegeben, dass es rekursiv sein muss?
EDIT: Eine weitere Idee wäre, jeder Tochter solange von den größten Münzen zu geben bis von denen keine mehr da sind, die weiteren Töchter die dann noch zu wenig haben aufzufüllen bis zu dem bestimmten Betrag und dann mit der nächst größeren Münze weiter zu machen
-
Danke für deine Idee, ich bin aber nicht sicher ob es zeitlicher Effizienter wäre.
Das Programm muss rekursiv geschrieben und möglichst Zeiteffizient sein.
-
31.05.11 20:42 #4
- Registriert seit
- Jun 2009
- Beiträge
- 868
rekursiv ist aber nicht effizient.
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
01.06.11 12:16 #5
Ich finde die Aufgabe klingt nach einen typischen Fall für Backtracking...
Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.
-
Da gebe ich dir ja recht genodeftest, aber so lautet nun mal leider die Aufgabe. Der Tipp mit dem Backtrapping ist gut. Darüber haben wir auch vor einiger Zeit mal gesprochen.
Ich musste heute mein UML dazu abgeben und nach ein paar kleinen Fehlerkorrekturen wurde es abgenommen. Die umsetzung wird sicherlich etwas komplizierter, aber noch machbar für mich.
Danke für eure Hilfe
Ähnliche Themen
-
Verteilung von Netzwerkresoucen möglich?
Von multitasker im Forum Microsoft WindowsAntworten: 3Letzter Beitrag: 11.12.08, 22:25 -
Geld - Münzen
Von Lenhard im Forum FotografieAntworten: 4Letzter Beitrag: 18.08.05, 14:10 -
Internet Verteilung in Deutschland
Von silverhay im Forum Internet, DSL & FlatrateAntworten: 2Letzter Beitrag: 04.07.05, 17:04 -
font auf euro münzen
Von berti666 im Forum TypografieAntworten: 1Letzter Beitrag: 08.12.04, 15:18 -
RGB verteilung
Von netrobot im Forum Coders TalkAntworten: 1Letzter Beitrag: 07.10.04, 18:29





Zitieren
Login





