Source code |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
; Aufgabenteil 2 ; Iterative alignments Funktion (define (alignments-i n m) (align n m (max n m))) (define (align n m l count) ([*](alignments-for-length n m l) ((alignments-for-length (+ n m))))) (define (alignments-for-length n m l) (/ (fac l) (* (fac (- l m)) (fac (- l n)) (- (+ m n) l)))) ; Iterative Fakultätsfunktion (define (fac n) (fact-iter 1 1 n)) (define (fact-iter product counter max-count) (if (> counter max-count) product (fact-iter (* counter product) (+ counter 1) max-count))) |
This post has been edited 1 times, last edit by "DarkWolve" (Nov 6th 2007, 5:30pm)
Source code |
|
1 2 3 4 5 6 7 |
... (define (align n m l count) (if (= (alignments-for-length n m l) (alignments-for-length n m (+ n m))) (+ (alignments-for-length n m l) count) (if (< n m) (+ (alignments-for-length n m l) count) (+ (alignments-for-length m n l) count))) (align (+ n 1) m l count)) ... |
This post has been edited 2 times, last edit by "DarkWolve" (Nov 6th 2007, 7:02pm)
Der Teil deines Programms, der dir Probleme bereitet, ist ja zum Verständnis der Frage nötig. Und außerdem ist es keine Lösung weil es so nicht richtig ist.
mh, gild der kleine Abschnitt schon Lösung? Ich nehms auch raus, aber eigentlich wenn es Forenregeln verletzt sollte es ja raus!
Offensichtlich. Aber wie kommst du zu dem Schluss? Die Schleife soll mit l bei der größeren der beiden Zahlen m und n anfangen und zuende sein, wenn l den wert m+n erreicht hat.
n+m ist ja l (in meinem Bsp)