Lösungen - TuH2L

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

==Lösungen zum Karatsuba - Algorithmus==
===Aufgabe 1===

==Aufgabe1 (c)==
Mögliche Implementierung:
<code>
(define binhelfer2
  (lambda (x ls start ende)
    (let ((mitte (floor (+ start (/ (- ende start) 2)))))
      (cond
        ((>= mitte (vector-length ls))"Falsche Eingabe")
        ((> start ende) (string-append "Element wurde nicht gefunden. Anzahl Rekursionen : " (number->string calls)))
        ((= (vector-ref ls mitte) x)(string-append "Element gefunden an der Stelle :" (number->string mitte) ". Anzahl Rekursionen : " (number->string calls)))
        ((< (vector-ref ls mitte) x)(and (set! calls (+ calls 1))(binhelfer2 x ls (+ mitte 1) ende)))
        ((> (vector-ref ls mitte) x)(and (set! calls (+ calls 1))(binhelfer2 x ls start (- mitte 1))))))))

(define calls 0)
(define binaersuche3 
  (lambda (x ls)
    (set! calls 0)
    (binhelfer2 x (list->vector ls) 0 (length ls))))


(define liste '(4 8 15 16 23 42))
</code>
<eval>(binaersuche3 23 liste)</eval>


<!--

===Aufgabe 2===

Wir erinnern uns die Schulbuchmethode sieht wie folgt aus: 

<math>
\begin{array}{cccccccccc}
4&3&7&8&\cdot&6&7&8&9 \\
\hline
&2&6&2&6&8&&& \\
&&&&&&&& \\
&&&&&&&& \\
&&&&&&&& \\
\hline
&&&&&&&& 
\end{array}
</math>

-->