Inhaltsverzeichnis GELEITWORT von Dr. Eric Müller VII VORWORT IX DANKSAGUNG XI 1 KOMPLEXE KODIERUNG 1 Komplexe Zahlen - Kurze Einführung Kodierungsproblem komplexer Zahlen Problemanalyse und Entwurf der Lösung Algorithmus Komplexe_Kodierung Programm Komplexe_Kodierung Programmanalyse Aufgaben Anmerkungen 1 2 3 6 6 9 13 14 2 VERSCHACHTELTESCHACHTELN 15 Problembeschreibung Problemanalyse und Entwurf der Lösung Der Algorithmus Das Programm Die Programmanalyse Drei kleine Programmierungstricks Aufgaben, Problemstellungen Anmerkungen 15 16 17 19 22 23 24 24 3 ZEICHENKETTEN 25 Grundlagen 1. Zeichen 2. C-Strings 3. C++ Strings Aufgaben Problem 1. Sich Wiederholende Zeichenketten Problem 2. Das Perlencollier Problem 3. Parkinson Problem 4. Rapunzel im Internet Problem 5. Bridge-Blatt Problem 6. Wo sind die Königinnen? Problem 7. Vogelsprache Bibliografische Informationen http://d-nb.info/991419111 25 25 26 27 32 33 35 37 40 44 49 55 digitalisiert durch XIV Inhaltsverzeichnis 4 MENGEN UND RELATIONEN Grundlagen 1. Element und Menge 2. Leere Menge, Teilmenge, Gleichheit 3. Schreibweisen 4. Mengenoperationen 5. Multimengen 6. Relationen 7. Ordnungen 8. Funktionen Aufgaben Problem 1. Cantor-Diagonalisierung Problem 2. Menge und Multimenge Problem 3. Relation und ihre Eigenschaften 5 ARITHMETIK UND ALGEBRA Grundlagen 1. Teilbarkeit 2. Primzahlen 3. Fundamentalsatz der Arithmetik 4. Division mit Rest, ggT und kgV 5. Kongruenzen. Elementare Eigenschaften 6. Chinesischer Restsatz 7. Fermatsche Sätze 8. Die Pell'sche Gleichung 9. Satz von Vieta Aufgaben Problem 1. Primzahltest Problem 2. Sieb des Eratosthenes Problem 3. Druck einer Broschüre Problem 4. Primzahlen und Teiler Problem 5. Der alte Gärtner Problem 6. Kätzchen in Hüten Problem 7. Hausnummer Problem 8. Korrekte Nachrichten Problem 9. Anzahl der Teiler Problem 10. Datumsverpackung Problem 11. Die schöne Marie und der schöne Hans Problem 12. Kubische Gleichung Problem 13. Quadrat einer speziellen Zahl Problem 14. Umwandlung einer römischen Zahl in eine Dezimalzahl Problem 15. Umwandlung einer Dezimalzahl in eine römische Zahl Problem 16. Hässliche Zahlen Problem 17. Vögel auf den Bäumen Problem 18. Wieviele sind es mindestens? (chinesischer Restsatz) 59 59 59 60 60 61 63 63 64 64 65 67 72 74 79 79 79 79 81 81 82 83 84 86 87 89 91 93 97 99 102 106 112 114 117 119 121 123 125 126 129 130 132 134 Inhaltsverzeichnis 6 EBENE GEOMETRIE, TRIGONOMETRIE Grundlagen 1. Dreiecksgeometrie. 2. Berechnung eines beliebigen Dreiecks. 3. Wichtige trigonometrische Formeln Aufgaben Problem 1. Berechnung des Dreiecks (SSW) Problem 2. Der Kreisumfang Problem 3. Kreise im gleichschenkligen Dreieck 7 KOMBINATORIK XV 137 137 137 138 139 140 140 144 148 151 Grundlagen 151 1. Prinzip von Inklusion und Exklusion. 151 2. Das Schubfachprinzip 153 3. Permutationen (Anordnungen mit Berücksichtigung der Reihenfolge) 156 4. Variationen (Auswahlen mit Beachtung der Reihenfolge) 158 5. Kombinationen (Auswahlen ohne Beachtung der Reihenfolge) 159 6. Binomialkoeffizienten und ihre Anwendungen 160 Aufgaben 162 Problem 1. Alle Teilmengen einer Menge in lexikographischer Reihenfolge 164 Problem 2. Der Gray-Code (minimale Änderungsreihenfolge) 168 Problem 3. Permutationen in lexikographischer Reihenfolge 171 Problem 4. Ranking einer Permutation in lexikographischer Reihenfolge 173 Problem 5. Unranking einer Permutation in lexikographischer Reihenfolge176 Problem 6. Binomialkoeffizienten 178 Problem 7. Das kleinste Vielfache 184 8 KOMBINATORIK: CATALAN-ZAHLEN Einführung Sechs Probleme aus der Catalan-Familie Theorem. P1-P6 und die Catalan-Zahlen Die rekursive Formel Die erzeugende Funktion Noch 4 äquivalente Probleme Algorithmen zur Berechnung der Catalan-Zahlen Zweiter Algorithmus, eine weitere Rekursion Dritter Algorithmus, der ohne Rekursion auskommt Aufgaben 187 187 188 191 194 195 197 198 199 200 203 XVI Inhaltsverzeichnis 9 POTENZSUMMEN Problembeschreibung Problemanalyse. Algebraische Modellierung Von der Rekursionsgleichung zum Algorithmus Der Algorithmus Programm Aufgaben 10 ALGORITHMISCHE GEOMETRIE Grundlagen 1. Darstellung der Punkte, Quadranten 2. Abstand zwischen zwei Punkten 3. Gerade in der Ebene 4. Abstand eines Punktes zu einer Geraden, Fläche eines Dreiecks 5. Die Ellipse 6. Das Außenprodukt 7. Die Fläche eines Polygons, Punkt im Inneren eines Polygons 8. Nächstes Paar 9. Die konvexe Hülle Aufgaben Problem 1. Nächstes Paar Problem 2. Quadrätchen im Kreis Problem 3. Wie sicher sind die Bürger? 11 GRAPHEN Grundlagen 1. Einführende Begriffe 2. Weg, Pfad, Zyklus und Kreis 3. Vollständige und bipartite Graphen 4. Darstellung der Graphen 5. Traversieren von Graphen (BFS und DFS) 6. Zusammenhang 7. Hamiltonsche und eulersche Graphen 8. Bäume und Wälder 9. Minimaler Spannbaum Aufgaben Problem 1. Breiten- und Tiefensuche (BFS und DFS) Problem 2. Die kürzesten Pfade Problem 3. Das Alphabet der fremden Sprache Problem 4. Markus besucht seine Freunde Problem 5. Das Haus des Nikolaus Problem 6. Minimaler Spannbaum (Kruskal-Algorithmus) 205 205 205 207 210 212 215 217 217 217 218 219 221 222 223 223 226 228 230 231 234 238 249 249 249 250 251 252 254 256 257 258 259 261 262 268 270 276 281 283 Inhaltsverzeichnis XVII 12 GREEDY 287 Grundlagen Problem 1. Rucksackproblem Problem 2. Kartenfärbung Problem 3. Springer auf dem Schachbrett Problem 4. Huffman-Kodierung 13 REKURSION Vollständige Induktion Rekursion: Grundlagen Problem 1. Quersumme und Spiegelung einer natürlichen Zahl Problem 2. Die Zahl 4 Problem 3. Rest großer Potenzen Problem 4. Die Torte (lineare Rekursion) Problem 5. Die Ackermannfunktion (verschachtelte Rekursion, "compound recursion") Problem 6. Rekursive Zahlenumwandlung (Dezimalsystem in System mit Basis P) Problem 7. Summe zweier Wurzeln (verzweigte Rekursion) Problem 8. Collatz-Funktion (nicht-monotone Rekursion) Problem 9. Quadrate und Quadrätchen Problem 10. Quadrate (direkte Rekursion) Problem 11. Quadrate und Kreise (indirekte Rekursion) Problem 12. Die Koch'sche Schneeflockenkurve 14 TEILE UND HERRSCHE Grundlagen Problem 1. Größter gemeinsamer Teiler mehrerer Zahlen Problem 2. Die Türme von Hanoi Problem 3. Integral mit Trapezregel Problem 4. Quicksort Problem 5. Mergesort (Sortieren durch Verschmelzen) Problem 6. Quad-Bäume Problem 7. Diskrete Fourier-Transformation (DFT) 15 BACKTRACKING Problem 1. Das Problem der n Damen Allgemeine Bemerkungen zum Backtracking-Verfahren Problem 2. Das Problem der n Türme Problem 3. Das Problem der Türme auf den ersten m Reihen 287 288 293 295 298 305 305 311 312 314 316 318 320 322 324 325 327 330 339 343 351 351 352 354 356 357 360 361 366 371 371 377 380 381 XVIII Inhaltsverzeichnis Problem 4. Das Problem der aufsteigenden Türme auf den ersten m Reihen Problem 5. Die Freundschafts-Jugendherberge Problem 6. Partitionen einer natürlichen Zahl Problem 7. Erdkunde-Referate Problem 8. Alle Wege des Springers Problem 9. Das Fotoproblem Problem 10. Der ausbrechende Ball Problem 11. Olivensport Problem 12. Testmusterkompaktierung Problem 13. Sudoku Noch 10 Probleme 16 DYNAMISCHE PROGRAMIERUNG Grundlagen, Eigenschaften des Verfahrens 1. Ursprung des Konzeptes 2. Optimalitätsprinzip 3. Überlappung des Problems, Speicherung der optimalen Teilproblemlösungen (Memoization) 4. Einführendes Beispiel - die Fibonacci-Folge 5. Bottom-up versus top-down 6. Vergleich mit anderen Verfahren Aufgaben Problem 1. Das Zählen der Kaninchen Problem 2. Längste aufsteigende Teilfolge Problem 3. Zahlen-Dreieck Problem 4. Domino Problem 5. Verteilung der Geschenke Problem 6. Ähnliche Summe Problem 7. Schotten auf dem Oktoberfest Problem 8. Springer auf dem Schachbrett Problem 9. Summen von Produkten Problem 10. Minimale Triangulierung eines konvexen Vielecks Problem 11. Multiplikation einer Matrizenfolge Problem 12. Edit-Distanz Problem 13. Arbitrage Problem 14. Längste gemeinsame Teilfolge (LCS) 382 383 384 387 389 392 393 396 402 411 417 425 425 425 425 426 426 428 428 429 430 433 437 440 444 447 452 459 464 467 473 478 484 488 LITERATURVERZEICHNIS 493 STICHWORTVERZEICHNIS 497