Algorithmen und Computerzahlen

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Computerzahlen"

Transkript

1 Kapitel 2 Algorithmen und Computerzahlen Für die Formulierung von Lösungsverfahren, die auf einem Computer realisiert werden sollen, bedient man sich mehr oder minder eines Werkzeugs, dass Algorithmus genannt wird. Hier skizzieren wir, worauf es bei Algorithmen ankommt, und geben erste Beispiele. Die zuletzt betrachtete Struktur Graphen ist beim Studium von Algorithmen von Bedeutung. Bei der Realisierung von Algorithmen auf dem Computer haben wir mit Computerzahlen zu rechnen. Sie genügen nicht immer den bekannten Rechenregeln, da sie diskret auf einem endlichen Teil des Zahlenstrahls verteilt sind. 2.1 Algorithmen Ein Computer ist ein Werkzeug zur Verarbeitung und Speicherung von Information. Um ihn zu nutzen, ist er mit Verarbeitungsvorschriften zu füttern. Wir formulieren solche Vorschriften in der Regel unter dem Stichwort Algorithmus. Ein Algorithmus 1 für eine vorgegebene bestimmte Art von Aufgaben ist eine endliche Abfolge von wohldefinierten, ausführbaren Vorschriften, die bei Abarbeitung, ausgehend von einem Eingangszustand (Input) nach einer endlichen Anzahl von Verarbeitungsschritten einen Ausgangszustand (Output) bestimmen, der als Lösung der durch den Eingangszustand charakterisierten Aufgabe angesehen werden kann. Algorithmen sind unabhängig von einer konkreten Abbildung 2.1: AL Khwarizmi Programmiersprache und einem konkreten Computertyp, auf denen sie ausgeführt werden, zu formulieren. Algorithmen stehen im Zentrum der Informatik, der Numerischen und der Diskreten Mathematik. Ein Algorithmus, der einen gewissen Kultstatus beanspruchen kann, ist der euklidische Algorithmus; wir werden ihn noch kennnenlernnen. Wir nutzen einen Algorithmus zur Bestimmung des PageRank einer Web Seite, wenn wir die Suchmaschine google nutzen. Wir finden Algorithmen auch sonst im Alltag vor, wenn wir etwa einen Kuchen backen: Backrezepte sind, wenn sie gut aufgeschrieben sind, Algorithmen für den Prozess des Kuchenbackens. 1 Die Bezeichnung leitet sich aus dem Namen Al Khwarizmi (Al Khwarizmi,780? 850?), einem der bedeutensten Mathematiker des anfangenden Mittelalters, ab. 13

