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 2 VERSCHACHTELTE SCHACHTELN Problembeschreibung Problemanalyse und Entwurf der Lösung Der Algorithmus Das Programm Die Programmanalyse Drei kleine Programmierungstricks Aufgaben, Problemstellungen Anmerkungen 3 ZEICHENKETTEN 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 Copyright@ 2006 Doina Logofatu && Vieweg-Verlag 1 2 3 6 6 9 13 14 15 15 16 17 19 22 23 24 24 25 25 25 26 27 32 33 35 37 40 44 49 55 XIII 4 MENGEN UND RELATIONEN 59 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 59 59 60 60 61 63 63 64 64 65 67 72 75 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) XIV 81 81 81 81 82 83 84 85 86 88 89 91 93 95 99 101 104 108 113 115 118 121 122 125 126 128 130 132 134 136 Copyright@ 2006 Doina Logofatu && Vieweg-Verlag 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 139 139 139 140 141 142 142 146 150 153 Grundlagen 153 1. Prinzip von Inklusion und Exklusion. 153 2. Das Schubfachprinzip 155 3. Permutationen (Anordnungen mit Berücksichtigung der Reihenfolge) 158 4. Variationen (Auswahlen mit Beachtung der Reihenfolge) 160 5. Kombinationen (Auswahlen ohne Beachtung der Reihenfolge) 161 6. Binomialkoeffizienten und ihre Anwendungen 162 Aufgaben 164 Problem 1. Alle Teilmengen einer Menge in lexikographischer Reihenfolge 166 Problem 2. Der Gray-Code (minimale Änderungsreihenfolge) 170 Problem 3. Permutationen in lexikographischer Reihenfolge 173 Problem 4. Ranking einer Permutation in lexikographischer Reihenfolge 175 Problem 5. Unranking einer Permutation in lexikographischer Reihenfolge178 Problem 6. Binomialkoeffizienten 180 Problem 7. Das kleinste Vielfache 186 8 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 Copyright@ 2006 Doina Logofatu && Vieweg-Verlag 189 189 190 193 196 197 199 200 201 202 205 XV 9 POTENZSUMMEN 207 Problembeschreibung Problemanalyse. Algebraische Modellierung Von der Rekursionsgleichung zum Algorithmus Der Algorithmus Programm 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 219 219 219 220 221 223 224 225 225 228 230 233 234 236 241 251 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 XVI 207 207 209 212 214 251 251 252 253 254 256 258 259 260 261 263 264 267 269 275 280 Copyright@ 2006 Doina Logofatu && Vieweg-Verlag 12 GREEDY Grundlagen Problem 1. Rucksackproblem Problem 2. Kartenfärbung Problem 3. Springer auf dem Schachbrett 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 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 Copyright@ 2006 Doina Logofatu && Vieweg-Verlag 283 283 284 286 287 291 291 297 298 300 302 304 306 308 310 311 313 316 325 329 337 337 338 340 342 344 346 348 352 357 357 363 365 367 368 369 370 XVII 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 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 373 375 378 379 382 388 397 403 403 403 403 404 404 406 407 407 408 411 415 418 422 425 430 437 442 445 451 456 LITERATURVERZEICHNIS 463 STICHWORTVERZEICHNIS 467 XVIII Copyright@ 2006 Doina Logofatu && Vieweg-Verlag