Aufgabe 1 Lösung Aufgabe 2

Werbung
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
Herunterladen