Maximale Preis, Rekursion

Neue Frage »

Hellboy256 Auf diesen Beitrag antworten »
Maximale Preis, Rekursion
Man hat ein Kabel der Laenge l=4.
Ein Stueck der Laenge 1 kostet 1
Ein Stueck der Laenge 2 kostet 5
Ein Stueck der Laenge 3 kostet 6
Ein Stueck der Laenge 4 kostet 9
z.B. kann man das Kabel in 4 Stuecke der Laenge 1 aufteilen, Kosten waeren 4 oder
der Laenge 3 und der Laenge 1 (Kosten 7), oder der Laenge 2, 1 und 1 (Kosten 7)

Anzugeben ist nun ein Rekursiver Algorithmus der das Maximum von Kosten berechnet fuer eine bestimmte aufteilung des Kables.

Also bisher hab ich mal saemtliche Aufteilungen:
1, 1, 1, 1
1, 1, 2
2, 2
1, 3
4
FaustFrankenstein Auf diesen Beitrag antworten »

Nette Sache.

Aber noch einmal genau,

was ist die Eingabe für den Algorithmus?
Was ist die Ausgabe des Algorithmus - max. Kosten? Aufteilung maximaler Kosten? Kosten und Aufteilung?

So wie Du es schreibst
Rekursiver Algorithmus der das Maximum von Kosten berechnet fuer eine bestimmte aufteilung des Kables.
gibst Du dem Algorithmus bereits eine Aufteilung des Kabels und für diese Aufteilung berechnet der Algorithmus dann die maximalen Kosten, indem er die einzelnen Aufteilungen rekursiv aufteilt und deren maximale Kosten berechnet.
Stimmt das?

Falls ja, es macht keinen Unterschied ob Du dem Algorithmus eine Aufteilung eines Kabels gibts oder einen Algorithmus hast, dem Du die Teile einzeln, nacheinander übergibst und dann die Kosten für die einzelnen Teile aufaddierst.
addor Auf diesen Beitrag antworten »
RE: Maximale Preis, Rekursion
Warum denn maximaler Preis? Ich möchte für das Kabel doch möglichst wenig bezahlen. Aber anyway: kannst Du nicht einen Graph konstruieren und dann einen Greedy-Algorithmus darauf loslassen. Vielleicht tät's der Dijkstra.
Hellboy256 Auf diesen Beitrag antworten »

Berechnet werden sollte schon das Maximale Einkommen, ist eigentlich ne Aufgabe aus Informatik:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:

public class CutCable {
       
       public static int cutCable ( byte[] cots, int n) {

      //Hier sollte Rekursiv das Maximum berechnet werden im Array costs
      //stehen die verschiedenen Kosten fuer die Teile
      //costs[0] = 1 Teil; costs[1] = 2 Teile ...

}



    public static void main ( String [] args ) {
         byte [] p = {1 ,5 ,6 ,9};
         System . out. println ( cutCable (p, p. length ));
    }

}
FaustFrankenstein Auf diesen Beitrag antworten »

Is ja nett, dass Du mal so ein Template schickst.
Abakus Auf diesen Beitrag antworten »

Hallo!

Ich denke, der erste Schritt ist zunächst, dass du erstmal deine Rekursion (zB in Pseudocode) formulierst. Hast du da eine Idee?

Wenn du dies hast, kannst du die Funktion auch programmieren.

Grüße Abakus smile
 
 
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »