1 Vertiefungsstoff 1. Mathematische Grundlagen Der 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
47
Embed
1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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!!)
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 }
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 }
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.
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:
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):
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