2 Beispiel Betrachte folgende Liste von Anweisungen: EIN: Natürliche Zahl n. step 1 k := 1,a := n. step 2 Ist a { = 1, dann gehe zu AUS. 3a + 1 falls a ungerade step 3 a := a/2 falls a gerade step 4 k := k + 1, gehe zu step 2. AUS: Mit k die Länge der erzeugten Zahlenfolge. Die Rechenschritte erklären sich selbst: ausgehend von n wird eine Folge von natürlichen Zahlen erzeugt, eine so genannte Collatz/Uhlam/Warring-Folge. Ist dies ein Algorithmus? NEIN, denn es ist nicht sichergestellt, dass die Abfrage Ist a = 1, dann gehe zu AUS irgendwann zur Beendigung führt. ABER: Bisher hat man keine natürliche Zahl gefunden, bei der die obige Liste von Anweisungen nicht endet. Glaubt man dieser Beobachtung nicht, solte man eine Vorsichtsmaßnahme (Abbrechkriterium) einbauen, die sicherstellt, dass nur endlich oft der Schritt step 3 angesprungen wird. Unterschiedliche Algorithmen können entworfen werden zur Lösung ein und derselben Aufgabe. Leistungsunterschiede lassen sich herausarbeiten, wenn man ihren Aufbau und ihre Wirkungsweise analysiert. Fragestellungen dafür sind: Entwurf von Algorithmen: Wie soll ein Algorithmus zur Lösung einer bestimmten Aufgabe aussehen? Komplexität: Wie läßt sich der Aufwand, der betrieben werden muss, um eine Problemklasse von Aufgaben zu lösen, bestimmen/abschätzen? Berechenbarkeit: Gibt es Aufgaben, für die kein (schneller) Algorithmus existiert? Korrektheit: Wie läßt sich nachweisen, ob ein vorliegender Algorithmus die Aufgabe korrekt löst? Robustheit/Zuverlässigkeit: Wie groß ist die Problemklasse von Aufgaben, die der Algorithmus löst? Genauigkeit: Was ist die Qualität der Lösung, wenn numerisches Rechnen nötig ist? Hauptziel der Analyse ist die Effizienzuntersuchung und die Entwicklung effizienter(er) Algorithmen. Diese Analyse sollte aber rechnerunabhängig durchgeführt werden. Dazu benötigt man ein geeignetes Rechnermodell. Solche Modelle stehen zur Verfügung! Wir wollen hier nicht darauf eingehen. Analyseuntersuchungen stützt man auf die Ermittlung des Rechenaufwands, ausgedrückt durch die Anzahl von elementaren Operationen. Hierbei kann man drei Ansätze unterscheiden: Worst-case-Komplexität: Dies ist eine obere Schranke für den Aufwand in Abhängigkeit vom Input. Mittlere Komplexität: Dies ist eine obere Schranke für den Aufwand in Abhängigkeit vom Input bei gewissen Annahmen über das Auftreten des Inputs in der Problemklasse. 14

3 Untere Komplexität: Hierunter versteht man die Ermittlung unterer Schranken für den zu betreibenden Aufwand. Diese Ansätze können rechnerunabhängig und a-priori erfolgen, d.h. ohne den Algorithmus an einem Beispiel zu testen. Unter einer a-posteriori Analyse versteht man das Testen des Algorithmus an Aufgaben mit (hinreichend) großem Input. 2.2 Programme und Programmiersprachen Die konkrete Ausführung eines Algorithmus nennt man einen Prozess, die Einheit, die den Prozess ausführt, ist ein Prozessor. Beim Kuchenbacken ist der Algorithmus das Rezept, der Prozess die Abarbeitung des Rezepts, der Prozessor der Koch. Hier denken wir natürlich an den Prozessor Computer. Um eine Analyse des Ablaufs eines Algorithmus auf diesem Prozessor vornehmen zu können, ist ein geeignetes Modell für den Computer (Maschinenmodell) bereitzuhalten. Die Informatik studiert u.a. die Turing-Maschine und die Random-Access- Maschine (RAM), welche in gewissem Sinne sogar äquivalent sind. Die Analyse von Algorithmen auf einem abstrakten Niveau ist eine Disziplin der Informatik und/oder mathematischen Informatik. Die Hardware-Komponenten eines Computers sind Zentraleinheit (CPU) Speicher (Memory) Ein- Ausgabegeräte (Input, Output Devices) Die Merkmale, die einen Computer bezüglich Hardware kennzeichnen sind Geschwindigkeit, Speichergröße, Zuverlässigkeit, Kosten, Vernetzbarkeit. Die Ausführung eines Algorithmus auf einem Prozessor setzt voraus, dass der Computer den Algorithmus interpretieren können muss, d.h. er muss verstehen, was jeder Abarbeitungsschritt bedeutet, die jeweilige Operation ausüben können. Dies leisten die Programmiersprachen. Die Algorithmen werden damit in Programmen aufgeschrieben; die einzelnen Schritte heißen nun (Programm )Anweisung, Befehl. Bei einfachen Programmiersprachen (Maschinensprachen) kann jede Anweisung direkt vom Computer interpretiert werden. Da nur elementare Operationen damit erfasst werden, muss man sehr lange Programme schreiben. Zur Vereinfachung der Programmierung wurden höhere Programmiersprachen entwickelt. Programme in solchen Programmiersprachen können nicht direkt durch den Computer interpretiert werden, sie werden durch Übersetzungsprogramme in die Maschinensprache überführt. Der Übergang von Maschinensprachen zu höheren Programmiersprachen ist fließend. Es gibt eine ganze Hierarchie von Programmiersprachen: Basic, Fortran Algol Pascal, C, C++, Java Java, Python,... Auf Computern kann man Programme auf Vorrat für bestimmte Aufgaben ablegen. Diese Sammlung von Programmen nennt man Software. Man unterscheidet 15

4 Anwendungssoftware (Textverarbeitungssoftware, Statistiksoftware,...) Systemsoftware (Betriebssystem, Editor, Compiler,...) Besonderen Stellenwert nehmen Software-Pakete ein wie Maple, Mathematica, Derive, Matlab, R, Cinderella, die alle eine spezielle Ausrichtung haben: symbolisches Rechnen die ersten drei, numerisches Rechnen Matlab, statistisches Rechnen R, geometrisches Rechnen das letzte. 2.3 Sortieren Sei M eine endliche Menge mit n Elementen und versehen mit einer Ordnung. Sortieren heißt, die Elemente von M so anzuordnen, dass sie bzgl. der Ordnung eine aufsteigende Elementfolge bilden. Sortierverfahren werden benötigt etwa bei: Ordnung im Bücherregal, Einordnen von Schlüsseln im Werkzeugkasten, Ordnen der erhaltenen Karten beim Skatspiel, Sortieren von Dateien der Größe nach. Gesichtspunkte für die Leistungsfähigkeit eines Sortierverfahrens sind: Schnelligkeit. Wieviele Rechenoperationen (Vergleiche, Umstellen in einer Liste) in Abhängigkeit von n sind nötig? Dieser Aufwand wird Laufzeitkomplexität des Verfahrens genannt. Speicherplatz. Im allgemeinen kann man sich die Elemente der Menge abgelegt in Fächern vorstellen. Beim Sortieren kann es sinnvoll sein, Zusatzfächer zu benutzen. Der Bedarf an Fächern in Abhängigkeit von n ist die Speicherplatzkomplexität des Verfahrens. Sei nun eine Menge M = {a 1,...,a n } vorgegeben. Wir denken uns die Elemente a 1,...,a n jeweils einzeln in einer Liste (Feld von Fächern) abgelegt. Wir sortieren diese Liste, indem wir die Objekte in den Fächern irgendwie solange austauschen, bis sie angeordnet in den Fächern liegen. Sortieren durch Auswählen (Selection sort). Hier geht man folgendermaßen vor: Finde das kleinste Element und tausche es gegen das an der ersten Stelle befindliche Element (1. Schleife). Fahre in dieser Weise jeweils auf dem Rest des Feldes, das noch nicht sortiert ist fort (i te Schleife). Man stellt leicht fest, dass in der i ten Schleife n i Vergleiche und eventuell ein Austausch anfallen: Wegen n n (n i) = j = 1 2 ((1 + + n 1) + (n )) = 1 n(n 1) (2.1) 2 i=1 j=1 gilt für die Komplexität: Es fallen etwa n 2 /2 Vergleiche und etwa n Austausche an. Auf den Aufwand n/2 bei den Vergleichen und beim Austauschen kann man für große n verzichten; etwa bedeutet diese Vernachlässigung, wir schreiben dafür meist. Hierzu ein Beispiel, wobei hier die Elemente die Buchstaben des Alphabets in ihrer alphabetischen Ordnung sind. Anwendung von Selection sort auf unser Beispiel EXAMPLE ergibt die Sequenz (a). 16

5 EXAMPLE AXEMPLE AEXMPLE AEEMPLX AEELPMX AEELMPX EXAMPLE EXAMPLE AEXMPLE AEMXPLE AEMPXLE AELMPXE AEELMPX EXAMPLE EAXMPLE AEXMPLE AEMXPLE AEMPXLE AEMPLXE AEMLPXE AELMPXE AELMPEX AELMEPX AELEMPX AEELMPX EXAMPLE EEAMPLX EEALPMX EEALMPX EEAL M PX EEA L M P X AEE L M P X A E E L M P X AEELMPX (a) Selection sort (b) Insert sort (c) Bubble sort (d) Quick sort Sortieren durch Einfügen (Insert sort). Betrachte die Listenelemente der Reihe nach und füge jedes an seinem richtigen Platz zwischen den bereits betrachteten ein, wobei diese sortiert bleiben. Das gerade bestimmte Element wird eingefügt, indem die größeren Elemente um eine Position nach rechts geschoben werden und das betrachtete Element auf dem frei gewordenen Platz eingefügt wird. Anwendung von Insert sort auf unser Beispiel EXAMPLE ergibt die Sequenz (b). Man stellt fest, dass für die Laufzeitkomplexität gilt: n 2 /2 Vergleiche, n 2 /4 Austausche. Am besten macht man sich dies klar, wenn man ein Feld betrachtet, das gerade verkehrt herum sortiert ist. 2 Sortieren durch Austausch (Bubble sort). Durchlaufe immer wieder das Feld und vertausche jedesmal, wenn es notwendig ist, benachbarte Elemente; wenn beim Durchlauf kein Austausch mehr nötig ist, ist das Feld sortiert. Anwendung von Bubble sort auf unser Beispiel EXAMPLE ergibt die Sequenz (c). Man stellt fest, dass für die Laufzeitkomplexität gilt: n 2 /2 Vergleiche, n 2 /2 Austausche. Sortieren nach Quick sort. Dies ist der wohl am meisten angewendete Sortieralgorithmus. Seine Idee geht auf C.A.R. Hoare (1960) zurück. Es ist ein Vorgehen, das vom Typ Teile und Herrsche (divide et impera, divide and conquer) ist und auf einem Zerlegen des Feldes in zwei Teile und anschließendem Sortieren der Teile unabhängig voneinander beruht. Auf die Teile kann nun diese Idee wieder angewendet werden: Das Verfahren ist rekursiv, d.h. es ruft sich selbst (auf kleinerer Stufe) wieder auf. Wir kommmen im nächsten Kapitel auf das Prinzip Rekursivität zurück. Eine entscheidende Bedeutung kommt der Zerlegung eines Feldes zu. Es soll (zweckmäßigerweise) so erfolgen, dass gilt: Wird das Feld mit Hilfe des Elements a r zerlegt, so soll dies bedeuten: (1) a r befindet sich an seinem endgültigen Platz; (2) für alle j < r gilt a j a r ; (3) für alle j > r gilt a j a r. Bei jedem rekursiven Schritt wird eine solche Zerlegung benötigt. Wie findet man eine solche Zerlegung? Hier ist die Realisierung: Wähle irgendein a r. Durchsuche das Feld von links, bis ein Element gefunden ist, das nicht kleiner als a r ist, und durchsuche das Feld von rechts, bis ein Element gefunden ist, das nicht größer als a r ist. Tausche die so gefundenen Elemente. 2 Siehe algorithmus/algo2.php. 17

6 Wiederhole den obigen Suchprozess solange, bis sich die Suche von links und rechts bei einem Element trifft. Nun ist das Element a r mit dem Element zu tauschen, bei dem sich die Suche von links und rechts getroffen hat. Ist das Feld nun zerlegt (Start), das Startfeld ist also nun a 1,...,a r,...,a n, wird das Sortierverfahren auf die Teile a 1,...,a r und a r+1,...,a n angewendet; als trennende Elemente können nun etwa die Elemente a r und a n verwendet werden. Anwendung von Quick sort auf unser Beispiel EXAMPLE ergibt die Sequenz (d) (M ist beim Start das trennende Element). Das Beste, was bei Quick sort passieren könnte, ist, dass durch jede Zerlegung das Feld genau halbiert wird. Dann würde die Anzahl C n der von Quick sort benötigten Vergleiche der rekurrenten Beziehung vom Typ Teile und Herrsche genügen (n gerade!): C n = 2C n 2 + n. (2.2) Dabei ist 2C n der Aufwand für das Sortieren der zwei halbierten Felder und n der Aufwand für 2 die Zerlegung. Man kann zeigen, dass notwendigerweise C n = n log 2 n gilt. Die Vderifikation, dass diese Darstellung von C n der Rekursion (2.2) genügt ist mit der Funktionalgleichung des Logarithmus einfach: 2C n 2 + n = n log 2( n 2 ) + n = n(log 2 n 1) + n = n(log 2 n = C n. In Kapitel?? kommen wir auf die Logarithmusfunktion zurück. Für den allgemeinen Fall zeigt eine etwas aufwendigere Analyse C n = 2n ln n. Eine wichtige Begriffsbildung ist die Laufzeitkomplexität im Mittel eines Verfahrens. Damit ist hier gemeint, wieviele Rechenschritte ein Sortierverfahren benötigt, wenn es auf ein zufällig vorsortiertes Feld angewendet wird. Wie wir oben gesehen haben, kann das Sortieren ganz schnell erledigt werden, wenn man nur den richtigen Algorithmus verwendet. Dies ist nun eine Feststellung, die sich im Kern auf alle Probleme anwenden lässt, die algorithmisiert werden können. Daher ist es so wichtig, den richtigen Algorithmus für ein Problem zu kennen und einzusetzen, da er möglicherweise ein Problem erst lösbar macht. 2.4 Computerzahlen In einer Grundvorlesung über Analysis beweist man folgenden Satz: Satz Sei g eine Zahl in N mit g 2. Für jedes x R,x 0, gibt es genau eine Darstellung der Gestalt x = σg n x k g k (2.3) k=1 mit σ {+, },n Z und x k {0,1,...,g}, wenn man von den Zahlen x k noch zusätzlich fordert, dass x 0 und dass zu jedem n N ein Index k n existiert mit x k g 1. Wichtige Spezialfälle von Satz (2.4.1) sind g = 10 (Dezimalsystem), g = 2 (Dualsystem), g = 8 (Oktalsystem) und g = 16 (Hexadezimalsystem). Beim Hexadezimalsystem benötigen wir zusätzlich Ziffern, da man etwa 12 nicht als Ziffer verwenden will. Man wählt 0,1,...,9,A,B,C,D,E,F. In (2.3) ist also die Zahl x durch eine Reihe dargestellt, wobei der ganze Anteil g n mit Exponent n abgespaltet wurde, die Forderung x 0 macht diese Abspaltung eindeutig. 18

7 g heißt Basis der Darstellung, welche im Allgemeinen eine gerade Zahl ist. σ steht für das Vorzeichen der Zahl. Die Forderung x k g 1 für fast alle k schließt aus, dass eine Nichteindeutigkeit, wie wir sie vom Dezimalsystem in Form von kennen, zugelassen ist. Die positionelle Schreibweise sieht so aus: = (x) g := σ0.a a 2 g n. (2.4) Der Punkt zwischen 0 und a wird Dezimalpunkt genannt, wenn g = 10, Binärpunkt, wenn g = 2. Eine Zahl x kann eine endliche Anzahl von Ziffern haben bezüglich einer Basis und eine unendliche Anzahl von Ziffern in einer anderen Basis. Zum Beispiel gilt für x = 1/3: Für x := 103 3/4 haben wir (x) 10 = =: +0.3, (x) 3 = (x) 10 = +[103.75], (x) 2 = +[ ], (x) 16 = +[67.C]. Um jede Ziffer in der Darstellung (2.4) im Dualsystem darstellen zu können, benötigen wir einen Code, d.h. eine Darstellung in einem anderen Alphabet; siehe Anhang 1.5. Für das Oktalsystem (g = 8) kann man etwa nutzen: Ziffer Codewort Für die Zahlen, die wir oben beschrieben haben, benötigen wir im Allgemeinen unendlich viele Speicherplätze. Daher müssen wir die Darstellung (2.4) für eine Computernutzung einschränken. Dies geschieht dadurch, dass die Reihe bei einem t N, der Mantissenlänge, abgebrochen wird und der Exponent n eingeschränkt wird. So gelangen wir zur Darstellung (x) g = σ0.x...x t g e wobei t N die Anzahl der erlaubten signifikanten Ziffern x i {0,1,...,g 1} ist; e Z wird Exponent genannt, welcher in einem Bereich e min,e max variieren kann. Damit gelangen wir zur Menge der Computerzahlen/Fließkommazahlen F := F(g,t,e min,e max ) := Es ist einfach, diese Zahlen zu zählen: { σ 0.x...x t g e x,... x t {0,1,...,g 1},x 0, e Z,e min e e max,σ {+, } #F(g,t,e min,e max ) = 2(g 1)g t (e max e min + 1) Natürlich ist in einem Computerzahlsystem auch die Null realisiert. Damit sind dann #F(g,t,e min,e max )+ 1 Zahlen verfügbar. In F(g,t,e min,e max ) sind größte und kleinste Zahl gegeben durch x min := +[ ] g e min t = g e min, x max := +[δ...δ] g emax t = g emax (1 g t ) wobei δ = g. Offenbar gilt für alle Computerzahlen x 0 g e min x g emax. Hat man eine reelle Zahl x mit x < g e min, so wird im Allgemeinen x durch Null ersetzt. Zahlen x mit x > g emax können nicht verarbeitet werden. Treten diese Fälle auf, so spricht man von Exponentenüberlauf. In jedem Intervall [g e,g e ],e min e e max, finden wir µ = g t g t + 1 gleichförmig verteilte Zahlen: F [g e,g e ] = {g e,g e + g e t,...,g e + µg e t }. (2.5) Beachte, dass der Zuwachs g e t anwächst, wenn e von e min auf e max anwächst. 19 }.

8 Lemma Betrachte das System F(g,t,e min,e max ). Sei x eine reelle Zahl mit x min x x max. Dann gilt: z x min 1 z F x 2 g t+1. (2.6) Beweis: Ohne Einschränkungen können wir annehmen: x ist positiv. Wir können annehmen, dass mit einem e mit e min e e max gilt: x [g e,g e ]. Aus (2.5) erhalten wir, dass eine Zahl z [g e,g e ] mit z x 1 2 ge t existiert. Wegen g e x ist die Behauptung bewiesen. Die Zahl eps := 1 2 g t+1 heißt Maschinengenauigkeit. Beachte, sie hängt nur von der Mantissenlänge t ab. Auf einem Computer sind üblicherweise zwei Formate von Fließkommazahlen verfügbar: einfache und doppelte Genauigkeit. Im IEEE-Standard mit einfacher Geneauigkeit haben wir eps = Wegen des nötigen Übergangs von einer reellen Zahl x zu einer Computerzahl, muss x im Allgemeinen durch eine Approximation ersetzt werden. Dieser Prozess wird als Runden bezeichnet. Sei F das obige System der Computerzahlen. Es werden zwei Wege beschritten, eine gegebene reelle Zahl x durch eine Computerzahl f l(x) zu ersetzen: Runden und Abschneiden. Betrachte die positive reelle Zahl x dargestellt durch x = σ0.x... d t d t... g e. Abschneiden: Rundung: rd(x) := ch(x) := σ0.x... d t g e. { σ0.x... (1 + d t ) g e, falls d t+1 g/2 σ0.x... d t g e, sonst. Der Fehler, der ensteht, wenn man x durch fl(x) ersetzt, wird Rundungsfehler genannt. Definition Sei x eine reelle Zahl, x 0. Der absolute Fehler von x ist gegeben durch x f l(x) und der relative Fehler durch x f l(x) / x. Korollar Sei das System F(g,t,e min,e max ) gegeben und sei x eine reelle Zahl mit x max x x min. Dann folgt für den relativen Rundungsfehler: rd(x) x x eps, ch(x) x x 2eps. (2.7) Die Grundoperationen der Arithmetik sind +,,,/. Wie sind diese Operationen realisiert in einem Fließkommasystem F := F(g,t,e min,e max )? Sei eine der Operationen +,,,/. Wir bezeichnen die entsprechende Operation, realisiert in F mit. Wir nehmen an, dass sie so realisiert sei: x y := fl(x y) für x,y F mit x min x y x max. (2.8) Klar, im Fall = / haben wir anzunehmen, dass y 0. Als Konsequenz haben wir: x y = (x y)(1 + τ) mit τ κ eps. Hier ist κ eine Konstante, die nicht von x,y abhängt. Probleme der Computer-Arithmetik sind: 20

9 Überlauf Siehe oben. Unterlauf Siehe oben. Auslöschung Addition etwa gleich großer Zahlen mit entgegengesetztem Vorzeichen führt zu einer starken Verringerung der Zahl der gültigen Ziffern. Ungültigkeit von Rechenregeln Selbst in Fällen, wo weder Überlauf noch Unterlauf eintritt, gelten die Rechenregeln der reellen Zahlen im allgemeinen nicht mehr. 2.5 Anhang: Abbildungen Mit Abbildungen drücken wir den mathematischen Sachverhalt aus, dass es zwischen zwei Objekten eine klar definierte Abbhängigkeit gibt. Definition Seien A, B, C, D Mengen. (a) Eine Abbildung f von A nach B ist eine Vorschrift, durch die jedem a A genau ein Bild f(a) B zugeordnet wird; A heißt Definitionsbereich, B heißt Wertebereich von f. Wir schreiben f : A B. (b) Zwei Abbildungen f : A B, g : C D heißen gleich, wenn gilt: A = C,B = D,f(x) = g(x) für alle x A. Wir werden später auch von Funktionen sprechen. In unserem Verständnis ist eine Funktion ein Spezialfall einer Abbildung: wir sprechen dann von einer Funktion, wenn wir eine Abbildung zwischen Zahlbereichen haben, d.h. wenn Definitions und Wertebereich der Abbildung Mengen von Zahlen sind. 3 Beispiel Sei A eine Menge. Dann nennt man die Abbildung id A : A x x A die Identität auf A. (Manchmal lassen wir den Index A weg und schreiben einfach id, wenn klar ist, um welches A es sich handelt.) Beispiel Seien A,B Mengen. Dann heißt die Abbildung π 1 : A B (a,b) a A die Projektion auf den ersten Faktor. 4 Es sollte klar sein, dass entsprechend auch die Projektionen auf beliebige Faktoren in einem kartesischen Produkt erklärt sind. Definition Sei f : A B eine Abbildung. Die Menge graph(f) := {(a,b) A B a A,b = f(a)} heißt der Graph von f. 3 Der Abbildungsbegriff, wie wir ihn hier eingeführt haben, konnte erst nach G. Cantor in Mode kommen, da nun Mengen handhabare Objekte waren. 4 Die Wortwahl wird verständlich, wenn wir uns A A als Koordinatensystem realisiert denken. Dann wird von einem Punkt durch Beleuchtung parallel zur zweiten Koordinatenachse auf der ersten Achse der projezierte Punkt sichtbar. 21

10 Definition Sei f : X Y eine Abbildung und seien A X,B Y. Dann heißt die Menge f(a) := {f(x) x A} die Bildmenge von A oder das Bild von A, und die Menge f (B) := {x X f(x) B} heißt die Urbildmenge von B oder einfach das Urbild von B. Sei A eine Menge. Jede Abbildung N n x n A nennt man eine Folge mit Folgengliedern aus A. Meist schreiben wir dafür kurz (x n ) n N. Regel Sei f : X Y,A 1,A 2 X,B 1,B 2 Y. A 1 A 2 = f(a 1 ) f(a 2 ) (2.9) f(a 1 A 2 ) = f(a 1 ) f(a 2 ) (2.10) f(a 1 A 2 ) f(a 1 ) f(a 2 ) (2.11) B 1 B 2 = f (B 1 ) f (B 2 ) (2.12) f (B 1 B 2 ) = f (B 2 ) (2.13) Beweisen wir etwa (2.13). Da eine Gleichheit von Mengen behauptet wird, sind zwei Inklusionen zu verifizieren. Zu f (B 1 B 2 ) f (B 2 ). f (B 1 B 2 ). Also gilt f(x) B 1 B 2. Ist f(x) B 1, dann ist x Sei x f (B 2 ). Ist f(x) B 2, dann ist x f (B 2 ) f (B 2 ). Zu f (B 2 ) f (B 1 B 2 ). f (B 1 ) Sei x f (B 2 ). Ist x f (B 1 ), dann ist f(x) B 1 B 1 B 2, d.h. x f (B 1 B 2 ). Ist x f (B 2 ), dann ist f(x) B 2 B 1 B 2, d.h. x f (B 1 B 2 ). Definition Seien f : X Y, g : Y Z Abbildungen. Die Hintereinanderausführung oder Komposition g f der Abbildungen f, g ist erklärt durch g f : X x g(f(x)) Z. Regel Seien f : X Y,g : Y Z,h : Z W Abbildungen. id Y f = f id X (2.14) h (g f) = (h g) f (2.15) Die Identität in (2.15) nennt man das Assoziativgesetz. Man beachte, dass für die Hintereinanderausführung von Abbildungen ein Kommutativgesetz ( f g = g f) im allgemeinen nicht gilt. 22

11 Definition Sei f : X Y eine Abbildung. (i) f injektiv genau dann, wenn für alle x,x X x x = f(x) f(x ) gilt. (ii) f surjektiv genau dann, wenn für alle y Y ein x X existiert mit y = f(x). (iii) f bijektiv : f injektiv und surjektiv Ohne Beweis halten wir fest: Satz Sei f : X Y eine Abbildung. Dann ist f bijektiv genau dann, wenn g : Y X existiert mit g f = id X,f g = id Y. Definition Sei f : X Y bijektiv. Die nach Satz eindeutig bestimmte Abbildung 5 g mit g f = f g = id heißt die (zu f) inverse Abbildung. Wir schreiben dafür f. 2.6 Übungen 1.) Sei A ein (endliches) Alphabet, sei A := {()} n N An die Menge der Wörter (beliebiger Länge) über dem Alphabet A. Für zwei Worte u = (u 1,...,u k ) A k,v = (v 1,...,v l ) A l setzen wir: Wir definieren für u,v A : (a) Zeige: ist eine Halbordnung in A. (b) Ist stets eine Ordnung in A? (c) uv := (u 1,...,u k,v 1,...,v l ) A k+l. u v : Es gibt z A mit uz = v. Gibt es in A ein Wort w, so dass gilt: w u für alle u A. 2.) Eine Permutation der Zahlen 1,2,...,n ist eine Umstellung dieser Zahlen. (a) Ermittle die Anzahl der Permutationen von 1, 2,..., 8. (b) Die Fehlstandszahl einer Permutation ist die Anzahl der Paare (i, j), die nach Umstellung mit dieser Permutation in falscher Reihenfolge stehen. Ermittle die Anzahl der Permutationen von 1,2,...,5 mit ungerader Fehlstandszahl. 3.) Finde ein Darstellung des periodischen Dezimalbruchs x = im Dualsystem. 4.) Betrachte das Fließkommasystem F := F(2, 2, 2, 2). (a) Bestimme von den positiven Zahlen F + in F die kleinste Zahl x min und größte Zahl x max. (b) Wie weit sind die nächsten Nachbarn in F + von x min bzw. x max entfernt? 5.) Betrachte das Fließkommasystem F := F(2, 3,, 2). (a) Bestimme alle positiven Zahlen in F. (b) x := 1/4,y := 7/8 liegen in F. Liegt auch x + y in F? 5 In der Literatur spricht man bei bijektiven Abbildungen oft auch von umkehrbar eineindeutigen Abbildungen. In Satz zusammen mit Definition liegt die Berechtigung für eine solche Sprechweise. 23

1 Vom Problem zum Programm

1 Vom Problem zum Programm 1 Vom Problem zum Programm Ein Problem besteht darin, aus einer gegebenen Menge von Informationen eine weitere (bisher unbekannte) Information zu bestimmen. 1 Vom Problem zum Programm Ein Algorithmus ist

Mehr

Vorlesung. Funktionen/Abbildungen 1

Vorlesung. Funktionen/Abbildungen 1 Vorlesung Funktionen/Abbildungen 1 1 Grundlagen Hinweis: In dieser Vorlesung werden Funktionen und Abbildungen synonym verwendet. In der Schule wird eine Funktion häufig als eindeutige Zuordnung definiert.

Mehr

Computerarithmetik ( )

Computerarithmetik ( ) Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Das Rechnen in Zahlensystemen zur Basis b=2, 8, 10 und 16 Prof. Dr. Nikolaus Wulff Zahlensysteme Neben dem üblichen dezimalen Zahlensystem zur Basis 10 sind in der Informatik

Mehr

Gibt es verschiedene Arten unendlich? Dieter Wolke

Gibt es verschiedene Arten unendlich? Dieter Wolke Gibt es verschiedene Arten unendlich? Dieter Wolke 1 Zuerst zum Gebrauch des Wortes unendlich Es wird in der Mathematik in zwei unterschiedlichen Bedeutungen benutzt Erstens im Zusammenhang mit Funktionen

Mehr

Technische Informatik I

Technische Informatik I Technische Informatik I Vorlesung 2: Zahldarstellung Joachim Schmidt jschmidt@techfak.uni-bielefeld.de Übersicht Geschichte der Zahlen Zahlensysteme Basis / Basis-Umwandlung Zahlsysteme im Computer Binärsystem,

Mehr

Sprechen wir über Zahlen (Karl-Heinz Wolff)

Sprechen wir über Zahlen (Karl-Heinz Wolff) Sprechen wir über Zahlen (Karl-Heinz Wolff) Die Überschrift ist insoweit irreführend, als der Autor ja schreibt und nicht mit dem Leser spricht. Was Mathematik im allgemeinen und Zahlen im besonderen betrifft,

Mehr

Geometrische Mannigfaltigkeiten

Geometrische Mannigfaltigkeiten Geometrische Mannigfaltigkeiten Thilo Kuessner Abstract Kurzfassung der Vorlesung: Definitionen, Beispiele und Sätze, keine Beweise. Definition 1. Ein topologischer Raum ist eine Menge X mit einer Familie

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

Mehr

Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik

Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik Computergrundlagen Boolesche Logik, Zahlensysteme und Arithmetik Institut für Computerphysik Universität Stuttgart Wintersemester 2012/13 Wie rechnet ein Computer? Ein Mikroprozessor ist ein Netz von Transistoren,

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Logische Verknüpfungen. while-schleifen. Zahlendarstellung auf dem Computer. Formatierung von Zahlen in MATLAB.

Logische Verknüpfungen. while-schleifen. Zahlendarstellung auf dem Computer. Formatierung von Zahlen in MATLAB. Logische Verknüpfungen. while-schleifen. Zahlarstellung auf dem Computer. Formatierung von Zahlen in MATLAB. Logische Verknüpfungen In der letzten Sitzung haben wir kennengelernt, wie wir Zahlen mit Operationen

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Zahldarstellung und Rundungsfehler Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Überblick 2 Darstellung ganzer Zahlen,

Mehr

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme Grundlagen der Informatik 2 Grundlagen der Digitaltechnik 1. Zahlensysteme Prof. Dr.-Ing. Jürgen Teich Dr.-Ing. Christian Haubelt Lehrstuhl für Hardware-Software Software-Co-Design Grundlagen der Digitaltechnik

Mehr

Teil II. Nichtlineare Optimierung

Teil II. Nichtlineare Optimierung Teil II Nichtlineare Optimierung 60 Kapitel 1 Einleitung In diesem Abschnitt wird die Optimierung von Funktionen min {f(x)} x Ω betrachtet, wobei Ω R n eine abgeschlossene Menge und f : Ω R eine gegebene

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Numerisches Programmieren, Übungen

Numerisches Programmieren, Übungen Technische Universität München SoSe 0 Institut für Informatik Prof Dr Thomas Huckle Dipl-Math Jürgen Bräckle Nikola Tchipev, MSc Numerisches Programmieren, Übungen Musterlösung Übungsblatt: Zahlendarstellung,

Mehr

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird. Zahlensysteme Definition: Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird. In der Informatik spricht man auch von Stellenwertsystem,

Mehr

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Kapitel 4: Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Codierung von rationalen Zahlen Konvertierung

Mehr

Fehler in numerischen Rechnungen

Fehler in numerischen Rechnungen Kapitel 1 Fehler in numerischen Rechnungen Analyse numerischer Rechnungen: - Welche möglichen Fehler? - Einfluss auf Endergebnis? - Nicht alles in der Comp.Phys./Numerical Analysis dreht sich um Fehler

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

Zuammenfassung: Reelle Funktionen

Zuammenfassung: Reelle Funktionen Zuammenfassung: Reelle Funktionen 1 Grundlegendes a) Zahlenmengen IN = {1; 2; 3; 4;...} Natürliche Zahlen IN 0 = IN {0} Natürliche Zahlen mit 0 ZZ = {... ; 2; 1; 0; 1; 2;...} Ganze Zahlen Q = { z z ZZ,

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Ausgabe: 2005-02-21 Abgabe: 2005-02-21 Technische Informatik - Eine

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt:

Zur Vereinfachung betrachten wir nun nur noch Funktionen f, die einen Funktionswert f nµberechnen. Sie werden alle in einer Tabelle dargestellt: Informatik 13: Gierhardt Theoretische Informatik III Berechenbarkeit Nicht-berechenbare Funktionen Nach der Church-Turing-These kann alles, was berechenbar ist, mit einer Turing-Maschine oder einer While-Maschine

Mehr

Kapitel 4A: Einschub - Binärcodierung elementarer Datentypen. Einschub: Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik

Kapitel 4A: Einschub - Binärcodierung elementarer Datentypen. Einschub: Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik Einschub: Binärcodierung elementarer Datentypen Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik Unterscheide Zahl-Wert Zahl-Bezeichner Zu ein- und demselben Zahl-Wert kann es verschiedene

Mehr

Teile und Herrsche Teil 2

Teile und Herrsche Teil 2 Teile und Herrsche Teil 2 binär Suchen und schnell Multiplizieren Markus Fleck Manuel Mauky Hochschule Zittau/Görlitz 19. April 2009 Suchen in langen Listen (0, 1, 2, 7, 8, 9, 9, 13, 13, 14, 14, 14, 16,

Mehr

Zur Universalität der Informatik. Gott ist ein Informatiker. Die Grundordnung der Welt läßt sich mathematisch formulieren:

Zur Universalität der Informatik. Gott ist ein Informatiker. Die Grundordnung der Welt läßt sich mathematisch formulieren: Daten und ihre Codierung Seite: 1 Zur Universalität der Informatik Gott ist ein Informatiker Die Grundordnung der Welt läßt sich mathematisch formulieren: Naturgesetze, wie wir sie in der Physik, Chemie

Mehr

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

Mehr

1. Einführung. Umwelt-Campus Birkenfeld Numerische Mathematik

1. Einführung. Umwelt-Campus Birkenfeld Numerische Mathematik . Einführung Die numerische Mathematik, kur Numerik genannt, beschäftigt sich als Teilgebiet der Mathematik mit der Konstruktion und Analyse von Algorithmen für technisch-naturwissenschaftliche Probleme..

Mehr

2 Darstellung von Zahlen und Zeichen

2 Darstellung von Zahlen und Zeichen 2.1 Analoge und digitale Darstellung von Werten 79 2 Darstellung von Zahlen und Zeichen Computer- bzw. Prozessorsysteme führen Transformationen durch, die Eingaben X auf Ausgaben Y abbilden, d.h. Y = f

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt - 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Prof. Dr. Bernhard Schiefer bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Wesentliche Inhalte Einführung Rechnergrundlagen Grundlagen der Programmierung Kern imperativer

Mehr

Codierung, Codes (variabler Länge)

Codierung, Codes (variabler Länge) Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

Informationsdarstellung im Rechner

Informationsdarstellung im Rechner Informationsdarstellung im Rechner Dr. Christian Herta 15. Oktober 2005 Einführung in die Informatik - Darstellung von Information im Computer Dr. Christian Herta Darstellung von Information im Computer

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen

Entscheidungsprobleme. Berechenbarkeit und Komplexität Entscheidbarkeit und Unentscheidbarkeit. Die Entscheidbarkeit von Problemen Berechenbarkeit und Komlexität Entscheidbarkeit und Unentscheidbarkeit Wolfgang Schreiner Wolfgang.Schreiner@risc.uni-linz.ac.at Research Institute for Symbolic Comutation (RISC) Johannes Keler University,

Mehr

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5) Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

11.3 Komplexe Potenzreihen und weitere komplexe Funktionen

11.3 Komplexe Potenzreihen und weitere komplexe Funktionen .3 Komplexe Potenzreihen und weitere komplexe Funktionen Definition.) komplexe Folgen: z n = x n + j. y n mit zwei reellen Folgen x n und y n.) Konvergenz: Eine komplexe Folge z n = x n + j. y n heißt

