Aufgabe 1 Die Strompreise erhöhen sich um 13%. Um wie viel Prozent muss der Verbrauch mindestens sinken, damit die Kosten nicht steigen? Lösung Wir benutzen die Variable k für die aktuellen Kosten. Steigt der Preis um 13%, so müssen 113 wir die Kosten mit 1 + 13% = 1, 13 = 100 multiplizieren. Wenn wir den Verbrauch nun um x% senken, so können wir diese erhöhten kosten mit 1 − x% = 100−x 100 multiplizieren. Unser Ziel ist nun, x so zu bestimmen, dass die neuen Kosten nicht höher sind als die alten. Wir stellen folgende Gleichung auf: neue Kosten ≤ alte Kosten 113 100 − x · ≤k 100 100 Diese Ungleichung lösen wir nach x auf. k· k· 113 100 113 100 100 − x 100 100 − x · 100 100 − x 100 100 − x 100 · ≤k |:k ≤1 |· 100 113 100 ≤ 113 10000 100 − x ≤ 113 10000 −x ≤ − 100 113 10000 x ≥ 100 − = 11, 504... 113 ≤ 100 113 | · 100 | · 100 | − 100 | · (−1) Der Verbrauch muss also um mindestens 11,504...% sinken. Aufgabe 2 Überprüfen Sie die Äquivalenz der folgenden Aussagen: Kommunikativgesetze: φ ∨ ψ ⇔ ψ ∨ φ, φ ∧ ψ ⇔ ψ ∧ φ Assoziativgesetze: (φ ∨ ψ) ∨ χ ⇔ φ ∨ (ψ ∨ χ), (φ ∧ ψ) ∧ χ ⇔ φ ∧ (ψ ∧ χ) Distributivgesetze: φ ∨ (ψ ∧ χ) ⇔ (φ ∨ ψ) ∧ (φ ∨ χ), φ ∧ (ψ ∨ χ) ⇔ (φ ∧ ψ) ∨ (φ ∧ χ) Idempotenzgesetze: (φ ∨ φ) ⇔ φ, (φ ∧ φ) ⇔ φ Absorptionsgesetze: φ ∨ (φ ∧ ψ) ⇔ φ, φ ∧ (φ ∨ ψ) ⇔ φ Negation: φ ∨ ¬φ ⇔ W, φ ∧ ¬φ ⇔ F, ¬(¬φ) ⇔ φ De Morgan-Regeln: ¬(φ ∨ ψ) ⇔ ¬φ ∧ ¬ψ, ¬(φ ∧ ψ) ⇔ ¬φ ∨ ¬ψ 1 Lösung Wir überprüfen die Aussagen mit Hilfe von Wahrheitstabellen. Dabei geht man alle möglichen Belegungskombinationen der Variablen durch und überprüft, ob der Ausdruck links von ⇔ den gleichen Wahrheitswert hat wie der Ausdruck rechts. Für "wahr" und "falsch" können wir statt w und f auch 1 und 0 verwenden. Als Beispiel zeigen wir hier nur die Wahrheitstabelle für das erste Distributivgesetz: φ ∨ (ψ ∧ χ)⇔ (φ ∨ ψ) ∧ (φ ∨ χ) In die ersten drei Spalten schreiben wir die Variablen φ, ψ und χ und darunter alle möglichen Kombinationen ihrer Wahrheitswerte. In den folgenden Spalten setzen wir Schritt für Schritt die einzelnen Ausdrücke der Aussage zusammen. Zum Schluss vergleichen wir die rote Spalte mit der blauen. Die Wahrheitswerte in diesen beiden Spalten sind gleich, also ist der linke, rote Ausdruck genau dann wahr, wenn der rechte, blaue Ausdruck wahr ist. Damit haben wir die Aussage erfolgreich überprüft. φ ψ χ (ψ ∧ χ) φ ∨ (ψ ∧ χ) (φ ∨ ψ) (φ ∨ χ) 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 Die anderen Aussagen werden analog überprüft. 0 1 0 1 1 1 1 1 (φ ∨ ψ) ∧ (φ ∨ χ) 0 0 0 1 1 1 1 1 Aufgabe 3 Wiederholen Sie die Rechenregeln für Potenzen, Wurzeln und Logarithmen. Lösung Zunächst sollten wir uns die Bedeutung der Begrie Potenz, Wurzel und Logarithmus in Erinnerung rufen. Für eine natürliche Zahl n und eine reelle Zahl a ist an deniert als an = |a · a ·{z. . . · a} n mal Die Wurzel kann man folgendermaÿen denieren: a = xn ⇔ √ n a=x Analog denieren wir den Logarithmus so: a = bx ⇔ logb a = x Dabei nennen wir b die Basis des Logarithmus. Falls man nicht mehr alle Rechenregeln weiÿ, kann man in einem Buch oder bei Wikipedia nachschlagen. Üblicherweise ndet man eine Teilmenge der folgenden Regeln, die allerdings für 0 und für negative Zahlen mit vorsicht zu genieÿen sind. 2 Potenzgesetze: a0 = 1 1 a−r = r a√ √ m a n = n am = ( n a)m ar+s = ar · as ar ar−s = s a r (a · b) = ar · br a r ar = r b b r s (a ) = ar·s Wurzelgesetze: √ √ √ n n n a· b= a·b q √ m √ n a = m·n a r √ n a a √ = n n b b √ m √ n m n a = a √ m a n = n am m 1 a− n = √ n m a Logarithmengesetze: loga (x · y) = loga x + loga y x loga = loga x − loga y y loga (x + y) = loga x + loga 1 + xy loga (xr ) = r loga x 1 loga = − loga x x 1 1 √ loga n x = loga x n = loga x n loga r logb r = loga b logx y · logy x = 1 3 Aufgabe 4 Berechnen Sie x: a) 2x = 16, 3x = 9, 4x = 1 b) 3x = 31 , 2x = c) 2x = 1 √ , 3 16 1 16 , 3x = 5x = 1 √ 3 , 9 1 125 4x = 1 √ 5 64 Lösung Wir formen die Gleichungen so um, dass wir sie mit dem Logarithmus lösen können. Mit Hilfe der Gesetze aus Aufgabe 3 vereinfachen wir die Gleichungen dabei so weit, dass wir eigentlich keinen Taschenrechner brauchen, sondern die Lösung direkt sehen können. a) 2x = 16 ⇔ x = log2 16 = 4 3x = 9 ⇔ x = log3 9 = 2 4x = 1 ⇔ x = log4 1 = 0 b) 1 1 ⇔ x = log3 = −1 3 3 1 1 2x = ⇔ x = log2 = −4 16 16 1 1 ⇔ x = log5 = −5 5x = 125 125 3x = c) r 1 1 1 1 3 1 3 1 √ 2 = √ ⇔ x = log = log = log = log2 2 2 2 3 3 16 16 3 16 16 r 1 1 1 3 1 1 1 3 1 3x = √ ⇔ x = log3 √ = log3 = log3 = log3 = 3 3 9 9 3 9 9 9 r 1 1 1 1 5 1 5 1 √ 4x = √ = log ⇔ x = log = log = log4 4 4 4 5 5 64 64 5 64 64 x 1 1 −4 = · (−4) = 16 3 3 1 −2 · (−2) = 3 3 1 1 −3 = · (−3) = 64 5 5 Aufgabe 5 Bestimmen Sie: √ 1 1 a) log2 64, log2 1024, log2 1, log2 81 , log2 16 , log2 128 , log2 2, log2 213 √ √ 1 b) log3 9, log3 1, log3 243, log3 81 , log3 19 , log3 37 , log3 3, log3 33 √ c) log 100, log 10, log 1000, log 0, 001, log 0, 1, log 0, 00001, log 109 , log 10−6 , log 10 4 Lösung Hier ist gröÿtenteils simples Kopfrechnen gefragt. Man sollte fürs spätere Studium die Zweierpotenzen auswendig lernen, da sie in der Binärdarstellung immer wieder gebraucht werden. Wenn bei einem Logarithmus keine Basis angegeben ist, so ist die Basis 10 gemeint. a) log2 64 = 6 log2 1024 = 10 log2 1 = 0 1 log2 = −3 8 1 log2 = −4 16 1 = −7 log2 128 √ 1 log2 2 = 2 13 log2 2 = 13 · log2 2 = 13 b) log3 9 = 2 log3 1 = 0 log3 243 = 5 1 log3 = −4 81 1 log3 = −2 9 log3 37 = 7 · log3 3 = 7 √ 1 log3 3 = 2 √ √ 3 √ 3 log3 33 = log3 3 = 3 log3 3 = 2 5 c) log 100 = 2 log 10 = 1 log 1000 = 3 log 0, 001 = −3 log 0, 1 = −1 log 0, 00001 = −5 log 109 = 9 log 10 = 9 log 10−6 = −6 log 10 = −6 √ 1 log 10 = 2 Aufgabe 6 Berechnen Sie im Kopf, zwischen welchen ganzen Zahlen der Logarithmus liegt: 1 log2 3, log2 5, log2 , log3 2, log4 13, log5 36, log6 99, log 29, 5 3 Lösung Um diese Aufgabe zu lösen, schauen wir uns die Potenzen der jeweiligen Basis an. 20 = 1, 21 = 2, 22 = 4, . . . Weil 3 zwischen 2 = 21 und 4 = 22 liegt, liegt log2 3 zwischen 1 = log2 2 und 2 = log2 4. Die weiteren Ergebnisse ndet man analog. 1 = log2 2 < log2 3 < log2 4 = 2 2 = log2 4 < log2 5 < log2 8 = 3 -2 = log2 14 < log2 13 < log2 12 = -1 0 = log3 1 < log3 2 < log3 3 = 1 1 = log4 4 < log4 13 < log4 16 = 2 2 = log5 25 < log5 36 < log5 125 = 3 2 = log6 36 < log6 99 < log6 216 = 3 1 = log 10 < log 29, 5 < log 100 = 2 Aufgabe 7 Für welche Basis b ist die Gleichung erfüllt? logb 9 = 2, logb √ 1 3 = −2, logb 125 = 3, logb 8 = 9 4 6 Lösung Hier hilft es, die Gleichung mittels logb a = x ⇔ bx = a√wieder in die Potenz-Form zu 2 ⇔ logb 9 = 2 logb 19 = −2 bringen. logb 125 = 3 √ logb 8 = 34 b =9 b−2 ⇔ ⇔ ⇔ 1 9 = 3 b = 125 3 1 b4 = 82 ⇔ b= ⇔ ⇔ ⇔ 1 9 1 −2 9=2 1 = 92 = 3 b= b = sqrt[3]125 = 5 √ 2 4 b = 8 2·3 = 3 8 = 22 = 4 Aufgabe 8 Schreiben Sie die Dezimalzahl als Dualzahl, als Oktalzahl und als Hexadezimalzahl. Lösung Im Dezimalsystem gibt die Stellung einer Zier an, mit welcher Zehnerpotenz wir sie multiplizieren müssen. (92)10 können wir also als 9 · 101 + 2 · 100 lesen. Die tiefgestellte Zahl gibt an, in welchem System wir rechnen. Im Dualsystem funktioniert dies genau so. Die Zahl (1011)2 bedeutet also 1 · 23 + 0 · 22 + 1 · 21 + 1 · 20 = 1 · 101 + 1 · 100 = (11)10 . Um von der Dezimalzahl zur Dualzahl zu kommen, teilen wir immer wieder durch 2 und lesen zum Schluss die Reste in umgekehrter Reihenfolge ab. 92 : 2 = 46 Rest 0 46 : 2 = 23 Rest 0 23 : 2 = 11 Rest 1 11 : 2 = 5 Rest 1 5 : 2 = 2 Rest 1 2 : 2 = 1 Rest 0 1 : 2 = 0 Rest 1 (92)10 = (1011100)2 Für die Umrechnung ins Oktalsystem (Basis 8) kann man nach der gleichen Methode immer wieder durch 8 teilen. Einfacher geht es, wenn man je drei Ziern der Dualzahl zu einer Oktalzahl zusammen fasst. Das geht, weil 23 = 8 ist. 1 |{z} 011 |{z} 100 |{z} 1 3 ⇔ (1011100)2 = (134)8 4 Für die Umrechnung ins Hexadezimalsystem (Basis 16) benötigen wir sechs zusätzliche Ziersymbole, da wir 16 verschiedene Ziern darstellen können müssen. Im Hexadezimalsystem zählen wir also 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1a, 1b, ... Die Umrechnung vom Dualsystem ins Hexadezimalsystem kann durch Zusammenfassen von je 4 Ziern der Dualzahl geschehen, da 24 = 16 ist. 101 1100 |{z} |{z} 5 ⇔ (1011100)2 = (5c)16 c 7 Aufgabe 9 Schreiben Sie die Dezimalzahlen 23 und 13 als Dualzahlen und berechnen Sie die Summe und das Produkt dieser Zahlen in der Dualzahldarstellung. Lösung Zunächst rechnen wir ins Dualsystem um wie in Aufgabe 8. (23)10 = (10111)2 und (13)10 = (1101)2 . Die Addition und Multiplikation erfolgt schriftlich wie im Dezimalsystem. Achtung, der Übertrag beim Addieren kann mehrere Stellen lang sein! 1 0 1 1 1 · 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 + 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 1 1 Wir machen die Probe und wandeln die Ergebnisse wieder ins Dezimalsystem um. (23)10 + (13)10 = (10111)2 + (1101)2 = (100100)2 =(1 · 25 + 0 · 24 + 0 · 23 + 1 · 22 + 0 · 21 + 0 · 20 )10 = (32 + 4)10 = (36)10 (23)10 · (13)10 = (10111)2 · (1101)2 = (100101011)2 =(1 · 28 + 1 · 25 + 1 · 23 + 1 · 21 + 1 · 20 )10 = (256 + 32 + 8 + 2 + 1)10 = (299)10 Aufgabe 10 Beweisen oder widerlegen Sie die folgende Aussage: Eine natürliche Zahl n ∈ N ist genau dann ungerade, wenn 3n + 1 gerade ist. Lösung Wir wollen die Aussage beweisen und überlegen uns zunächst, was eine gerade bzw. ungerade Zahl ausmacht. n ∈ N ist gerade ⇔ ∃k ∈ N so dass n = 2k n ∈ N ist ungerade ⇔ ∃k ∈ N so dass n = 2k − 1 Dabei bedeutet ⇔ "genau dann wenn" und ∃ "es gibt (mindestens) ein". Nützlich für später ist auch ∀ "für alle". Man nennt ∃ den Existenzquantor und ∀ den Allquantor. Beweise für ⇔ muss man meistens in zwei Teilbeweise aufteilen. Zunächst setzen wir die linke Seite voraus und leiten daraus die rechte her. Danach machen wir es umgekehrt. 8 Behauptung: Beweis: n ∈ N ist ungerade ⇔ 3n + 1 ist gerade "⇒" n ∈ N ist ungerade ⇒ ∃k ∈ N so dass n = 2k − 1 ⇒ 3n + 1 = 3(2k − 1) + 1 = 6k − 2 = 2(3k − 1) = 2k̂ | {z } k̂=3k−1 ⇒ ∃k̂ ∈ N so dass 3n + 1 = 2k̂ ⇒ 3n + 1 ist gerade "⇐" Beweis durch Widerspruch: 3n + 1 ist gerade Annahme: n ist gerade ⇒ ∃k ∈ N so dass n = 2k ⇒ 3n + 1 = 3(2k) + 1 = |6k{z + 1} = 2k̂ + 1 ⇒ ∃k̂ ∈ N so dass 3n + 1 = 2k̂ + 1 k̂=3k ⇒ 3n + 1 ist ungerade. Widerspruch! Da die Annahme, n sei gerade, zum Widerspruch geführt hat, muss n ungerade sein. Das kleine Quadrat unten rechts markiert das Ende des Beweises. Statt dessen kann man auch q.e.d. (kurz für "quod erat demonstrandum") schreiben. Aufgabe 11 Beweisen Sie jeder der folgenden Behauptungen durch vollständige Induktion. a) Für alle n ∈ N, n ≥ 1 ist 7n − 1 durch 6 teilbar. b) Für alle n ∈ N, n ≥ 1 ist n3 − n durch 3 teilbar. c) Für alle n ∈ N, n ≥ 1 gilt: n X (4i − 3) = n(2n − 1) i=1 d) Für alle n ∈ N, n ≥ 1 gilt: n X i=1 i2 = n(n + 1)(2n + 1) 6 9 Lösung Zunächst führen wir ein wenig Notation ein: | bedeutet "teilt". 6|7n − 1 liest mal also als "6 teilt 7n − 1". zz bedeutet "zu zeigen". Wir benutzen zz als kleine Gedächtnisstütze um uns daran zu erinnern, was wir beweisen müssen. Die vollständige Induktion kann man sich am besten klar machen, wenn man sich die natürlichen Zahlen als eine unendlich lange Reihe Dominos vorstellt. Wenn wir etwas für alle natürlichen Zahlen beweisen wollen, ist das so, wie wenn wir alle Dominos umfallen lassen wollen. Dazu reicht es, den ersten Domino umzustoÿen (Induktionsanfang) und sicherzustellen, dass die Dominos so dicht beieinander stehen, dass der n-te Domino den n+1-ten zu Fall bringt (Induktionsschritt). Wenn der erste Domino umfällt und jeder Domino den nächsten zu Fall bringt, fallen alle Dominos um. Übertragen auf die natürlichen Zahlen zeigen wir, dass die Aussage für n = 1 gilt (Induktionsanfang). Dann nehmen wir an, sie gelte für ein beliebiges aber festes n (Induktionsvoraussetzung) und zeigen, dass sie dann auch für n + 1 gilt (Induktionsschritt). Damit haben wir alle Dominos umgestoÿen und die Aussage für alle n ∈ N gezeigt. a) Induktionsanfang (IA): n = 1: 7n − 1 = 71 − 1 = 7 − 1 = 6 Induktionsvoraussetzung (IV): 6|7n − 1 Induktionsschritt (IS): ist durch 6 teilbar. gelte für ein beliebiges aber festes n. zz 6|7(n+1) − 1 7(n+1) − 1 = 7 · 7n − 1 = 7 · 7n − 7 + 6 = 7 · (7n − 1) | {z } 6|7n −1 nach IV + |{z} 6 ⇒ 6|7(n+1) − 1 6|6 b) Induktionsanfang (IA): n = 1: n3 − n = 13 − 1 = 1 − 1 = 0 Induktionsvoraussetzung (IV): 3|n3 − n Induktionsschritt (IS): ist durch 3 teilbar. gelte für ein beliebiges aber festes n. zz 3|(n + 1)3 − (n + 1) (n+1)3 −(n+1) = n3 +3n2 +3n+1−n−1 = 3 n − n} | {z 3|n3 −n +3·(n2 −n) ⇒ 3|(n+1)3 −(n+1) nach IV c) Induktionsanfang (IA): n = 1: P1 i=1 (4i − 3) = 4 · 1 − 3 = 1 = 1 · (2 · 1 − 1) 10 Pn Induktionsvoraussetzung (IV): i=1 (4i aber festes n. Induktionsschritt (IS): zz Pn+1 i=1 − 3) = n(2n − 1) gelte für ein beliebiges (4i − 3) = (n + 1)(2(n + 1) − 1) (n + 1)(2(n + 1) − 1) =n(2(n + 1) − 1) + 2(n + 1) − 1 =n(2n − 1) + 2n + 2(n + 1) − 1 =n(2n − 1) + 4(n + 1) − 3 n X = (4i − 3) + 4(n + 1) − 3 IV einsetzen = i=1 n+1 X (4i − 3) i=1 d) Induktionsanfang (IA): n = 1: P1 Induktionsvoraussetzung (IV): festes n. Induktionsschritt (IS): zz Pn+1 i=1 i=1 i Pn 2 = 12 = 2 i=1 i i2 = = 1·2·3 6 = 1(1+1)(2·1+1) 6 n(n+1)(2n+1) 6 gelte für ein beliebiges aber (n+1)((n+1)+1)(2(n+1)+1) 6 (n + 1)((n + 1) + 1)(2(n + 1) + 1) 6 1 = [(n + 1)(n + 2)(2n + 3)] 6 1 = [n(n + 1)(2n + 3) + 2(n + 1)(2n + 3)] 6 1 = [n(n + 1)(2n + 1) + 2n(n + 1) + 2(n + 1)(2n + 3)] 6 1 = n(n + 1)(2n + 1) + 6n2 + 12n + 6 6 1 = [n(n + 1)(2n + 1)] + (n + 1)2 6 n X = i2 + (n + 1)2 IV einsetzen = i=1 n+1 X i2 i=1 11 Die Rechnungen in c) und d) können auch von unten nach oben gemacht werden d.h. man beginnt mit der Summe, zieht den letzten Term heraus, setzt die Induktionsvoraussetzung ein und muss dann nur noch umformen. Diese Richtung wird in Aufgabe 13c) benutzt. Man sollte ausprobieren, welche Richtung einem leichter fällt. Nützlich ist dabei die Polynomdivision. Wer sie noch nicht kennt, sollte sie nachschlagen z.B. bei Wikipedia. Aufgabe 12 Die Zahl 385 ist durch 7 teilbar, weil 38 − 2 · 5 = 28 durch 7 teilbar ist. Formulieren Sie diese Aussage als Teilbarkeitskriterium für die Zahl 7 und zeigen Sie Ihre Aussage. Lösung Wir teilen die Zahl 385 in zwei Teile auf |{z} 38 |{z} 5 . Damit wird 385 = 10a + b und a 38 − 2 · 5 = a − 2b. b Behauptung: 7|a − 2b ⇒ 7|10a + b Beweis: 7|a − 2b ⇒ 7|3(a − 2b) ⇒ 7|3(a − 2b) + 7(a + b) ⇒ 7|10a + b Aufgabe 13 1 2 3 4 5 6 7 Gegeben sei die folgende Funktion: i n t mysteryFunction ( i n t n ){ i n t mystery =0; f o r ( i n t i =0; i <n ; i ++){ mystery = mystery+2∗ i +1; } r e t u r n mystery ; } a) Führen Sie die Funktion mysteryFunction für die Eingabe n=4 auf dem Papier aus. b) Welchen Wert berechnet die Funktion mysteryFunction? c) Benutzen Sie die vollständige Induktion, um Ihre Vermutung zu beweisen. 12 Lösung a) Wir protokollieren die Schritte in einer Tabelle Zeile 1 2 3 4 5 3 4 5 3 4 5 3 4 5 3 6 Wirkung Wir übergeben den Wert n=4 an die Funktion. Wir setzen mystery=0. Die for-Schleife in Zeile 3-5 sagt: Für alle Zahlen, beginnend mit i=0, die kleiner als n sind, führe den Schleifeninhalt aus und erhöhe anschlieÿend i um 1. Wir setzen also i=0 und überprüfen, dass i=0<4=n ist. Das ist wahr, also führen wir als nächstes Zeile 4 aus. mystery=mystery+2*i+1=0+2*0+1=1 Erhöhe i um 1, also i=1, springe zu Zeile 3. Verlgeiche i=1<4=n: wahr. Weiter bei Zeile 4. mystery=mystery+2*i+1=1+2*1+1=4 Erhöhe i um 1, also i=2, springe zu Zeile 3. Verlgeiche i=2<4=n: wahr. Weiter bei Zeile 4. mystery=mystery+2*i+1=4+2*2+1=9 Erhöhe i um 1, also i=3, springe zu Zeile 3. Verlgeiche i=3<4=n: wahr. Weiter bei Zeile 4. mystery=mystery+2*i+1=9+2*3+1=16 Erhöhe i um 1, also i=1, springe zu Zeile 3. Verlgeiche i=4<4=n: falsch. Da die Schleifenbedingung nicht mehr stimmt, ist die Schleife zu ende und wir springen zu Zeile 6 Wir geben den Wert mystery=16 an den Nutzer der Funktion zurück. b) mysteryFunction berechnet das Quadrat der Eingabe. Das kann man an den Werten von mystery in den Zwischenschritten gut sehen. c) Die Funktion addiert die erstenP n ungeraden Zahlen um das Quadrat von n zu erhal- ten. Die Behauptung ist also wie in Aufgabe 11. n−1 i=0 (2i+1) = n2 . Der Induktionsbeweis funktioniert (2i + 1) = 2 · 0 + 1 = 1 = 12 Induktionsanfang (IA): n = 1: Pi=0 n−1 2 Induktionsvoraussetzung (IV): i=0 (2i+1) = n gelte für ein beliebiges aber festes n. Induktionsschritt (IS): zz P1−1 P(n+1)−1 i=0 n X = = (2i + 1) = (n + 1)2 (2i + 1) i=0 n−1 X (2i + 1) + 2n + 1 i=0 2 n + 2n + 1 IV einsetzen =(n + 1)2 13 Aufgabe 14 Beschreiben Sie den folgenden Ablauf als Algorithmus: Gang zur Telefonzelle, um Person X mit Nummer Y anzurufen und ihr mitzuteilen: "Dein Paket ist angekommen". Der Ausgangspunkt ist 10 m von der Telefonzelle entfernt. In der Tasche sind zwei 10-Cent-Stücke und ein Zettel mit X und Y. Beschreibungsebenen: a) Normalfall, keine Probleme. b) Mit Berücksichtigung einiger gängiger Probleme (z.B. Münze fällt durch, X meldet sich nicht). c) Mit Berücksichtigung seltener Probleme (z.B. Kabine geschlossen, Autounfall in der Nähe). Um den Grad der Detaillierung einzuschränken, sollte die Beantwortung der ganzen Aufgabe eine DIN A4 Seite nicht überschreiten. Lösung Zu dieser Aufgabe gibt es keine richtige Musterlösung. Man sollte einfach einmal anfangen, den Ablauf zu beschreiben. Dabei wird man sehr schnell feststellen, dass man wirklich sehr genau sein muss. Ein Roboter, der den Algorithmus ausführt, würde bei "Nimm den Hörer ab. Wähle die Nummer Y." wahrscheinlich den Hörer vom Telefon abnehmen und dann fallen lassen, da er die Hand ja zum Wählen braucht und man ihm nicht gesagt hat, dass er den Hörer neben sein Ohr bewegen und dort festhalten muss. Besser wäre vielleicht "Greife den Hörer mit der linken Hand und halte ihn so, dass die Ohrmuschel möglichst nah neben deinem Ohr und die Sprechmuschel möglichst nah neben deinem Mund ist. Wähle mit der rechten Hand die Nummer Y." Auÿerdem wird man bald feststellen, dass es nie möglich ist, alle möglichen Fehler vorauszuahnen. Beim Programmieren geht man häug vom korrekten Ablauf aus und gibt, falls doch ein Fehler auftritt, "Fehler während Tätigkeit xy" aus. Aufgabe 15 Der folgende Algorithmus verwendet das sogenannte Horner-Schema, um den Wert des Polynoms P (x) = n X ak xk = a0 + x(a1 + x(a2 + · · · + x(an−1 + xan ) · · · )) k=0 14 an der Stelle x zu berechnen. 1 y ← 0; 2 i ← n; 3 while i ≥ 0 do 4 y ← ai + x · y; 5 i ← i − 1; 6 end a) Werten Sie das Polynom 5x4 + 3x2 − 7x − 12 an der Stelle x = −3 mit dem Horner- Schema aus. b) Wie viele Additionen und Multiplikationen führt der Algorithmus für ein Polynom vom Grad n aus? c) Erörtern Sie die Korrektheit des Algorithmus. d) Schreiben Sie einen Algorithmus, der jeden Term des Polynoms von Grund auf neu berechnet. Wie groÿ ist die Laufzeit dieses Algorithmus? Wie ist sie im Vergleich zu der des Horner-Schemas? Lösung a) Zunächst überlegen wir uns, wie das Polynom 5x4 + 3x2 − 7x − 12 in der Darstellung P aussieht: a4 = 5, a3 = 0, a2 = 3, a1 = −7, a0 = −12 und n = 4. Nun verwenden wir den Algorithmus und protokollieren die Schritte mit, wie in Aufgabe 13. Dabei setzen wir x = −3. n k k=0 ak x 15 Zeile 1 2 3 4 5 3 4 5 3 4 5 3 4 5 3 4 5 3 Wirkung y=0 i=n=4 Die while-Schleife in Zeile 3-6 sagt: Solange i ≥ 0 ist, führe den Schleifeninhalt aus. Wir überprüfen, dass i = 4 ≥ 0 ist. Das ist wahr, also führen wir als nächstes Zeile 4 und 5 aus. y = a4 + x ∗ y = 5 + (−3) ∗ 0 = 5 i = i − 1 = 3, gehe zu Zeile 3 i = 3 ≥ 0 ist wahr. Weiter bei Zeile 4. y = a3 + x ∗ y = 0 + (−3) ∗ 5 = −15 i = i − 1 = 2, gehe zu Zeile 3 i = 2 ≥ 0 ist wahr. Weiter bei Zeile 4. y = a2 + x ∗ y = 3 + (−3) ∗ (−15) = 48 i = i − 1 = 1, gehe zu Zeile 3 i = 1 ≥ 0 ist wahr. Weiter bei Zeile 4. y = a1 + x ∗ y = −7 + (−3) ∗ 48 = −151 i = i − 1 = 0, gehe zu Zeile 3 i = 0 ≥ 0 ist wahr. Weiter bei Zeile 4. y = a0 + x ∗ y = −12 + (−3) ∗ (−151) = 441 i = i − 1 = −1, gehe zu Zeile 3 i = −1 ≥ 0 ist falsch. Die Schleife ist fertig. Das Ergebnis ist y = 441 b) Wir können zählen, wie oft jede Zeile des Algorithmus ausgeführt wird. Zeile 1 und 2 werden je einmal ausgeführt. Zeile 4 und 5 je n + 1 mal, nämlich für jedes i von n bis 0 einmal. Additionen und Multiplikationen nden wir nur in Zeile 4 (1 Addition, 1 Multiplikation) und 5 (1 Addition). Also erhalten wir insgesamt n + 1 Multiplikationen und 2n + 2 Additionen. Man sagt "Die Laufzeit des Algorithmus liegt in der Gröÿenordnung von n" und schreibt "Die Laufzeit des Algorithmus liegt in O(n)". c) Der Algorithmus ist korrekt, da er das Hornerschema von innen nach auÿen ausführt. Im ersten Schleifendurchlauf wird nur an zwischengespeichert. Im zweiten Durchlauf berechnet er (an−1 + xan ), im dritten (an−2 + x(an−1 + xan )) und so weiter, bis das komplette Polynom berechnet ist. Die Eigenschaft "Nach dem k-ten Schleifendurchlauf sind die (k − 1)-ten Klammern von innen berechnet worden." nennt man Schleifeninvariante. Auÿerdem bricht die Schleife bei i=-1 ab, das heiÿt, dass das Polynom tatsächlich genau bis nach auÿen zu a0 + x(. . .) berechnet wird. Damit ist der Algorithmus korrekt. 16 d) Ein möglicher Algorithmus ist: 1 y ← 0; 2 i ← 0; 3 while i ≤ n do 4 z ← 1; 5 j ← 1; 6 while j ≤ i do 7 z ← z · x; 8 j ← j + 1; end 9 y ← y + ai · z; 10 11 end Der Algorithmus geht die Terme der Reihe nach von a0 x0 bis an xn durch. Dabei berechnet die innere while-Schleife in Zeile 6-9 immer den Term xi und anschlieÿend wird in der äuÿeren Schleife ai xi zu dem bereits berechneten Polynom addiert. Die äuÿere Schleife läuft n+1 mal durch, wobei die innere Schleife i Multiplikationen P macht und Zeile 10 eine Addition und eine Multiplikation. Das ergibt ni=0 i + 1 = n(n+1) Multiplikationen und n + 1 Additionen. Wir sagen "Die Laufzeit liegt in 2 2 O(n )". Der Algorithmus ist also langsamer als das Horner-Schema, dessen Laufzeit in O(n) lag. Zur Verdeutlichung überlegt man sich, was bei einem Polynom vom Grad 2n passieren würde. Das Hornerschema würde doppelt so viel Zeit brauchen, wie für Grad n. Der neue Algorithmus würde aber viermal so viel Zeit brauchen. Aufgabe 16 Eine Folge von Zahlen x1 , x2 , x3 , . . . sei deniert durch x1 = 1, xk+1 = xk für k ≥ 1. xk + 2 a) Berechnen Sie x2 , x3 und x4 . b) Beweisen Sie xn = 1 2n −1 für alle n ≥ 1. 17 Lösung a) x1 1 1 = = x1 + 2 1+2 3 1 1 1 x2 x3 = = 1 3 = 37 = x2 + 2 7 3 +2 3 x2 = x4 = x3 = x3 + 2 1 7 1 7 +2 b) Beweis durch vollständige Induktion: Induktionsanfang (IA): n = 1: x1 = 1 = xn+1 = xn xn + 2 = zz xn+1 = IV einsetzen 1 7 15 7 = 1 15 1 21 −1 Induktionsvoraussetzung (IV): xn = 2n1−1 Induktionsschritt (IS): = gelte für ein beliebiges aber festes n. 1 2(n+1) −1 1 2n −1 1 2n −1 + 2 = 1 2n −1 n 2·(2 −1)+1 2n −1 = 2· (2n 1 1 = (n+1) − 1) + 1 2 −1 18