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>