Lösungen - TuH2L
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Scheme</language>
Link zur Hauptseite: [[Teile_und_Herrsche_2]]
Link zu den Übungsaufgaben: [[Aufgaben_-_TuH2]]
==Lösungen zur Binären Suche==
===Aufgabe 1 (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>
<run>(binaersuche3 23 liste)</run>
==Lösung zum Strassen-Algorithmus==
===Aufgabe 3===
Lösungsmatrix:
<math>
C =
\left(
\begin{array}{cccc}
116 & 52 & 60 & 68 \\
165 & 98 & 94 & 90 \\
97 & 42 & 50 & 58 \\
132 & 97 & 98 & 99 \\
\end{array}
\right)
</math>