1 Etwas zu den ganzen und natürlichen Zahlen

Werbung
1 ETWAS ZU DEN GANZEN UND NATÜRLICHEN ZAHLEN
1
1.1
1
Etwas zu den ganzen und natürlichen Zahlen
Grundlegendes
Die Menge der natürlichen Zahlen bezeichnen wir mit dem Buchstaben N und meinen
damit die Menge N = {0, 1, 2, ...}. Eine formale Definition der Menge der natürlichen
Zahlen liefern die Peano Axiome (worauf wir hier nicht eingehen wollen).
Die Menge der ganzen Zahlen Z umfasst alle natürlichen Zahlen N sowie die Negativen
aller natürlichen Zahlen {−1, −2, ...}. (Da 0 gleich −0 ist, wird 0 daher nicht separat
genannt.)
Die ganzen Zahlen bilden einen Ring bzgl. der Addition und der Multiplikation, d. h.
sie können ohne Einschränkung addiert, subtrahiert und multipliziert werden. Dabei
gelten Rechenregeln wie das Kommutativgesetz und das Assoziativgesetz für Addition
und Multiplikation, außerdem gelten die Distributivgesetze. Das neutrale Element
bzgl. der Addition ist die 0 und bzgl. der Multiplikation die 1. Das additiv inverse
Element einer ganzen Zahl a ist −a.
Die Menge der ganzen Zahlen ist total geordnet in der Reihenfolge
... < −2 < −1 < 0 < 1 < 2 < ...
d.h. man kann je zwei ganze Zahlen vergleichen. Für zwei ganze Zahlen a und b gilt
also genau eine der folgenden Beziehungen:
a < b, a = b, b < a.
Ist c eine weitere ganze Zahl, dann folgt aus a < b und b < c stets a < c. Man
schreibt a ≤ b, wenn a = b oder a < b ist. Diese Ordnung ist verträglich mit den
Rechenoperationen, d.h.
aus a < b und c ≤ d folgt a + c < b + d und
aus a < b und 0 < c folgt a · c < b · c
Sei n ∈ N. Die n-te Potenz an einer ganzen Zahl ist rekursiv definiert: a0 := 1,
an+1 := a · an .
Definition 1.1 Sei s eine beliebige reele Zahl. Dann sei
bsc := max{a ∈ Z|a ≤ s}
dse := min{a ∈ Z|s ≤ a}
{s} := s − bsc
Lemma 1.2 Seien a, b ∈ Z mit b 6= 0. Dann gibt es eindeutig bestimmte q, r ∈ Z mit
0 ≤ r < |b|, so dass a = b · q + r gilt.
Mit den Bezeichnungen aus dem letzten Lemma heißt r der Rest von a bei der Division
durch b
1 ETWAS ZU DEN GANZEN UND NATÜRLICHEN ZAHLEN
1.2
2
Darstellung natürlicher und ganzer Zahlen
Natürliche Zahlen werden in der b-adischen Darstellung (b ∈ N, 2 ≤ b) durch eine
endliche Folge
a0 , a1 , ..., an
von Ziffern dargestellt, wobei die Werte aller Ziffern ai kleiner als b sind und der Wert
von an ungleich 0 ist, falls 0 < n. Jedes ai steht also für eine Ziffer. Üblicherweise
notiert man die Folge aber so:
an a1 ...a0
Man ordnet dieser Folge die Zahl
n
X
ai · b i
i=0
zu.
Satz 1.3 Seien b, k ∈ N mit 2 ≤ b. Dann existieren eindeutige n, a0 , a1 , ...an ∈ N mit
0 ≤ ai < b für 0 ≤ i ≤ n, so dass gilt:
k=
n
X
ai · b i
i=0
Man spricht von der Binär-, Dezimal- bzw. Hexadezimaldarsstellung wenn b = 2,
b = 10 bzw b = 16 ist. Bei der Hexadezimaldarstellung hat man die Ziffern 0 bis 9.
Hinzu kommen die Buchstaben A, B, C, D, E, F die für die Zahlen 10, 11, 12, 13, 14, 15
stehen. Man schreibt für beliebiges 2 ≤ b ∈ N:
k = (an an−1 ...a0 )b .
und sagt k hat n + 1 Stellen in der b - adischen Darstellung.
Lemma 1.4 Es gelte die Notation wie im letzten Satz. Dann ist n = blogb (k)c =
b ln(k)
c
ln(b)
Satz 1.5 Die Anzahl der benötigten Bits zur Darstellung einer ganzen Zahl k im
Computer ist höchstens blog2 (|k|)c + 2.
1.3
Aufwandsabschätzungen
Definition 1.6 Sei M eine Teilmenge eines normierten Raums und g : M −→ R
eine Abbildung. Dann ist O(g(x)) :=
{f : M −→ R | ∃ 0 < c ∃ y0 ∈ M ∀ y ∈ M , ||y0 || < ||y|| : |f (y)| ≤ c · |g(y)|}.
1 ETWAS ZU DEN GANZEN UND NATÜRLICHEN ZAHLEN
3
Vorsicht: Üblicherweise wird in der Mathematik bei der O-Notation das Gleichheitszeichen verwendet, d.h. man schreibt f (x) = O(g(x)) falls f (x) ∈ O(g(x)) ist.
In dieser Volesung wird ebenso verfahren. Es handelt sich dabei aber um eine rein
symbolische Schreibweise und nicht um eine Gleichheitsaussage. So folgt z.B. aus
f (x) = O(g1 (x)) und f (x) = O(g2 (x)) nicht, dass O(g1 (x)) und O(g2 (x)) als Mengen
gleich sind. Es gilt dann entweder O(g1 (x)) ⊆ O(g2 (x)) oder O(g2 (x)) ⊆ O(g1 (x)).
O(1) : konstanter Aufwand
O(log(n)) : logarithmischer Aufwand
O(n) : linearer Aufwand
O(n · log(n)) : quasilinearer Aufwand
O(n2 ) : quadratischer Aufwand
O(2n ) : exponentieller Aufwand
p
Beispiele: log(n) ∈ O( (n))
Satz 1.7 Seien a, b ∈ N mit 0 6= b < a. Für die Addition und die Subtraktion von
a und b benötigt man O(log(max(a, b))) = O(log(a)), für die Multiplikation und die
Division mit Rest O(log(a) · log(b)) viele elementare (binäre) Operationen.
Potenzieren
Seien k, l ∈ N. Durch l − 1 - fache wiederholte Multiplikation mit k ist es möglich
sukzessive k 2 , k 3 , ..., k l zu berechnen. Dies ist jedoch nicht die optimale Methode zur
Berechnung der Potenz einer Zahl k zu dem Exponenten l. Eine vom Rechenaufwand
her deutlich günstigere Methode ist die folgende:
P
Man schreibt l in der binären Darstellung l = ni=0 ai · 2i = (an an−1 ...a0 )2 , aj ∈ {0, 1},
j
j = 0, ..., n − 1, an = 1. Dann bildet man sukzessive die n Potenzen k 2 , j = 1, ...n
j
durch wiederholtes Quadrieren. Am Ende multipliziert man alle die Potenzen k 2
zusammen, für die aj 6= 0 ist. Dies kann man auch vom Speicherplatzbedarf noch
verbessern. Dazu folgender Algorithmus:
Dann berechnet man k l = k (an an−1 ...a2 a1 a0 )2 durch folgende Schritte,
k = k (1)2 = k (an )2
quadrieren
7→
quadrieren
7→
quadrieren
7→
k (an 0)2
multiplizieren mit kan−1
k (an an−1 0)2
7→
k (an an−1 )2
multiplizieren mit kan−2
k (an an−1 an−2 0)2
7→
k (an an−1 an−2 )2
multiplizieren mit kan−3
7→
k (an an−1 an−2 an−3 )2
...
quadrieren
7→
k (an an−1 ...a1 0)2
multiplizieren mit ka0
7→
k (an an−1 ...a0 )2 = k l .
Herunterladen