Inhaltsverzeichnis - Algorithmen und Problemlösungen mit C++

Werbung
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
Herunterladen