1
Vertiefungsstoff
1. Mathematische GrundlagenDer Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische Begriffe (u.a. Menge, Funktion) und die dazugehörenden formale Notationen in Erinnerung.
Themen
Mengen
Relationen
Funktionen
Quantoren und logische Opertoren
Ordnungen
induktiv definierte Mengen
Maßeinheiten
Wofür braucht man eine Formelsprache?
Viele Jahrhunderte betreib man Mathematik ohne eine spezielle Formelsprache. Aufgaben wie
3*27 +x² = 106 wurden verbal formuliert. Lösungen wurden häufig durch Ausprobieren und schrittweise Näherungen ermittelt.
Doppelter falscher Ansatz (Regula falsi): Rate für x zwei Werte und setze diese ein. Mache abhängig von den Abweichungen neue Schätzungen. (Iterationsverfahren!!)
Heute: Formelsprache• verständlicher• Formelmanipulation möglich
Mathematik: folgt noch Musik: NotenChemie: FormelnTanzen: TanzschritteSchach: Schachnotation…
Adam Ries: Rechenbüchlein
La Cachucha, F. A. Zorn: Wikimedia Commons
Mengen
x M
x M
x1 , ... , xn M x1 M und ... und xn M
Definition: MengeEine Menge ist eine Zusammenfassung von (endlich oder unendlich vielen) verschiedenen Dingen, welche Elemente dieser Menge genannt werden.
das Ding x ist Element der Menge Mx ist Element von Mx ist in MM enthält x
x ist kein Element von Mx ist nicht in MM enthält x nicht
Notation von Mengen
M = { x1 , ... , xn } falls die Menge M genau die Elemente x1 , ... , xn enthält.
M = { x | p(x) } Das heißt, M ist die Menge, die all diejenigen Objekte x enthält, welche die Bedingung p(x) erfüllen.
Beispiele:
= { } die leere Menge Bool = { T, F } Menge der WahrheitswerteNat = = { 1, 2, 3, ... } Menge aller natürlichen ZahlenUInt = 0 = { 0,1, 2, 3, ... } (unsigned int) Menge aller natürlichen Zahlen mit 0Int = = { ... , -3, -2, -1, 0, 1, 2, 3, ... } Menge der ganzen ZahlenRational = = { <alle Brüche> } Menge aller rationalen ZahlenReal = = { <alle rationalen und irrationalen Zahlen> } Menge aller reellen ZahlenEven = { x | x und x gerade } = { 2x | x } Odd = { x | x und x ungerade } = { 2x + 1 | x }
Mengenoperationen
M1 M2 = { x | x M1 oder x M2 }
M1 M2 = { x | x M1 und x M2 }
Vereinigung
Durchschnitt
M1 \ M2 = { x | x M1 und x M2 }Differenz
Beispiele Even Odd = Int Even Odd = { } Nat = UInt \ { 0 } { 2,3,5,7 } { 2,4,6,8 } = { 2,3,4,5,6,7,8 } { 2,3,5,7 } { 2,4,6,8 } = { 2 }
M1
M2
M1 M2
M1 M2
M1 \ M2
M2 \ M1
Teilmengen und Gleichheit
Definition: Teilmenge / ObermengeEine Menge M ist eine Teilmenge einer Menge N, wenn jedes Element von M auch zu N gehört.
Notation: M NM ist eine Teilmenge von N, N ist Obermenge von M.
Definition: Gleichheit von MengenZwei Mengen M und N sind gleich, geschrieben M = N, wenn sowohl M N als auch N M gilt.
AnmerkungUm nachzuweisen, dass zwei Mengen M und N gleich sind, zeigt man:i) N M (d.h., jedes Element aus N ist auch in M enthalten) und ii) M N (d.h., jedes Element aus M ist auch in N enthalten)
Teilmengen und Gleichheit
Beispiele : Für k Nat, k 0, sei kNat = { x Nat | k teilt x }
2Nat= { 2, 4, 6, 8, .... } 3Nat= { 3, 6, 9, 12 .... } 6Nat= { 6, 12, 18, 24, .... }
Dann gilt: 6Nat 3Nat 6Nat 2Nat und somit 6Nat 3Nat 2Nat es gilt aber auch: 3Nat 2Nat 6Nat und somit 6Nat = 3Nat 2Nat
x ist Vielfaches von k.
Kartesische Produkte
Definition: n-Tupel (Array, Liste mit n Elementen)Sind x1 M1 , ... , xn Mn Elemente von Mengen M1 , ... ,Mn , so lässt sich ein
neuartiges zusammengesetztes Element (x1 , ... ,xn) bilden, ein n-Tupel.
Im Fall n = 2 heißt das aus x und y gebildete Paar (x,y) Tupel oder geordnetes Paar.
Im Fall n = 3 sagt man Tripel, im Fall n=4 von Quatrupel, im Fall n=5 Quintupel.
Beispiel : UInt Bool = { (0,T), (0,F), (1,T), (1,F), (2,T), (2,F), ... }
Definition: Kartesisches Produkt (Produktmenge)Sind M1 , ... ,Mn Mengen, so heißt die Menge:
M1 ... Mn = { (x1 , ... ,xn ) | x1 M1 , ... , xn Mn }
das kartesische Produkt von M1 , ... ,Mn
Definition: Gleichheit zwischen n-Tupel (x1 , ... ,xn ) = (y1 , ... ,ym )
genau dann, wenn n = m und x1 = y1 und x2 = y2 und ... und xn = ym
Mengenpotenzen
Definition: Mengenpotenz
Ist M1 = M2 = ... = Mn = M , so heißt die Menge Mn mit
M M ... M = Mn
n-mal
die n-te Potenz von M. Die Elemente von Mn heißen auch Folgen der Länge n über M.
Beispiele: M0 ist eine einelementige Menge, die nur das 0-Tupel () enthält,
also ist M0 = { ( ) } für jede Menge M.
Bool3 = { (F,F,F), (F,F,T), (F,T,F), (F,T,T), (T,F,F), (T,F,T), (T,T,F), (T,T,T) } 2 = 2-dimensionaler Raum, 3 = 3-dimensionaler Raum 2 = { (1,1), (1,2), (1,3), ...
(2,1), (2,2), (2,3), ... … }
Potenzmenge
Definition: PotenzmengeIst M eine Menge, so ist die Menge aller Teilmengen von M die
Potenzmenge (M) von M, also: (M) := { N | N M }.
Beispiele – ( {1,2,3} ) = { {1} {2} {3} {1,2} {1,3} , {2,3} , {1,2,3} }– (Bool) = { { } { T } , { F } , { T, F } }
Achtung: Potenzmenge ist nicht zu verwechseln mit Mengenpotenz !!!
Mächtigkeit von Mengen
Fall 1: M hat nur endlich viele Elemente. Dann kann man M eine natürliche Zahl n zuordnen, wobei n die Anzahl der Elemente von M angibt. Schreibweise: |M| = n.
Fall 2: M hat unendlich viele Elemente. Dann gibt es keine natürliche Zahl n, die die Anzahl der Elemente von M angibt. Aber: Oft kann man durch Angabe einer 1:1-Zuordnung die Menge M mit der Menge der natürlichen Zahlen oder der Menge reellen Zahlen vergleichen.Findet man z.B. eine derartige Abbildung zwischen M und , dann hat M genauso viele Elemente wie , d.h.: gilt |M| = ||.Wenn |M| = || heißt M abzählbar, wenn |M| = || heißt M überabzählbar.
Definition: Mächtigkeit einer MengeDie Mächtigkeit oder Kardinalität einer Menge ist M ein Maß für deren Größe. Sie gibt an wie viele Elemente M besitzt.
Mächtigkeit von Mengen
Beispiele– |{a,b,c}| = 3 – | – |Bool| = |{T,F}|= 2, |SQLBool| = |{T,F,U}| = 3 (U=Unknown, 3-wertige Logik)– || ist abzählbar– || = ||– || ist überabzählbar, || ||– | ({1,2,3}) | = 8 = 23 ;;; Mächtigkeit der Potenzmenge ({1,2,3})
RelationenDefinition: k-stellige Relation
Eine k-stellige Relation R ist eine Teilmenge eines kartesischen Produktes M1 M2 ... Mk.
Ist R Mk , so heißt R eine k-stellige Relation auf M.
Beispiel: R {1,2,3} x {a,b,c,d}
mit R = {(1,a), (1,d), (2, b), (2,d), (4,b), (4,d)}
M1 Beziehung zwischen Elementen
1
M2
2
4
a
b
c
d
3
Relationen
Definition: Charakteristisches PrädikatIst R M1 M2 ... Mk eine Relation, so können wir das
charakteristische Prädikat R dieser Relation definieren:
R (m1 , ... , mk ) = {
Ist umgekehrt ein Prädikat auf M1 M2 ... Mk , dann können wir eine zu diesem Prädikat gehörende Relation RP definieren:
R = { (m1 , ... , mk ) | (m1 , ... , mk ) = T }
T falls (m1 , ... , mk ) R
F sonst
Beispiel
R {1,2,3} x {a,b,c,d} , mit R = {(1,a), (1,d), (2, b), (2,d), (3,b), (3,d)}
dann gilt u.a.: R (1,a) = T aber R (1,c) = F
Definition: Funktion (auch „eindeutige Abbildung“ oder Operation)Es seien A und B Mengen. Eine Funktion f von A nach B ordnet jedem Element x aus A genau ein Element y aus B zu.
A heißt Definitionsbereich (oder Urbildbereich) von f und B heißt Wertebereich (oder Bildbereich) von f.
Notation und Sprechweise:
Funktionen
Beispiel 1
Es seien A=Nat und B=Nat:
succ : Nat Nat
succ(x) = x+1 bzw. x x+1
T, falls n gerade
F, falls n ungerade
Beispiel 2
even : Nat Bool
even(n) = {
f : A B „f ist eine Funktion von A nach B“f(x) = y „f angewandt auf x liefert den Wert y“x y „x wird auf y abgebildet“
Funktionen
BemerkungEine Funktion ist eine spezielle Relation, das heißt eine Menge von Paaren:– f Df Wf
– Für jedes Element aus Df enthält f genau ein Element aus Df Wf.
Beispielf: , f(x) = x²
Das heißt: f = {(1,1), (2,4), (3,9), (4,16), (5, 25), …} .
Eigenschaften von FunktionenDefinition: surjektive Funktion
Eine Funktion f : A B ist surjektiv, (oder f ist eine Surjektion)genau dann, wenn gilt:
Für jedes y B gibt es stets ein x A mit f(x) = y.
Beispiele abs: Int UInt, abs(x) = x>0 ? x : -x mod2 : Int {0, 1}, mod2(x) = 0, falls x gerade
1, falls x ungerade
xx
x
x
x
A Bf Jedes Element
aus B bekommt mindestens einen Pfeil ab.
Eigenschaften von Funktionen
Beispiel nachfolger : UInt UInt, mit nachfolger(x) = x + 1 0 bekommt keinen Pfeil ab!Wenn f injektiv ist, ist f ist umkehrbar: f-1: f(A)A, f(A) := {f(a): a A}, d.h., man kann die Pfeile umdrehen. Der Wertebereich ist die Menge der blauen Kästchen.Wichtig z.B. für Codes: Nur injektive Codes können dekodiert werden.
xx
x
x
x
A Bf Jedes Element aus B bekommt höchstens einen Pfeil ab.
Definition: injektive FunktionEine Funktion f : A B ist injektiv, (oder f ist eine Injektion)
genau dann, wenn gilt:für x1, x2 A gilt: ist f(x1) = f(x2), dann ist auch x1 = x2.
x
x
Eigenschaften von FunktionenDefinition: bijektive Funktion
Eine Funktion f : A B ist bijektiv (oder f ist eine Bijektion)genau dann, wenn gilt:
f ist surjektiv und f ist injektiv
xx
x
x
x
A Bf Alle Elemente aus B werden von genau einem Pfeil getroffen.
Eigenschaften bijektiver Funktionen: Ist f : A B bijektiv, dann:
lässt sich zu f eine Umkehrfunktion f -1 : B A angeben (d.h., man kann die Pfeile auch umdrehen); der Wertebereich ist B.
müssen die Mengen A und B gleich viele Elemente umfassen.
Mächtigkeit von MengenFrage: Wie überprüft man, ob eine Menge M genauso viele
Elemente hat wie Nat?
Antwort: Man prüft, ob eine Bijektion f : M existiert.
Falls es solch eine Bijektion gibt, dann gilt: |M| = ||d.h., M hat genauso viele Elemente wie , d.h. M ist abzählbar.
BeispielBehauptung: Die Menge der geraden natürlichen Zahlen GNat ist ebenso mächtig wie die Menge der natürlichen Zahlen Nat.Die Behauptung ist richtig, da es eine Bijektion gibt:
f : GNat Nat: f(x) = ½ * x2 1 = ½ * 2
4 2 = ½ * 4
6 3 = ½ * 6
8 4 = ½ * 8
…
Partielle FunktionenDefinition: partielle Funktion
Eine partielle Funktion aus A nach B ist eine Funktion f : Df B, wobei Df A.
Beispiele pred : Nat Nat, Dpred = { x Nat | x > 0 }, pred(x) = x - 1
log : Real Real, Dlog = { x Real | x > 0 }
x
x x x
xx
xx
A B
Df
f
Wichtig für Programmiersprachen, da diese nicht so viele Datentypen kennen.
Gleichheit von Funktionen
Definition Sind f1 : A1 B1 und f2 : A2 B2 Funktionen, dann gilt f1 = f2 gdw:
(i) D(f1) = D( f2)
(ii) W(f1) = W( f2)
(iii) Für jedes x D( f1) gilt : f1(x) = f2(x).
Beispiel
min1 : Int Int Int
min1(x,y) = {min2 : Int Int Int
min2(x,y) = {x falls x < y
y sonst
x falls x ≤ y
y sonst
Es gilt min1 = min2, da min1(x,y) = min2(x,y) für alle x, y Int.
Funktionen/Operationen/Abbildungen
Beispiele :
+ : Nat Nat Nat +(x,y) bzw. x+y Funktions-/Operatorschreibweise
min : Int Int Int
min(x,y) = {x falls x < y
y sonst
if : Bool Nat Nat Nat
if(b,x,y) = { x falls b=T
y falls b=F
Definition: n-stellige Funktion/Operation/AbbildungEine Funktion f : A1 A2 ... An B heißt auch n-stellige
Funktion, Operation oder Abbildung.
Die Stelligkeit einer solchen Funktion/Operation/Abbildung ist n. Man sagt auch, f hat n Argumente.
Eine Abbildung f : An A heißt n-stellige innere Funktion/Operation/Abbildung auf A.
: Real Real
= y, wenn y² = x
D( ) = { x | x >= 0 }
x
Schreibweisen für Funktionsaufrufe
Präfix-Schreibweise: f(x,y,z) (übliche Funktionsschreibweise)
Infix-Schreibweise: x f y (z. B.: x+y) x f1 y f2 z (z. B.: b ? x : y = if(b,x,y))
Postfix-Schreibweise: x y z f (z. B.: die Fakultätsfunktion n!, x‘ = NOT(x) )
Gemischte Schreibweise: x f (y, z) (z. B.: wolfgang.alter('2009/10/15')) f1 x f2 y f3 z (z. B.: if b then x else y = if(b,x,y))
Anmerkungen
Je nach Schreibweise bevorzugt man den Begriff Funktion oder Operation.
Darüber hinaus gibt es weitere Spezialformen. Zum Beispiel: (sprich „x quer“) für NOT(x) oder ¬x.x
Funktionen in Programmiersprachen
Funktionen sind ein zentraler Bestandteil so gut wie aller Programmiersprachen.
Vorteile – der Code wird kürzer
(Eine Funktion wird einmal definiert und beliebig oft aufgerufen.) – Abstraktion (Details der Funktionsdefinition werden „gekapselt“.) – Mächtigkeit (Eine Funktion kann rekursiv (induktiv) definiert werden, Funktionen
können an andere Funktionen als Argumente übergeben werden.)
Funktionen in ProgrammiersprachenEine Funktion besteht aus zwei Teilen:
Signatur und Implementierung.
Signatur Name der Funktion Typen der Parameter (= Definitionbereich) meist auch Namen der Parameter Ergebnistyp der Funktion (= Wertemenge)
Implementierung Festlegung der Berechnungsvorschrift,
d.h. Angabe eines Algorithmuses zur Berechnung der Funktionswerte.
Beispiel (AS3){ var result: Number = 0.0; var
s: Number = 1.0; var i: int = 1;
while (i < 12) { result += s*pow(x,i)/fak(i); i +=2; s=-s; };
return result;
}
Beispielsin: [-1,1] (Mathe)double sin(double x) (JAVA)sin(x: Number): Number (AS3)
Taylorreihe (für Sinusberechnung, es gibt bessere Algorithmen):
Große/negative x-Werte sollten ins Intervall [0,/2] verschoben werden: sin(x+n) = sin(x), sin(+x) = sin(-x), sin(x) = sin(x).
...!9!7!5!3!1
)sin(97531
xxxxxx
Funktionen, Prozeduren, Methoden
Definition Seiteneffekt: Der Zustand des Programms wird geändert. Beispiele: Variableninhalt, Dateiinhalt, Bildschirmausgabe ändern.
In Programmiersprachen gibt es:– Funktion: Ergebnis, keine Seiteneffekte (z.B. sin(x))
Signatur: function sin(x: double): double; (Delphi)– Prozedur: kein Ergebnis, Seiteneffekte (z.B. print("Hallo"))
Signatur: procedure print(const x: String); (Delphi)– gemischt: Funktion+Prozedur: Ergebnis und/oder Seiteneffekt
Meist erlaubt (JAVA, C/C++, AS3 …), Trick: Datentyp void. Signatur: void print(String x) (JAVA) print(x: String): void (AS3) – Methode: Funktion/Prozedur mit Extraparameter (this, self, me).
Die Definition einer Methode erfolgt innerhalb einer Klassen oder innerhalb eines bestimmten Objektes.
Funktionen, Prozeduren, Methoden
Beispiel „Deklarieren Sie eine Funktion/Methode/…“
heißt „Geben Sie die Signatur der Funktion/Methode/… an.“
„Definieren Sie eine Funktion/Methode/…“ heißt „Geben Sie Signatur und Implementierung der Funktion/Methode/… an“.
Alternativbezeichungen– (Funktions-/Prozedur-/Methoden-)Kopf = Header = Signatur – (Funktions-/Prozedur-/Methoden-)Rumpf = Body = Implementierung
DefinitionenDeklaration einer … = Angabe der Signatur von … Definition einen … = Angabe der Signatur und der
Implementierung von …
Funktionen, Prozeduren, Methoden
DefinitionenParameter = Name einer Variablen in einer Funktions/…-Signatur.Argument = Wert der bei einem Funktions/…-Aufruf übergeben wird.
BeispieleGegeben sei die Signatur sin(x: Number): Number.
x ist ein (der) Parameter der Funktion.
3*PI ist das Argument des Funktionsaufrufes sin(3*PI). Das heißt, die Variable x hat während der Berechnung des Ergebnisses den Wert
9.4247778.
sin(2) ist das Argument des Funktionsaufrufes cos(sin(2)).
Die Prozedur void move(int x, int y) hat zwei Parameter: x und y.
Wenn a=4 gilt, so sind 50 und 8 die Argumente des Aufrufes move(50,2*a).
Projektionen
p2 : Int Int Int
(x,y) y
Anwendung: z.B. Bestimmung der y-Koordinate eines Bildschirmpunktes.
Definition: Projektion Es seien folgende Funktionen gegeben:
p1 : M1 M2 ... Mm M1
. . .
pm : M1 M2 ... Mm M m
Wenn pi das i-te Element aus dem Tupel extrahiert
pi (x1 , ... , xm) xi Mi
heißt pi die i-te Projektion des n-Tupels (x1 , ... , xm).
Beispiel
Komposition von FunktionenDefinition: Komposition von Funktionen
Sind f : A B und g : B C Funktionen, so ist die Komposition g f definiert als Hintereinanderausführung von f und g:
g f : m g(f(m)) (m A, g(f(m))C) Dgf = { x | x Df und f(x) Dg }Die Komposition ist auch eine Funktion.
f : A B g : B C
g f : A C
x
x
xx
x
x
xx
A Bf Cg
Erst alle Elemente x aus A mit f nach B abbilden, dann die f(x) aus B mit g nach C abbilden.
g(f(x)) y C
Komposition von Funktionen
Beispiel
Aus den Operationen
f2 : Int Int Int
(x,y) y
f1 : Nat Nat+ Nat
(x,y) x div y
erhält man die zweistellige Operation : (x,y) (x div y) * y.
g : Int Int Int
(x,y) x * y
Definition: Verallegemeinerte KompositionEs seien f1 : A1 A2 A3 ... Am B1
. . .
fk : A1 A2 A3 ... Am Bk und
g : B1 B2 ... Bk C Funktionen. Dann definiert man durch die Zuordnung
(x1 , ... , xm) g(f1 (x1 , ... , xm), ... , fk (x1, ... , xm))
eine Funktion mit der Funktionalität A1 A2 ... Am C
Spezialfall: Prädikate (Boole‘sche Funktionen)
pyth : Nat Nat Nat Bool
pyth(x,y,z) = {Es gilt z.B.: pyth(3, 4, 5); es gilt nicht: pyth (7, 11, 13)
T falls x2 + y2 = z2
F sonst
even : Nat Bool
even(x) = {Es gilt even(42) und ¬even(43).
T falls x gerade
F sonst
Beispiele
= : Nat Nat Bool
=(x,y) = {Es gilt =(3, 3) bzw. 3 = 3
T falls x = y
F sonst
Definition: PrädikatEine Funktion p : A1 A2 ... An Bool heißt Prädikat auf A1 A2 ... An.
Ist A1 = A2 = ... = An = A , so heißt P ein n - stelliges Prädikat auf A.
Ist p ein Prädikat, und gilt p(x1 , ... , xn ) = T (True),
so schreibt man auch nur p(x1 ... , xn ).
Quantoren und logische OperatorenDefinition: Es seien M eine Menge und p ein Prädikat, dann bezeichnet:
x M : p(x) den All-Quantor („Für alle x M gilt p(x)“)
x M : p(x) den Existenz-Quantor („Es gibt ein x M mit p(x)“)
Definition Es seien M eine Menge und P und Q Prädikate,
dann definiert man die logischen Operatoren:
logisch UND : Bool x Bool Bool P Q
logisch ODER : Bool x Bool Bool P Q
logisch NICHT : Bool x Bool Bool P
F T
F F F
T F T
F T
F F T
T T T
F T
T FP P
QQ P
Logische Operatoren
Weitere Notationen für logische OperatorenGebräuchlich ist auch die Verwendung folgender alternativer Schreibweisen:
– logisch UND P•Q oder nur PQ statt PQ
– logisch ODER P + Q" statt PQ – logisch NICHT P' oder statt P
Alternative Darstellung der Wahrheitstafel einer Verknüpfung:
F T
F F F
T F TP
QP Q PQ
F F F
F T F
T F F
T T T
gleiche Bedeutung
P
Logische Operatoren
Definition: Implikation P Q
Es seien M eine Menge und P und Q Prädikate dann impliziert das Prädikat P das Prädikat Q falls gilt:
Wenn P = T dann Q = T
Notation: P Q
Definition: Äquivalenz P Q
Die Prädikate P und Q heißen äquivalent, genau dann wenn gilt:
P Q und Q P
F T
F T T
T F TP
Q
Vorsicht!Aus P Q folgt NICHT die Gültigkeit von Q P.
F T
F T F
T F T
Q
P
Ordnungen
Definition: Sei p: M M Bool ein 2-stelliges Prädikat in (Infix-Notation).
p heißt:
i) reflexiv genau dann, wenn x M : x p x
ii) antisymmetrisch gdw x,y M : x p y y p x x = y
iii) transitiv gdw x, y, z M : x p y y P z x p z
– Eine partielle Ordnung ist eine Relation, die von einem reflexiven, anti-symmetrischen und transitiven Prädikat induziert wird.
– Eine totale Ordnung ist eine partielle Ordnung, in der zusätzlich gilt:
x,y M : x p y y p x
Ordnungen
induziert eine totale Ordnung auf Nat
induziert eine partielle Ordnung auf
Nat+, aber keine totale Ordnung
induziert eine partielle Ordnung auf
P(M), aber keine totale Ordnung
: Nat Nat Bool
induziert keine Ordnung auf Nat („<„ ist nicht reflexiv) < : Nat Nat Bool
| : Nat+ Nat+ Bool
: P(M) x P(M) Bool
mit x | y = „x teilt y“
lexikographische Ordnung zwischen Wörtern
(z.B. Aachen Berlin Zwickau) : A * A * Bool A = {a, ..., z, A,…, Z, 0, ..., 9}
Induktive Definitionen von Mengen In der Informatik hat man es häufig mit Mengen zu tun, die nach einem
Baukastenprinzip konstruiert sind. Man bezeichnet diese dann als induktiv definierte Mengen.
Man beginnt mit einer Menge von Basiselementen und gibt eine Methode an, mit der aus bereits vorrätigen Elementen neue erzeugt werden können.
Die Elemente der Menge sind dann genau alle diejenigen Objekte, die man in endlich vielen Schritten so gewinnen kann.
Beispiel: Lego mit etwas eigenartigen Spielregeln:
– A sei eine Menge von „Bauklotztypen“ (von jedem Klotztyp gibt es beliebig viele Exemplare).
– Die Erzeugungsmethode entspricht dem Zusammenstecken von einzelnen Klötzen bzw. von bereits konstruierten Gebilden. Im letzteren Fall hat man sowohl dieTeilgebilde als auch das neu entstandene.
– Als Ergebnis erhält man die Menge aller mit den Bauklötzen und der Erzeugungsmethode konstruierbaren Gebilde.
Induktiv definierte Mengen von Zeichenketten
Beispiel: Ist A die Menge {L,R} , dann ist z.B. die Zeichenkette LRRLR sowohl in A* als auch in A+.
Definition: A+ A+ ist die Menge aller nichtleeren Zeichenketten über A und wirdinduktiv definiert:
1. Basiselemente: Menge A. Jedes Element von A ist in A+.
2. Erzeugungsmethode: Sind w A+ und a A , dann ist auch
die konkatenierte Zeichenkette wa in A+. Statt wa schreibt man oft auch nur wa.
Definition: A*
A* ist die Menge aller Zeichenketten über A.
Zu A+ wird die leere Zeichenreihe hinzugenommen: A* := A+ { }.
Induktiv definierte Mengen
1. Induktionsanfang
Anmerkung Viele induktiv definierte Mengen haben unendlich viele Elemente, da man aus
den bereits konstruierten mit der Erzeugungsmethode weitere konstruieren kann.
Beispiel: Induktive Konstruktion der Menge der natürliche Zahlen (ohne Null)
1 ist eine natürliche Zahl. ;;; die Menge der Basiselemente ist: { 1 }
Ist k eine natürliche Zahl, dann auch k+1.
2. Induktionsschritt;;; Erzeugungsmethode für k+1 aus k
Es kann jedoch auch sein, dass nach endlich vielen Schritten keine neuen Konstruktionen mehr entstehen können. In diesem Fall hat die erzeugte Menge dann auch nur endlich viele Elemente.
Induktionsprinzip/Induktionsbeweise
Beispiel: Induktionsbeweis für eine Eigenschaft P der natürliche Zahlen
Aus dem Induktionsanfang, d.h., p(1)und dem Induktionsschritt p(k) p(k+1) für allekNat folgt, dass p für alle nNat gilt.
Um eine Eigenschaft p (also ein Prädikat) für alle Elemente einer induktiv definierten Menge M zu beweisen, muss man zeigen:
1. p gilt für alle Basiselemente.2. Wird das Element e aus den Elementen e1 , ... , ek erzeugt, und
gelten p(e1), ... , p(ek ), so gilt auch p(e) .
Induktionsbeweise: Beispiel
Satz: Für n gilt:
Beispiel
1+2+3+4+…+100 (Aufgabe für C.-F. Gauß in der ersten Klasse) = (1+100) + (2+99) + … + (50+51) = 50 * 101 = 5050 = 100*(100+1)/2
Beweis
Induktionsanfang:
Induktionsschritt:
n
i
nni1 2
)1(
2)11(11
1
1
i
i
1
1 11 2)2)(1(
2)1(2
2)1()1()(
2)1( k
i
k
i
k
i
kkkkkkiikki
Induktionsprinzip/Induktionsbeweise Beispiel: Sei A die Menge der Legosteine Q = quaderförmig (8 Noppen)
und W = würfelförmig (4 Noppen)Von den Bauklotztypen Q und W gibt es jeweils beliebig viele Exemplare.
Sei weiter + die Operation „Anfügen“, mit der ein Baustein auf einen anderen oder eine Teilkonstruktion voll aufgesetzt wird.
Aufgabe: Beweise die Eigenschaft p, die besagt, dass alle aus Legosteinen gebauten materiellen Gebilde mindestens 4 Ecken haben.
Induktionsbeweis:Induktionsanfang: Offenbar gilt p( ) und p( ).Induktionsschritt: Annahme: Für das aus k Steinen bestehende Gebilde Gk gilt P.
Zeige: Aus p(Gk) p(Gn+1) für alle möglichen Konstruktionen, die man erhalten kann, wenn man an Konstruktion Kn einen weiteren Baustein aus A anhängt.
Fertigstellung des Beweises als Übung. Hinweis: Überlegen Sie, welche Konstruktionen überhaupt möglich sind.
Anwendungen des Induktionsprinzips
Induktionsprinzip für Wörter aus A* und Prädikat pAus 1. p() (d.h. das leere Wort erfüllt p) und2. wA*, aA: p(w) p(wa)
(d.h. falls w ein Wort ist, das p erfüllt, dann erfüllt auch wa p).
folgt, dass p für alle Elemente von A* gilt.
Induktionsprinzip für BinärbäumeAus 1. p() und2. Für beliebige Binärbäume B1 und B2
gilt: p( B1 ) p( B2 ) p( )
folgt, dass p für alle Binärbäume gilt.
B1 B2
Beispiel:
Maßeinheiten Die Angabe von Speichergröße, Rechengeschwindigkeit, Fläche, usw. erfolgt im Allgemeinen durch
Angabe von Werten in Vielfachen von 10er Potenzen. Folgende Bezeichnungen sind gebräuchlich:
1000n 10n Präfix Symbol Name als Dezimalzahl10008 1024 yotta Y Quadrillion 1 000 000 000 000 000 000 000 000 10007 1021 zetta Z Trilliarde 1 000 000 000 000 000 000 00010006 1018 exa E Trillion 1 000 000 000 000 000 000 10005 1015 peta P Billiarde 1 000 000 000 000 000 10004 1012 tera T Billion 1 000 000 000 000 10003 109 giga G Milliarde 1 000 000 000 10002 106 mega M Million 1 000 000 10001 103 kilo k Tausend 1 000 10002/3 102 hecto h Hundert 100 10001/3 101 deca, da Zehn 10 10000 100 - - Eins 1 Bezugsgröße1000−1/3 10−1 deci d Zehntel 0.1 1000−2/3 10−2 centi c Hunderstel 0.01 1000−1 10−3 milli m Tausendstel 0.001 1000−2 10−6 micro µ (u) Milllionstel 0.000 001 1000−3 10−9 nano n Milliardstel 0.000 000 001 1000−4 10−12 pico p Billionstel 0.000 000 000 001 1000−5 10−15 femto f Billiardstel 0.000 000 000 000 001 1000−6 10−18 atto a Trillionstel 0.000 000 000 000 000 001 1000−7 10−21 zepto z Trilliardstel 0.000 000 000 000 000 000 001 1000−8 10−24 yocto y Quadrillionstel 0.000 000 000 000 000 000 000 001
47
Einheiten für DatenmengenUnterscheidung zwischen :Kilobyte (kB) 103 Byte = 1000 Byte z.B. A4-Buchseite ~ 4KB Kibibyte (KiB) 210 Byte = 1024 Byte Megabyte (MB) 106 Byte = 1.000.000 Byte z.B. Bibel ~ 5MBMebibyte (MiB) 220 Byte = 1.048.576 Byte Gigabyte (GB) 109 Byte = 1.000.000.000 Byte z.B. Spielfilm 10GB Gibibyte (GiB) 230 Byte = 1.073.741.824 Byte
Terabyte (TB) 1012 Byte = 1000 GB gut sortierte BibliothekTebibyte (TiB) 240 Byte = 1.099.511.627.776 Byte Petabyte (PB) 1015 Byte = 1.000.000 GBPebibyte (PiB) 250 Byte = 1.125.899.906.842.624 Byte Exabyte (EB) 1018 Byte Gesamtheit aller gedruckten Werke ~ 0.2EB Exbibyte (EiB) 260 Byte = 1.152.921.504.606.846.976 ByteZettabyte (ZB) 1021 ByteZebibyte (ZiB) 270 Byte = 1.180.591.620.717.411.303.424 ByteYottabyte (YB) 1024 ByteYobibyte (YiB) 280 Byte = 1.208.925.819.614.629.174.706.176 Byte
Top Related