Mehr

2 Der Schnelleinstieg *

2 Der Schnelleinstieg * 7 2 Der Schnelleinstieg * Eine Programmiersprache können Sie auf verschiedene Art und Weise lernen. Sie können sich zuerst mit den Konzepten befassen und anschließend mit der Praxis oder umgekehrt. Damit

Mehr

3. Ziel der Vorlesung

3. Ziel der Vorlesung 3. Ziel der Vorlesung Der Zweck der Vorlesung ist das Studium fundamentaler Konzepte in der Algorithmentheorie. Es werden relevante Maschinenmodelle, grundlegende und höhere Datenstrukturen sowie der Entwurf

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = 1100110011 binär Zahlensysteme Menschen nutzen zur Angabe von Werten und zum Rechnen vorzugsweise das Dezimalsystem Beispiel 435 Fische aus dem Teich gefischt, d.h. 4 10 2 + 3 10 1 +5 10 0 Digitale Rechner speichern Daten

Mehr

Der Zwei-Quadrate-Satz von Fermat

Der Zwei-Quadrate-Satz von Fermat Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat

Mehr

21.10.2013. Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer?

21.10.2013. Vorlesung Programmieren. Agenda. Dezimalsystem. Zahlendarstellung. Zahlendarstellung. Oder: wie rechnen Computer? Vorlesung Programmieren Zahlendarstellung Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Agenda Zahlendarstellung Oder: wie rechnen

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Extrema von Funktionen in zwei Variablen

Extrema von Funktionen in zwei Variablen Wirtschaftswissenschaftliches Zentrum Universität Basel Mathematik für Ökonomen 1 Dr. Thomas Zehrt Extrema von Funktionen in zwei Variablen Literatur: Gauglhofer, M. und Müller, H.: Mathematik für Ökonomen,

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

Grundlagen der Informatik

Grundlagen der Informatik : : : : : : : : : : : : : : : : : : : : : : Grundlagen der Informatik Unter Verwendung von Folien von Prof. Helmut Balzert MICHAEL M. RESCH (HLRS) Rechnersysteme II : : : : : : : : : : : : : : : : : :

Mehr

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Einführung in die Vektor- und Matrizenrechnung. Matrizen Einführung in die Vektor- und Matrizenrechnung Matrizen Definition einer Matrix Unter einer (reellen) m x n Matrix A versteht man ein rechteckiges Schema aus reellen Zahlen, die wie folgt angeordnet sind:

Mehr

Zahlendarstellungen und Rechnerarithmetik*

Zahlendarstellungen und Rechnerarithmetik* Zahlendarstellungen und Rechnerarithmetik* 1. Darstellung positiver ganzer Zahlen 2. Darstellung negativer ganzer Zahlen 3. Brüche und Festkommazahlen 4. binäre Addition 5. binäre Subtraktion *Die Folien

Mehr

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 15.11.07 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Review / Organisatorisches o Probleme bei Foliendownload?

Mehr

4. Abbildung / Funktion

4. Abbildung / Funktion 4. Abbildung / Funktion In der Mathematik ist eine Funktion oder Abbildung eine Beziehung zwischen zwei Mengen, die jedem Element der einen Menge (Eingangsgröße, Funktionsargument, unabhängige Variable,

Mehr

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean 01.11.05 1 Noch für heute: 01.11.05 3 primitie Datentypen in JAVA Primitie Datentypen Pseudocode Name Speichergröße Wertgrenzen boolean 1 Byte false true char 2 Byte 0 65535 byte 1 Byte 128 127 short 2

Mehr

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Seminararbeit für das SE Reine Mathematik- Graphentheorie Seminararbeit für das SE Reine Mathematik- Graphentheorie Der binäre Rang, der symplektische Graph, die Spektralzerlegung und rationale Funktionen Vortrag am 24.01.2012 Heike Farkas 0410052 Inhaltsverzeichnis

Mehr

Einführung in die Informatik Grammars & Parsers

Einführung in die Informatik Grammars & Parsers Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

ax 2 + bx + c = 0, (4.1)

ax 2 + bx + c = 0, (4.1) Kapitel 4 Komplexe Zahlen Wenn wir uns auf die reellen Zahlen beschränken, ist die Operation des Wurzelziehens (also die Umkehrung der Potenzierung) nicht immer möglich. Zum Beispiel können wir nicht die

Mehr

Wie löst man Mathematikaufgaben?

Wie löst man Mathematikaufgaben? Wie löst man Mathematikaufgaben? Manfred Dobrowolski Universität Würzburg Wie löst man Mathematikaufgaben? 1 Das Schubfachprinzip 2 Das Invarianzprinzip 3 Das Extremalprinzip Das Schubfachprinzip Verteilt

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 1 Algorithmen und Programme... 1-2 1.1 Algorithmus... 1-3 1.2 Programm... 1-4 1.2.1 Hauptkomponenten des Aufbaus eines Rechners... 1-4 1.2.2 Ein Programm für einen Algorithmus... 1-6 1.2.3 Rekursion...

Mehr

4. Relationen. Beschreibung einer binären Relation

4. Relationen. Beschreibung einer binären Relation 4. Relationen Relationen spielen bei Datenbanken eine wichtige Rolle. Die meisten Datenbanksysteme sind relational. 4.1 Binäre Relationen Eine binäre Relation (Beziehung) R zwischen zwei Mengen A und B

Mehr

Beispiel 11.2. Wenn p ein Polynom vom Grad größer gleich 1 ist, ist q : C Ĉ definiert durch q (z) =

Beispiel 11.2. Wenn p ein Polynom vom Grad größer gleich 1 ist, ist q : C Ĉ definiert durch q (z) = Funktionentheorie, Woche Funktionen und Polstellen. Meromorphe Funktionen Definition.. Sei U C offen und sei f : U gilt, nennt man f meromorph auf U: Ĉ eine Funktion. Wenn folgendes. P := f hat keine Häufungspunkte;.

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Binärdarstellung von Fliesskommazahlen

Binärdarstellung von Fliesskommazahlen Binärdarstellung von Fliesskommazahlen 1. IEEE 754 Gleitkommazahl im Single-Format So sind in Gleitkommazahlen im IEEE 754-Standard aufgebaut: 31 30 24 23 0 S E E E E E E E E M M M M M M M M M M M M M

Mehr

Ein Turbo-Pascal-Programm zur Umrechnung vom Dezimalsystem in andere Zahlensysteme

Ein Turbo-Pascal-Programm zur Umrechnung vom Dezimalsystem in andere Zahlensysteme Ein Turbo-Pascal-Programm zur Umrechnung vom Dezimalsystem in andere Zahlensysteme Stefan Ackermann Mathematisches Institut der Universität Leipzig 11. November 2005 Zusammenfassung Dezimalzahlen bzw.

Mehr

Informatik ohne Rechner

Informatik ohne Rechner Outline Einfu hrung Computer Science Unplugged Fakulta t WIAI, Otto-Friedrich Universita t Bamberg 29.10.2007 1 2 3 4 5 Was können Computer? Computer sind heute fast überall, nicht immer sehen sie wie

Mehr

Programmiersprachen und Programmierkonzepte

Programmiersprachen und Programmierkonzepte Programmiersprachen und Programmierkonzepte Inhalt Programmiersprachen- Entwicklung Programmiersprachen und Programmierparadigmen Die Geschichte der Programmiersprachen Anfänge vor 200 Jahren Programmierbare

Mehr

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Mag. Christian Gürtler Programmierung Grundlagen der Informatik 2011 Inhaltsverzeichnis I. Allgemeines 3 1. Zahlensysteme 4 1.1. ganze Zahlen...................................... 4 1.1.1. Umrechnungen.................................

Mehr

1. Grundlegende Konzepte der Informatik

1. Grundlegende Konzepte der Informatik 1. Grundlegende Konzepte der Informatik Inhalt Algorithmen Darstellung von Algorithmen mit Programmablaufplänen Beispiele für Algorithmen Aussagenlogik Zahlensysteme Kodierung Peter Sobe 1 Algorithmen

Mehr

Karlsruher Institut für Technologie Institut für Algebra und Geometrie

Karlsruher Institut für Technologie Institut für Algebra und Geometrie Karlsruher Institut für Technologie Institut für Algebra und Geometrie PD Dr. Stefan Kühnlein Dipl.-Math. Jochen Schröder Einführung in Algebra und Zahlentheorie Übungsblatt 2 Aufgabe 1 (4 Punkte) Seien

Mehr

A) Durchsuchen von Datenbanken im Internet durch Endnote

A) Durchsuchen von Datenbanken im Internet durch Endnote EINLEITUNG/ANWEISUNGEN ZU DIESEM TEXT Wir werden die obere Liste (File/ Edit usw.) benutzen, obwohl die meisten Funktionen auch möglich mit rechtem Mausklick, mit Kombinationen der Tastatur oder mit den

Mehr

1 Aussagenlogik und Mengenlehre

1 Aussagenlogik und Mengenlehre 1 Aussagenlogik und engenlehre 1.1 engenlehre Definition (Georg Cantor): nter einer enge verstehen wir jede Zusammenfassung von bestimmten wohl unterschiedenen Objekten (m) unserer Anschauung oder unseres

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

TECHNISCHE UNIVERSITÄT DRESDEN. Fakultät Mathematik und Naturwissenschaften, Fachrichtung Mathematik Institut für Algebra

TECHNISCHE UNIVERSITÄT DRESDEN. Fakultät Mathematik und Naturwissenschaften, Fachrichtung Mathematik Institut für Algebra TECHNISCHE UNIVERSITÄT DRESDEN Fakultät Mathematik und Naturwissenschaften, Fachrichtung Mathematik Institut für Algebra Halbgruppen binärer Relationen auf einer 3-elementigen Menge Arbeit im Rahmen des

Mehr

Mathematik Akzentfach

Mathematik Akzentfach Mathematik Akzentfach 1. Stundendotation Klasse 1. Klasse 2. Klasse 3. Klasse 4. Klasse Wochenlektionen 3 3 2. Didaktische Konzeption Überfachliche Kompetenzen Das Akzentfach Mathematik fördert besonders...

Mehr

D A T E N... 1 Daten Micheuz Peter

D A T E N... 1 Daten Micheuz Peter D A T E N.....! Symbole, Alphabete, Codierung! Universalität binärcodierter Daten! Elementare Datentypen! Speicherung binärcodierter Daten! Befehle und Programme! Form und Bedeutung 1 Daten Micheuz Peter

Mehr

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

Zum Einsatz von Operatoren im Informatikunterricht

Zum Einsatz von Operatoren im Informatikunterricht Friedrich-Schiller-Universität Jena Fakultät für Mathematik und Informatik Professur für Didaktik der Informatik/Mathematik Claudia Strödter E-Mail: claudia.stroedter@uni-jena.de Zum Einsatz von Operatoren

Mehr

Kapitel 3. Zufallsvariable. Wahrscheinlichkeitsfunktion, Dichte und Verteilungsfunktion. Erwartungswert, Varianz und Standardabweichung

Kapitel 3. Zufallsvariable. Wahrscheinlichkeitsfunktion, Dichte und Verteilungsfunktion. Erwartungswert, Varianz und Standardabweichung Kapitel 3 Zufallsvariable Josef Leydold c 2006 Mathematische Methoden III Zufallsvariable 1 / 43 Lernziele Diskrete und stetige Zufallsvariable Wahrscheinlichkeitsfunktion, Dichte und Verteilungsfunktion

Mehr

Sortieren. Eine Testmenge erstellen

Sortieren. Eine Testmenge erstellen Sortieren Eine der wohl häufigsten Aufgaben für Computer ist das Sortieren, mit dem wir uns in diesem Abschnitt eingeher beschäftigen wollen. Unser Ziel ist die Entwicklung eines möglichst effizienten

Mehr

Information in einem Computer ist ein

Information in einem Computer ist ein 4 Arithmetik Die in den vorhergehenden Kapiteln vorgestellten Schaltungen haben ausschließlich einfache, Boole sche Signale verarbeitet. In diesem Kapitel wird nun erklärt, wie Prozessoren mit Zahlen umgehen.

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr