Zum Inhalt
Gesamtwert-iterativ-function Codes3frehrl2016
Aus ProgrammingWiki
(define gegenstaende (list->vector '("dummy" (13 . 19) (11 . 20) (17 . 23) (15 . 21) (16 . 27) (14 . 25) (18 . 25) (10 . 18) (19 . 24) (12 . 17)))) ;Liste wird auf Vektor abgebildet, hier von 0 bis 4, um die Nummerierung mit 1 zu starten, wird 0 nicht benutzt(dummy). (define gewicht (lambda(i) (car (vector-ref gegenstaende i)))) ;um auf das Gewicht zuzugreifen, wird auf das erste Element aus dem Vektor an der Position i zugegriffen. (define wert (lambda(i) (cdr (vector-ref gegenstaende i)))) ;um auf den Wert zuzugreifen, wird auf das erste Element aus dem Vektor an der Position i zugegriffen. (define vector-copy (lambda (v) (let* ((l (vector-length v)) (v-duplikat (make-vector l))) (do ((i 0 (+ i 1)))((= i l) v-duplikat) (vector-set! v-duplikat i (vector-ref v i)))))) (define gesamtwert-iterativ (lambda(n k) (let ((zeileAlt (make-vector (+ k 1) 0)) (zeileNeu (make-vector (+ k 1) 0))) (do ((z 1 (+ z 1))) ;Zeile ((> z n)(vector-ref zeileNeu k));Resultat (set! zeileAlt (vector-copy zeileNeu)) (let ((gewicht-z (gewicht z))) (do ((s 1 (+ s 1))) ;Spalte ((> s k)) (if (< s gewicht-z) (vector-set! zeileNeu s (vector-ref zeileAlt s)) (vector-set! zeileNeu s (max (vector-ref zeileAlt s) (+ (vector-ref zeileAlt (- s gewicht-z)) (wert z)))))))))))
(gesamtwert-iterativ 10 120);
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten