Einzelnen Beitrag anzeigen

grenzgaenger
(Gast)

n/a Beiträge
 
#12

Re: Rucksackproblem, Bitte um Hilfe

  Alt 5. Jan 2008, 20:14
doch, die lösung ist rekursiv.

Delphi-Quellcode:
  PROCEDURE try (stufe: Integer; vektor: vektortyp);
  VAR wahl,gewicht,wert: Integer;

   :
   :
   :
  BEGIN { T }
    FOR wahl:=auswahlanfang TO auswahlende DO
    BEGIN
      vektor[0]:=stufe; { Stelligkeit setzen }
      vektor[stufe]:=wahl; { Auswahl Objekt i treffen }
      vektor_bewerten;
      IF vollstaendig
        THEN BEGIN IF neues_optimum THEN loesung_speichern END
        ELSE BEGIN IF lebend THEN try(stufe+1,vektor) END //hier wird die routine selbst aufgerufen
    END
  END;

BEGIN
  :
  :
  try(1,vektor); { rekursive Lösungssuche }

das heisst nichts anderes, als dass sich die routine selbst aufruft. hier noch ein Link

PS: möcht zwar nix sagen, aber didaktisch ist diese aufgabe verfehlt.
  Mit Zitat antworten Zitat