Diskrete Mathematik Ausgewählte Musterlösungen, 8. PS-Blatt 1) LVA 703015 Institut für Informatik • Es gibt mehrere Möglichkeiten die zwei n-bit Integers zu multiplizieren: a) xy = (2n/2 xL + xR )(2n/2 yL + yR ) = 2n xL yL + 2n/2 (xL yR + xR yL ) + xR yR ; b) xy = (2n/2 xL + xR )(2n/2 yL + yR ) = 2n xL yL + 2n/2 (xL yR + xR yL ) + xR yR = 2n xL yL + 2n/2 (xL yL + xR yR − (xL − xR )(yL − yR )) + xR yR . • Wir betrachten Laufzeiten der Form: T (n) = aT (n/b) + f (n),a ≥ 1, b > 1, wobei – n die Größe des Problems (bei uns Anzahl der Bits pro Zahl), – a die Anzahl der Teilprobleme pro Rekursionsschritt (bei uns 4, bzw 3), – n/b die Größe jedes Teilproblems (bei uns n/2), – f (n) die Zeit die außerhalb der rekursiven Aufrufe benötigt wird (Aufteilen und Zusammenfügen der Teilprobleme). a) Es werden rekursiv jeweils 4 Multiplikationen von zwei n/2-bit Integern durchgeführt. Aufgrund der 3 Addition zum Zusammenfügen der Ergebnisse haben wir f (n) = O(n). Die Laufzeit ist also durch T (n) = 4T (n/2) + O(n) gegeben. Mithilfe des MasterTheorems erhalten wir T (n) ∈ Θ(nr ), wobei r := log2 4 = 2. b) Hier benötigen wir nur 3 rekursive Multiplikationen. Die Laufzeit ist also gegeben durch: T (n) = 3T (n/2) + O(n). Mithilfe des Mastertheorems erhalten wir T (n) ∈ Θ(nr ), wobei r := log2 3 ≈ 1, 585. 4) Wir berechnen u und v in ggT(2, 3) = 2u+3v mittels des erweiterten euklidischen Algorithmus: A (2, 1, 0) (3, 0, 1) (2, 1, 0) B Quotient (3, 0, 1) 0 (2, 1, 0) 1 (1, −1, 1) 2 Damit gilt u = −1 und v = 1 und laut Satz 7.27 haben die ersten beiden Kongruenzen die eindeutige Lösung x ≡2·3 1 · 3 · 1 + (−1) · 2 · 2 ≡6 −1 Somit erhalten wir das neue Kongruenzensystem: x ≡6 −1 x ≡5 4 Eine weitere Anwendung des erweiterten euklidischen Algorithmus ergibt A B Quotient (6, 1, 0) (5, 0, 1) 1 (5, 0, 1) (1, 1, −1) 5 u = 1 und v = −1. Die eindeutige Gesamtlösung ist nun x ≡6·5 (−1) · 5 · (−1) + 1 · 6 · 4 ≡30 29 1 5) a) Das Wurfmuster des mit zwei Händen ausgeführten 3-Ball-Shower ist h(L, 1), (R, 2), (L, 2), (R, 3), (L, 3), (R, 1)i. Es handelt sich dabei nicht um eine Kaskade, da das Handmuster h1, 2, 2, 3, 3, 1i keinen Zykel durch die Menge der Hände beschreibt. b) Offensichtlich stellt für eine beliebige Anzahl h von Händen und b von Bällen jedes Kaskaden-Wurfmuster einen Zykel mit Periode h · b dar. Das Wurfmuster sei h(h1 , b1 ), (h2 , b2 ), (h3 , b3 ), . . .i. Dass das Handmuster (Ballmuster) einen Zykel beschreibt kann formal durch hm = hn (bm = bn ) genau dann wenn m ≡h n (m ≡b n), ausgedrückt werden. Weil wenn m ≡h·b n gilt, sowohl m ≡h n als auch m ≡b n gelten, erhalten wir (hm , bm ) = (hn , bn ). Um zu zeigen dass h·b minimal ist reicht es aus zu zeigen dass alle (hk , bk ) mit k ≤ h·b paarweise disjunkt sind. Dies wiederum folgt aus dem chinesischen Restsatz, der unter anderem besagt, dass die Abbildung von Zahlen kleiner gleich h · b auf Paare von Zahlen kleiner gleich h bzw. kleiner gleich b, gegeben durch x 7→ (x mod h, x mod b) eine Bijektion ist wann immer h und b teilerfremd sind. c) Wir zeigen dass jede (h, b)-Kaskade in g = ggT(h, b) Kaskaden partitioniert werden kann, welche wie folgt definiert sind: gegeben ein Wurfmuster wie im vorigen Punkt, dann sind (hm , bm ) und (hn , bn ) im selben Block wenn m ≡g n. Um zu sehen dass diese Konstruktion eine Partition erzeugt, zeigen wir dass Werfen die Partition erhält (Bälle können nicht zu Händen in einem anderen Block geworfen werden und vice versa). Dies folgt weil wenn hm = hn gilt, dann auch hm ≡h hn gilt (da das Handmuster einen Zykel darstellt und ein Zykel jede Hand genau einmal enthält). Aber dann gilt auch hm ≡g hn und auch die entsprechende Gleichung für Bälle. Nun müssen wir noch zeigen dass jeder Block Bi der Partition mit i ≤ g selbst wieder einen Zykel darstellt. Er hat ein Handmuster der Länge hg und ein Ballmuster der Länge b g und beinhaltet alle Hände hm und Bälle bm mit m ≡g i. Da wir mit einer Kaskade angefangen haben (also mit zyklischen Hand- und Ballmustern) sind wir fertig. (Da hg und gb teilerfremd sind, können diese Blöcke wegen des vorigen Punktes nicht weiter partitioniert werden.) 2