ACM ICPC Praktikum Kapitel 6: Kombinatorik Übersicht • • • • • Grundlegendes Zählen Binomialkoeffizienten Wichtige Folgen Rekurrenzgleichungen Rekursion und Induktion Grundlegendes Zählen • Produktregel: - a Möglichkeiten für Menge A - b Möglichkeiten für Menge B ) a ¢ b Möglichkeiten für A £ B A: 1 1 1 1 2 2 1 2 2 2 A £ B: B: 1 2 Grundlegendes Zählen • Summenregel: - a Möglichkeiten für Menge A - b Möglichkeiten für Menge B - A und B disjunkt ) a+b Möglichkeiten für A [ B A: 1 2 1 2 3 4 A [ B: B: 3 4 Grundlegendes Zählen • Inklusion-Exklusion-Prinzip: Für beliebige Mengen A und B gilt: |A [ B| = |A| + |B| - |A Å B| Allgemein gilt für A1,…,An: |A1 [ … [ An| = k=1n (-1)k+1 i1<i2<…<ik |Ai1 Å … Å Aik| Grundlegendes Zählen • Bijektion: Finde Abbildung f:M ! N von einer zu zählenden Menge M zu einer bekannten Menge N, so dass - für jedes y 2 N höchstens ein x existiert mit f(x)=y (f injektiv) - für jedes y 2 N mindestens ein x existiert mit f(x)=y (f surjektiv) Dann heißt f auch bijektiv. Grundlegendes Zählen • Anzahl Permutationen auf n Zahlen: n! = 1 ¢ 2 ¢ … ¢ n • Anzahl aller Teilmengen von n Zahlen: 2n • Anzahl aller k-elementigen Folgen aus n Zahlen (ohne Zurücklegen): n!/(n-k)! • Anzahl aller k-elementiger Teilmengen von n n Zahlen: ( k ) = n!/((n-k)! k!) Grundlegendes Zählen • Anzahl der k-elementigen Folgen von n Zahlen mit Zurücklegen und Beachtung der Reihenfolge: nk • Anzahl der k-elementigen Folgen von n Zahlen mit Zurücklegen ohne Beachtung der Reihenfolge: n-1+k ( k ) Binomialkoeffizienten • ( ) = 1, ( ) = 0 für alle k>n n-1 • ( nk ) = ( n-1 ) + ( k-1 k ) • Für beliebige a und b gilt: (a+b)n = i=0n ( ni ) ai bn-I n 0 n k • Berechnung von ( ): rekursive Formel oben (Pascal Dreieck) n oder ( k ) = i=0k-1 (n-i)/(k-i) n k Rekurrenzgleichungen • a1 = 1 und an = an-1+1: an = n • a1 = 2 und an = 2 an-1: an = 2n • a1 = 1 und an = n an-1: an = n! • a1 = 2 und an = (an-1)2: n 2 an = 2 Rekurrenzgleichungen • Fibonacci Zahlen: F0 = 0, F1 = 1, Fn = Fn-1+Fn-2 Fn = (1/ 5 ) ( ( 1+2 5 )n – ( 1- 25 )n ) • Catalan Zahlen: C0 = 1, Cn = k=0n-1 Ck Cn-1-k Cn = 1/(n+1) ¢ (2nn ) Zählen z.B. Anzahl Möglichkeiten für n ()Klammerungen. n=3: ((())), ()(()), (())(), (()()), ()()() Rekurrenzgleichungen • Eulersche Zahlen: n-1 i h nk i = k hn-1 i + (n-k+1) h k k-1 Zählen die Anzahl der Permutationen über n Zahlen mit k aufsteigenden Sequenzen. • Anzahl ganzzahliger Partitionen: P(1,1)=1, P(n,k) = 0 für k>n P(n,k) = P(n-k,k)+P(n,k-1) Zählen die Anzahl ganzahliger Partitionen mit größtem Teil k. Rekurrenzgleichungen • Stirling Zahlen erster Ordnung: n n-1 [ k ] = [ n-1 ] + (n-1) [ k-1 k ] Zählen die Anzahl der Permutationen auf n Zahlen mit genau k Kreisen. • Stirling Zahlen zweiter Ordnung: n-1 { nk } = k { n-1 } + { k k-1 } Zählen die Anzahl der Möglichkeiten, n Elemente in k Teilmengen aufzuteilen. Rekursion und Induktion • Aufzählen kombinatorischer Strukturen: verwende rekursive Verfahren • Korrektheitsbeweis rekursiver Verfahren: üblicherweise viel einfacher als für nichtrekursive Verfahren, da Korrektheit rekursiver Verfahren durch vollständige Induktion bewiesen werden kann. Rekurrenzen aufspüren • Oftmals sind kombinatorische Probleme nur schwer direkt zu lösen. • Vorgehen dann: zunächst einfache Beispiele betrachten und Lösung berechnen. • Dann Rekurrenzgleichung herleiten und ggf. Korrektheit beweisen.