1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung...

47
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

Transcript of 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung...

Page 1: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 2: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 3: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 4: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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 }

Page 5: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 6: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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)

Page 7: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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.

Page 8: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 9: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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), ... … }

Page 10: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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 !!!

Page 11: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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.

Page 12: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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})

Page 13: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 14: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 15: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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“

Page 16: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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), …} .

Page 17: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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.

Page 18: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 19: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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.

Page 20: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 21: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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.

Page 22: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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.

Page 23: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 24: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 25: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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.)

Page 26: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 27: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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.

Page 28: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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 …

Page 29: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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).

Page 30: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 31: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 32: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 33: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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 ).

Page 34: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 35: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 36: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 37: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 38: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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}

Page 39: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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.

Page 40: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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+ { }.

Page 41: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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.

Page 42: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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) .

Page 43: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 44: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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.

Page 45: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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:

Page 46: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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

Page 47: 1 Vertiefungsstoff 1. Mathematische Grundlagen Der Foliensatz ruft wichtige, in der Vorlesung „Computersysteme und Algorithmen“ benötigte mathematische.

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