Matematyka dyskretna 1

Opis

Wykład wprowadza aparat matematyczny niezbędny do konstruowania i analizy algorytmów. Składa się z elementów kombinatoryki, teorii grafów i teorii liczb.

Sylabus


Autorzy

Wymagania wstępne

Zawartość

Literatura

  1. V.Bryant, Aspekty kombinatoryki, Wydawnictwa Naukowo-Techniczne 1977.
  2. R.L.Graham, D.E.Knuth, O.Patashnik, Matematyka Konkretna, Państwowe Wydawnictwo Naukowe, Warszawa 1996.
  3. W.Lipski, Kombinatoryka dla programistów, Wydawnictwa Naukowo-Techniczne 2004.
  4. W.Lipski, W.Marek, Analiza kombinatoryczna, Państwowe Wydawnictwo Naukowe, Warszawa 1986.
  5. K.A.Ross, Ch.R.B.Wright, Matematyka Dyskretna, Państwowe Wydawnictwo Naukowe, Warszawa 1996.
  6. Z.Pałka, A.Ruciński, Wykłady z kombinatoryki, Wydawnictwa Naukowo-Techniczne, Warszawa 1998.
  7. R.J.Wilson, Wprowadzenie do teorii grafów, Państwowe Wydawnictwo Naukowe, Warszawa 1985.

Moduły

Wykłady

Indukcja

Wprowadzenie


Matematyka dyskretna to zbiorcza nazwa działów matematyki, zajmujących się badaniem struktur nieciągłych, czyli skończonych lub co najwyżej przeliczalnych. Matematyka dyskretna stała się popularna w ostatnich latach dzięki zastosowaniom w informatyce, która w sposób naturalny zajmuje się jedynie strukturami skończonymi. Oto niektóre działy i tematy mające bardzo silny związek z matematyką dyskretną:

  • logika,
  • teoria mnogości,
  • algebra struktur skończonych,
  • algebra liniowa,
  • kombinatoryka,
  • teoria liczb,
  • algorytmika,
  • teoria informacji,
  • złożoność obliczeniowa,
  • rachunek prawdopodobieństwa,
  • teoria grafów,
  • teoria i częściowych porządków.

Wiele z powyższych zagadnień będzie omawiane w trakcie późniejszych kursów. Część już poznaliście w trakcie kursów:

  • Logika i teoria mnogości,
  • Algebra liniowa z geometrią analityczną,

do których będziemy się często odwoływać.

W trakcie kursu Matematyka dyskretna 1 i jego rozszerzenia Matematyka dyskretna 2 skoncentrujemy się natomiast na następujących zagadnieniach:

  • Matematyka dyskretna 1
    • kombinatoryka,
    • teoria grafów,
    • teoria liczb.
  • Matematyka dyskretna 2:
    • zaawansowana teoria grafów,
    • teoria grup i ciał skończonych,
    • elementy kryptografii.

Notacja:

  • Oznaczenia zbiorów:
    • \( \mathbb{N} \) - zbiór liczb naturalnych, czyli \( {\{ {0,1,2,\ldots} \}\ } \). Tak, tak \( 0 \) jest liczbą naturalną!
    • \( \mathbb{Z} \) - zbiór liczb całkowitych,
    • \( \mathbb{Q} \) - zbiór liczb wymiernych,
    • \( \mathbb{R} \) - zbiór liczb rzeczywistych,
    • \( \mathbb{C} \) - zbiór liczb zespolonych.
  • Oznaczenia niektórych funkcji:
    • \( \log x \) - to logarytm z liczby \( x \) przy podstawie \( 10 \),
    • \( \lg x \) - to logarytm z liczby \( x \) przy podstawie \( 2 \),
    • \( \lfloor x\rfloor \) - to największa liczba całkowita nie większa od \( x \),
    • \( \lceil x\rceil \) - to najmniejsza liczba całkowita nie mniejsza od \( x \).

\( \begin{array} {|c|c|c|} \hline \textrm{Podłoga}: & \mathbb{R} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} & \lfloor x\rfloor \textrm{to największa liczba całkowita mniejsza lub równa} \quad x \\ \hline \textrm{Sufit}: & \mathbb{R} \ni x \mapsto \lceil x\rceil \in \mathbb{Z} & \lceil x\rceil \textrm{to najmniejsza liczba całkowita większa lub równa} \quad x \\ \hline \end{array} \)

I tak na przykład:

\( \begin{array} {|c|c|c|} \hline x & \lfloor x\rfloor & \lceil x\rceil \\ \hline 2 & 2 & 2 \\ \hline -2 & -2 & -2 \\ \hline 2.5 & 2 & 3 \\ \hline -2.5 & -3 & -2 \\ \hline pi & 3 & 4 \\ \hline \end{array} \)

Przykład

Funkcji \( \lfloor x\rfloor \) w połączeniu z funkcją logarytmu można użyć do wyliczania liczby cyfr liczby naturalnej \( k \) zapisanej w układzie dziesiętnym. Jest to mianowicie

\( \lfloor \log_{10}k \rfloor+1 \)

Podobnie

\( \lfloor \log_{2}k \rfloor+1 \)

jest liczbą bitów potrzebnych do zapisania liczby naturalnej \( k \).

W dalszym ciągu przyjmujemy, że jeśli nie jest napisane jakie wartości może przyjmować zmienna, to przyjmuje ona wartości z \( \mathbb{N} \).

Indukcja matematyczna

Indukcja matematyczna będzie przez nas używana jako metoda dowodzenia twierdzeń. Zazwyczaj są to twierdzenia dotyczące liczb naturalnych, ale - jak się jeszcze wielokrotnie przekonamy - wiele różnych twierdzeń, pozornie nie dotyczących liczb naturalnych, można sformułować tak, by można było je poddać dowodowi indukcyjnemu.

Poprawność indukcji matematycznej wynika z dobrego uporządkowania liczb naturalnych, czyli z następującej zasady minimum:

Zasada Minimum

Dowolny niepusty podzbiór \( S \subseteq \mathbb{N} \) zbioru liczb naturalnych ma w sobie liczbę najmniejszą.

Założenie, że zbiór \( S \) nie jest pusty jest oczywiście konieczne, gdyż w zbiorze pustym nie istnieje żadna liczba.

Przykład

Pierwszy, znany dowód używający indukcji przedstawił Francesco Maurolio

w 1575 roku. Udowodnił on, że suma początkowych \( n \) liczb nieparzystych wynosi \( n^2 \), tzn.:

\( 1 + 3 + 5 + \ldots + (2n-1) = n^2 \)

Istotnie, bardzo łatwo sprawdzić, że dla wybranej wartości \( n \) jest to prawda. Na przykład:

\( \begin{align*} 1+3 & = & 4 = 2^2 \\ 1+3+5 & = & 9 = 3^2 \\ 1+3+5+7 & = & 16 = 4^2 \\ 1+3+5+7+9 & = & 25 = 5^2 \end{align*} \)

Ale jak pokazać, że jest to prawdą dla wszystkich liczb?

Z pomocą może nam tu przyjść Zasada Minimum. Gdyby rozważana równość nie zachodziła dla wszystkich liczb naturalnych, to zbiór

\( S = {\{ {n \in \mathbb{N} : 1 + 3 + 5 + \ldots + (2n-1) \neq n^2} \}\ } \)

byłby niepusty, i zgodnie z Zasadą Minimum miałby liczbę najmniejszą. Ten najmniejszy kontrprzykład dla równości Maurolio, tzn. najmniejszą liczbę w zbiorze \( S \), oznaczmy sobie przez \( s \). Wiemy już, że \( s\neq 1,2,3,4,5 \), bo te liczby spełniają równości Maurolio, więc nie leżą w zbiorze \( S \). Również \( s\neq 0 \) no oczywiście suma zerowej liczby nieparzystych liczb wynosi \( 0=0^2 \), wiec \( 0 \not\in S \). Oznacza to, że \( s>5 \).

Z drugiej strony, skoro \( s \) jest najmniejszym kontrprzykładem, to \( s-1 \) spełnia równość Maurolio więc:

\( 1 + 3 + 5 + \ldots + (2s-3) = (s-1)^2. \)

Dodając teraz do obu stron równości kolejną liczbę nieparzystą, czyli \( 2s+1 \), dostajemy

\( 1 + 3 + 5 + \ldots + (2s-3) + (2s-1) = (s-1)^2 + (2s-1) = s^2 - 2s + 1 + 2s - 1 = s^2, \)

co oczywiście oznacza, że \( s\not\in S \). Tym samym \( s \) nie może być najmniejszą liczbą w zbiorze kontrprzykładów, a więc w ogóle taki kontrprzykład istnieć nie może, i wobec tego wszystkie liczby naturalne spełniają równość Maurolio.

Rozumowanie przeprowadzone na przykładzie równości Maurolio wskazuje, że jeśli tylko \( Z \subseteq \mathbb{N} \) jest jakimś zbiorem liczb naturalnych,

  • w którym jest zero, tzn. \( 0 \in Z \),
  • oraz \( Z \) wraz z każdą liczbą naturalną \( k \) zawiera również kolejną liczbę \( k+1 \), tzn. \( \forall k\in Z \ \ k+1 \in Z \),

to wtedy \( Z \) musi już zawierać wszystkie liczby naturalne, tzn. \( Z=\mathbb{N} \).

Pokażemy, że dla dowolnej liczby naturalnej \( n \) zachodzi:

\( 0+1+2+\ldots+n=\frac{n(n+1)}{2}\qquad \) dla \( n \geq 0 \)

Podobnie jak poprzednio łatwo udowodnić, iż jest to prawda dla wybranych, konkretnych \( n \). W szczególności:

  • dla \( n=2 \) mamy \( 1+2=3 \) oraz \( \frac{2\cdot(2+1)}{2}=3 \),
  • dla \( n=5 \) mamy \( 1+2+3+4+5=15 \) oraz \( \frac{5\cdot(5+1)}{2}=15 \),
  • dla \( n=14 \) mamy \( 1+2+\ldots+14=105 \) oraz \( \frac{14\cdot(14+1)}{2}=105 \).

Jednak te wszystkie równości nie dowodzą, iż jest to prawda dla dowolnego \( n\in\mathbb{N} \). Żadnym skończonym ciągiem sprawdzeń nie jesteśmy w stanie uzasadnić tej równości dla wszystkich liczb naturalnych z osobna, gdyż jest ich zbyt wiele. Z pomocą przychodzi jednak schemat rozumowania indukcyjnego zaproponowany powyżej:

Niech

\( Z = {\{ {n\in\mathbb{N}: 0+1+2+\ldots+n=\frac{n(n+1)}{2}} \}\ }. \)

Wtedy

  • \( 0\in Z \), bo \( 0=\frac{0\cdot(0+1)}{2} \),
  • nadto, gdy \( k\in Z \), tzn.

\( 0+1+2+ \cdots + (k-1) +k = \frac{k(k+1)}{2}, \)

to, badając, czy \( k+1 \in Z \) rozważamy sumę

\( \begin{array} {rcccl} 0+1+2+ \cdots + k + (k+1) & = & [0+1+2+ \cdots + k] & + & (k+1) \\ [1,5ex] & = & [\frac{k(k+1)}{2}] & + & (k+1) \\ [1,5ex] & = & \frac{k(k+1)+2(k+1)}{2} & & \\ [1,5ex] & = & \frac{(k+1)(k+2)}{2} & & \\ [1,5ex] & = & \frac{(k+1)((k+1)+1)}{2} & & \end{array} \)

co świadczy o tym, że \( k+1 \in Z \).

A stąd już możemy wnosić, podobnie jak w przypadku równości Maurolio, że \( Z=\mathbb{N} \).

Przykład

Niech

\( Z= \left\{ n\in\mathbb{N} : 0^2+1^2+2^2+3^2+ \cdots + (n-1)^2 +n^2 = \frac{n(n+1)(2n+1)}{6} \right\}. \)

Jeśli pokażemy, że \( Z=\mathbb{N} \), to dostaniemy ważny wzór na sumę kolejnych kwadratów.

Oczywiście \( 0 \in Z \).

Nadto, gdy \( k\in Z \), to aby stwierdzić czy \( k+1 \) jest w \( Z \) rozważamy sumę

\( \begin{array} {rcccl} 0^2+1^2+2^2+ \cdots + k^2 + (k+1)^2 & = & [0^2+1^2+2^2+ \cdots + k^2] & + & (k+1)^2 \\ [1,5ex] & = & [\frac{k(k+1)(2k+1)}{6}] & + & (k+1)^2 \\ [1,5ex] & = & \frac{k(k+1)(2k+1)+6(k+1)^2}{6} \\ [1,5ex] & = & \frac{(k+1)[k(2k+1)+6(k+1)]}{6} \\ [1,5ex] & = & \frac{(k+1)[2k^2+7k+6]}{6} \\ [1,5ex] & = & \frac{(k+1)[(k+2)(2k+3)]}{6} \\ [1,5ex] & = & \frac{(k+1)((k+1)+1)(2(k+1)+1)}{6} & & \end{array} \)

co świadczy o tym, że \( k+1 \in Z \).

Przykład

Można zauważyć, że funkcja \( n\mapsto n^2 \) rośnie wolniej niż \( n \mapsto 2^n \). Co prawda dla początkowych wartości mamy

\( \begin{array} {|c|c|c|c|c|c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & ... \\ \hline \hline n^2 & 0 & 1 & 4 & 9 & 16 & 25 & 36 & 49 & 64 & ... \\ \hline 2^n & 1 & 2 & 4 & 8 & 16 & 32 & 64 & 128 & 256 & ... \\ \hline \end{array} \)

i zachowanie tych dwu funkcji nie jest zdecydowane, ale już dla większych wartości \( n \), liczba \( 2^n \) znacznie dominuje \( n^2 \).

Często, tak jak w powyższym przykładzie, pewna własność nie dotyczy wszystkich liczb naturalnych, ale prawie wszystkich, tzn. wszystkich poza być może pewną skończoną liczba wartości początkowych. Wtedy z pomocą przychodzi już następujące sformułowanie Zasady Indukcji Matematycznej.

Zasada Indukcji Matematycznej

Jeśli \( Z \subseteq \mathbb{N} \) jest jakimś zbiorem liczb naturalnych,

  • w którym jest \( k_0 \), tzn. \( k_0 \in Z \),
  • oraz \( Z \) wraz z każdą liczbą naturalną \( k \ge k_0 \) zawiera również kolejną liczbę \( k+1 \), tzn. \( \forall k\geq k_0 \ \ k \in Z \Rightarrow \ k+1 \in Z \),

to wtedy zbiór \( Z \) zawiera wszystkie liczby naturalne \( n \ge k_0 \),
tzn. \( Z\supseteq\mathbb{N}-{\{ {0,1,\ldots,k_0-1} \}\ } \).

Pierwszy warunek nazywamy bazą indukcji. W drugim warunku najpierw dokonujemy założenia indukcyjnego (o tym, że \( k\in Z \)), aby wykonać krok indukcyjny dowodząc, że \( k+1\in Z \).

Często używaną ilustracją indukcji matematycznej jest efekt domina. Załóżmy, że ułożyliśmy bardzo dużo kostek domina, jedna za drugą. Upewniliśmy się też, że jeśli przewróci się dowolna z nich (założenie indukcyjne) to przewróci się też następna (krok indukcyjny). Wtedy, jeśli ktoś nam powie, że przewrócił czwartą kostkę (baza indukcji) to wiemy, iż wszystkie następne (poza być może pierwszymi trzema) też się przewróciły. W indukcji matematycznej liczby naturalne są niejako kostkami domina ułożonymi dostatecznie blisko siebie.

Przykład

Aby się przekonać, że w istocie

\( n^2 < 2^n \) dla \( n\geq 5 \)

przeprowadźmy dowód indukcyjny:

  • Pokażemy najpierw, że \( 2n+1 < 2^n \) (dla zupełnie dowolnego \( n\geq 3 \))
    • oczywiście \( 2 \cdot 3 + 1 = 7 < 8 =2^3 \)
    • oraz \( 2(n+1)+ 1 = 2n+3 < 2^n+4 = 2^n+2^2 \leq 2^n + 2^n = 2\cdot 2^n = 2^{n+1} \)
  • a następnie
    • zauważamy, że \( 5^2=25 < 32=2^5 \)
    • oraz, że \( (n+1)^2 = n^2 + (2n+ 1) < 2^n +2^n = 2\cdot 2^n = 2^{n+1} \).

Kolejne dowody indukcyjne będziemy już przeprowadzać mniej opisowo, pomijając na przykład definicje zbioru \( Z \), o którym później dowodzimy, że zawiera (prawie) wszystkie liczby naturalne.

Przykład [nierówność Bernoulliego]

Udowodnimy, że dla dowolnej liczby rzeczywistej \( a\geq -1 \) oraz dowolnego \( n\in\mathbb{N} \) zachodzi

\( (1+a)^n \geq 1+na. \)

  • baza: \( (1+a)^0=1=1+0\cdot a \),
  • z założenia indukcyjnego \( (1+a)^k\geq 1+ka \), poprzez wymnożenie stronami przez nieujemną liczbę rzeczywistą \( 1+a \), dostajemy

\( \begin{align*}(1+a)^{k+1} & = & (1+a)^k(1+a) \\ & \geq & (1+ka)(1+a) \\ & = & 1+a+ka+ka^2 \\ & \geq & 1+(k+1)a. \end{align*} \)

Przykład

Pokażemy, że o ile tylko \( n\geq 2 \), to liczba postaci \( 2^{2^n} \) ma na końcu w zapisie dziesiętnym cyfrę \( 6 \). Oznacza to, że \( 2^{2^n}= 10x+6 \) dla pewnej liczby naturalnej \( x \).

  • Dla \( n=2 \) mamy \( 2^{2^2}=16 =10\cdot 1 +6 \),
  • Nadto, gdy \( 2^{2^n}=10x+6 \), to

\( 2^{2^{n+1}} = 2^{2^n\cdot 2} = (2^{2^n})^2 = (10x+6)^2 = 100x^2+120x+36 = \)\( 10(10x^2+12x+3)+6. \)

Przykład [\( n \)-ta liczba harmoniczna]

\( n \)-ta liczba harmoniczna to

\( H_n=\frac{1}{1}+\frac{1}{2}+\ldots+\frac{1}{n}. \)

Przyjmuje się, że \( H_0=0 \). Nazwa ta wzięła się stąd, że możliwe do uzyskania na strunie długości fali stojącej są proporcjonalne kolejno do \( 1,\frac{1}{2},\frac{1}{3},\frac{1}{4}\ldots \). Oto wartości kilku pierwszych liczb harmonicznych:

\( \begin{array} {|c|c|c|c|c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\ \hline H_n & 0 & 1 & \frac{3}{2} & \frac{11}{6} & \frac{25}{12} & \frac{137}{60} & \frac{49}{20} & \frac{363}{140} & \frac{761}{280} \\ \hline \end{array} \)

Pokażemy, że liczby harmoniczne osiągają dowolnie duże wartości, choć rosną dość wolno.

Dla \( n\ge 1 \) mamy mianowicie:

\( \frac{\lfloor \lg{n}\rfloor+1}{2} \leq H_n \leq \lfloor \lg{n}\rfloor+1. \)

Powyższe oszacowania wynikają natychmiastowo z nierówności:

\( \frac{n+1}{2} \leq H_{2^n} \leq n+1, \)

które udowodnimy indukcyjnie ze względu na \( n \):

  • dla \( n=0 \) mamy \( \frac{0+1}{2} \leq H_1 \leq 0+1 \),
  • zakładając teraz indukcyjnie, że \( \frac{k+1}{2} \leq H_{2^k} \leq k+1 \),

mamy

\( \begin{array} {rcl} H_{2^{k+1}} & = & H_{2^k}+\frac{1}{2^k+1}+\frac{1}{2^k+2}+\ldots+\frac{1}{2^{k+1}} \leq k+1+2^k\frac{1}{2^k} \\ & = & k+2. \end{array} \)

oraz

\( \begin{array} {rccl} H_{2^{k+1}} & = & H_{2^k}+\frac{1}{2^k+1}+\frac{1}{2^k+2}+\ldots+\frac{1}{2^{k+1}}\geq \frac{k+1}{2}+2^k\frac{1}{2^{k+1}} \\ & = & \frac{k+2}{2}. \end{array} \)

Często wygodniej jest zamiast Indukcji Matematycznej stosować z pozoru mocniejszą Zasadę Indukcji Zupełnej. Tym razem, po to, by wywnioskować, iż \( k\in Z \) będziemy mogli skorzystać nie tylko z faktu, że \( k-1\in Z \), ale ze znacznie mocniejszego założenia, że wszystkie liczby mniejsze niż \( k \), tzn. \( 0,\ldots,k-1 \), są w \( Z \).

Zasada Indukcji Zupełnej

Jeśli \( Z \subseteq \mathbb{N} \) jest jakimś zbiorem liczb naturalnych,

  • który wraz z każdym początkowym fragmentem zbioru \( \mathbb{N} \) postaci \( {\{ {0,\ldots,k-1} \}\ } \) zawiera również kolejną liczbę \( k \), tzn. \( \forall k\in \mathbb{N} \) jeśli \( (\forall l < k \ \ l\in Z), \) to \( k+1 \in Z \)

to wtedy \( Z \) zawiera wszystkie liczby naturalne, tzn. \( Z=\mathbb{N} \).

Zasada Indukcji Zupełnej pozwala skorzystać w dowodzie kroku indukcyjnego(\( k\in Z \)) ze znacznie szerszego założenia indukcyjnego, że \( l\in Z \) dla wszystkich \( l < k \) (a nie tylko dla \( k-1 \) jak w indukcji matematycznej).

Zwróćmy uwagę, że w Zasadzie Indukcji Zupełnej nie ma wyróżnionego kroku bazowego. Jest on ukryty w warunku dla \( k=0 \): poprzednik implikacji jest trywialnie spełniony (dowolne naturalne \( l < 0 \) spełnia wszystkie możliwe warunki, gdyż po prostu nie istnieje). Zazwyczaj w dowodach przez indukcję zupełną dowód tego brzegowego warunku (bazowego) jest odrębny.

Przykład

Mamy prostokątną czekoladę złożona z \( N=a\cdot b \) (\( a,b>0 \)) kwadratowych kawałków. Przez wykonanie cięcia (ułamanie czekolady) rozumiemy rozcięcie jej jakiejkolwiek spójnej części wzdłuż którejś z linii pomiędzy kawałkami, tak by dostać dwa znów prostokątne kawałki. Ile razy trzeba ułamać czekoladę aby rozdzielić jej wszystkie kwadraciki?

Stosując indukcję zupełną względem liczby \( N \) (kwadracików w czekoladzie), że niezależnie od kolejności wykonywanych cięć potrzeba i wystarcza dokładnie \( N-1 \) cięć.

  • Jeśli czekolada ma tylko \( 1 \) kawałek, to nie trzeba niczego dzielić, więc \( 0 \) cięć wystarcza,
  • Gdy czekolada ma \( k \) kawałków, to pierwsze jej cięcie podzieli ją na dwa prostokąty o odpowiednio \( k_0 \) i \( k_1 \) kawałkach, przy czym \( k_0+k_1=k \) i \( k_0,k_1 < k \). Korzystając teraz z założenia indukcyjnego wiemy, że aby połamać te mniejsze kawałki potrzeba i wystarcza odpowiednio \( k_0-1 \) i \( k_1-1 \) cięć. W sumie wykonaliśmy więc \( 1+(k_0-1)+(k_1-1)=(k-1) \) cięć, co było do udowodnienia.

Zauważmy, że w tym rozumowaniu istotnie skorzystaliśmy z możliwości indukcji zupełnej używając w dowodzie założenia indukcyjnego dla dowolnego \( 1\leq l < k \).

Przykład

Proponujemy teraz przeanalizować przykład błędnego rozumowania indukcyjnego. Ćwiczenie to zaproponował George Polya

wybitny węgierski matematyk. Udowodnimy zatem, że wszystkie konie są jednej maści!

Posłużymy się indukcją względem liczby koni.

  • Dowolny zbiór złożony z jednego konia jest zbiorem koni o jednej maści.
  • Rozpatrzmy dowolny \( (k+1) \)-elementowy zbiór koni. Wybierzmy dowolnego konia z tego zbioru i usuńmy go na chwilę. Na mocy założenia indukcyjnego \( k \)-elementowy zbiór pozostałych koni jest zbiorem koni o tej samej maści. Dodajmy z powrotem usuniętego konia i usuńmy dowolnego innego. Znów mamy \( k \)-elementowy zbiór koni, a więc są to konie tej samej maści. Ponadto usunięty koń był tej samej maści co większość koni w obecnym zbiorze. To oznacza, że wszystkie rozpatrywane \( k+1 \) konie są jednej maści.

Gdzie jest błąd?


W przedstawionych przykładach użyliśmy różnych modyfikacji zasady indukcji. Powiedzieliśmy, że są one konsekwencją zasady minimum, czyli dobrego uporządkowania zbioru \( \mathbb{N} \). Nie udowodniliśmy jednak poprawności samej zasady indukcji. Zanim to uczynimy wprowadzimy jeszcze jedną, bardzo silnie powiązaną zasadę.

Zasada Maksimum

Dowolny niepusty i ograniczony od góry podzbiór \( S \subseteq \mathbb{N} \) zbioru liczb naturalnych ma w sobie liczbę największą.

Obserwacja 1.1

Następujące zasady są równoważne:

  • Zasada Minimum,
  • Zasada Indukcji Zupełnej,
  • Zasada Indukcji Matematycznej,
  • Zasada Maksimum.

Dowód

Pokażemy najpierw, że Zasada Minimum implikuje Zasadę Indukcji Zupełnej. Dla dowodu niewprost załóżmy, że istnieje pewien podzbiór \( Z\subseteq N \) taki, że \( k\in Z \), jeśli tylko \( Z \) zawiera wszystkie liczby naturalne \( l < k \), ale wbrew Zasadzie Indukcji Zupełnej \( Z\neq N \). Wtedy oczywiście zbiór \( S=\mathbb{N}-Z \) jest niepusty na podstawie Zasady Minimum ma element najmniejszy, powiedzmy \( s_0 \). Z minimalności \( s_0 \)wiemy, że żadna z liczb \( l < s_0 \) nie może być w \( S \) zatem wszystkie one są w \( Z \). Wtedy jednak, nasze założenie o zbiorze \( Z \) gwarantuje, że również \( s_0 \in Z \), wbrew przypuszczeniu, że \( s_0 \in S =\mathbb{N}-Z \).

Teraz z Zasady Indukcji Zupełnej wyprowadzimy Zasadę Indukcji Matematycznej. Niech więc jakiś podzbiór \( Z\subseteq\mathbb{N} \) spełnia

  • \( k_0 \in Z \),
  • \( \forall k\geq k_0 \ \ k \in Z \Rightarrow \ k+1 \in Z \).

Aby dowieść, że \( k \in Z \) ilekroć \( k\geq k_0 \), wystarczy pokazać, że zbiór \( Z'={\{ {l\in\mathbb{N} : l < k_0} \}\ } \cup Z \) jest równy \( \mathbb{N} \). To z kolei uzyskamy, pokazując, że \( Z' \) spełnia założenia Zasady Indukcji Zupełnej. Istotnie, niech \( k \) będzie dowolną liczbą naturalna, taką że \( Z' \) zawiera wszystkie liczby naturalne \( l < k \). Chcemy pokazać, że wtedy \( k\in Z' \). Z samej definicji zbioru \( Z' \) jest to oczywiste ilekroć \( k < k_0 \). Z założenia o zbiorze \( Z \) jest to również oczywiste dla \( k=k_0 \). Gdy natomiast \( k>k_0 \) to \( k-1\geq k_0 \). Ponadto, \( k \) jako liczba mniejsza od \( k \), należy do \( Z' \) (bo \( Z' \) zawiera wszystkie liczby naturalne \( l < k \)). Ale \( k-1 \notin{\{ {l\in\mathbb{N} : l < k_0} \}\ } \), więc \( k\in Z \). Teraz wystarczy zastosować drugie założenie o zbiorze \( Z \), by wnosić, że \( k =(k-1)+1 \in Z \subseteq Z' \).

Kolejnym krokiem będzie wyprowadzenie Zasady Maksimum z Zasady Indukcji Matematycznej. Niech więc \( S\subseteq \mathbb{N} \) będzie zbiorem niepustym, ale ograniczonym od góry. Używając indukcji z uwagi na wielkość liczby \( M \) ograniczającej od góry zbiór \( S \), pokażemy, że \( S \) ma element największy.

  • Jeśli \( M=0 \), to ponieważ \( S\neq\emptyset \), wiemy, że \( S={\{ {0} \}\ } \). Wobec tego \( 0 \) jest elementem największym w \( S \).
  • Pracujemy przy założeniu indukcyjnym, mówiącym że każdy niepusty podzbiór zbioru \( \mathbb{N} \) ograniczony przez \( M \) ma element największy. Chcemy dowieść, że jeśli \( \emptyset \neq S \subseteq\mathbb{N} \) jest ograniczony przez \( M+1 \), to \( S \) ma element największy. Jeśli \( M+1\in S \), to \( M+1 \) jest elementem największym w \( S \), bo ogranicza \( S \). Jeśli zaś \( M+1\notin S \) to \( S \) jest także ograniczony przez \( M \), a więc na mocy założenia indukcyjnego ma element największy.

Na koniec pokażmy, że Zasada Maksimum implikuje Zasadę Minimum. Rozważmy zatem dowolny, niepusty \( S\subseteq\mathbb{N} \). Jeśli \( 0\in S \) to \( 0 \) jest elementem najmniejszym w \( S \). Załóżmy zatem, że \( 0\notin S \). Wtedy niech

\( S'= \{n\in\mathbb{N}:n\leq s \) dla dowolnego \(s\in S . \)

Ponieważ \( 0\in S' \) to \( S' \) jest niepusty. Ponieważ \( S \) jest niepusty to \( S' \) jest ograniczony. Zatem z Zasady Maksimum zbiór \( S' \) ma element największy, powiedzmy \( s_0 \). Pokażemy, że \( s_0 \) należy do \( S \) i jest najmniejszy w \( S \). Gdyby \( s_0 \not\in S \) wtedy \( s_0+1 \) należałoby do \( S' \), a to stoi w sprzeczności z maksymalnością \( s_0 \) w \( S' \). Gdyby zaś \( s_0 \) nie było najmniejsze w \( S \), to \( s_1 < s_0 \) dla jakiegoś \( s_1\in S \). Wtedy jednak \( s_0 \) nie mogłoby być w \( S' \). Sprzeczność.

Rekurencja

Definicje rekurencyjne


Definicja rekurencyjna (indukcyjna):

  • nieformalnie - taka definicja, która odwołuje się do samej siebie - ale trzeba tu uważać, by odwołanie było do instancji o mniejszej komplikacji,
  • zwykle chodzi o ciąg \( \langle a_0, a_1, a_2, a_3, \ldots \rangle \), - dla którego przepis na element \( a_n \) wykorzystuje jakieś poprzednie elementy: \( a_{n-1}, a_{n-2}, \ldots \) itp.,
  • początkowy element (lub kilka początkowych) muszą być zadane konkretnie - żeby było od czego zacząć,
  • zwykle definicja rekurencyjna odwołuje się do jednego lub kilku poprzednich elementów, ale może też odwoływać się do wszystkich poprzednich.

Przykład

Silnia liczby \( n \) (zapisywana jako \( n! \)) to iloczyn kolejnych liczb naturalnych od \( 1 \) do \( n \), czyli

\( n!=n(n-1)\cdot\ldots\cdot2\cdot1. \)

Przyjmuje się że \( 0!=1 \). Oto wartości silni dla kilku początkowych liczb naturalnych


\( \begin{array} {|c|c|c|c|c|c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & \cdots \\ \hline n! & 1 & 1 & 2 & 6 & 24 & 120 & 720 & 5040 & 40320 & \cdots \\ \hline \end{array} \)

Ciąg \( 0!, 1!, 2!, 3!, 4!,\ldots \) aby mógł być precyzyjnie rozumiany np. przez komputer, powinien być zadany rekurencyjnie jako:

\( \begin{align*} s_0 & = 1 \\ s_{n} & = n \cdot s_{n-1} \quad dla \quad n\geq 1. \end{align*} \)

Ponieważ pierwszy wyraz jest zadany, to możemy kolejno obliczać:

\( \begin{align*} s_0 & = 1 \\ s_1 & = 1 \cdot s_{0} = 1 \cdot 1 = 1 \\ s_2 & = 2 \cdot s_{1} = 2 \cdot 1 = 2 \\ s_3 & = 3 \cdot s_{2} = 3 \cdot 2 = 6 \\ s_4 & = 4 \cdot s_{3} = 4 \cdot 6 = 24 \\ \ldots \end{align*} \)

Przykład

Jaki ciąg jest zdefiniowany poprzez małą modyfikację w definicji silni?

\( \begin{align*} s_0 & = 0 \\ s_{n} & = n \cdot s_{n-1}\quad {dla}\quad n\geq 1 \end{align*} \)

A co definiują następujące określenia:

\( \begin{align*} s_0 & =\frac{1}{2} \\ s_{n} & = n \cdot s_{n-1} \quad {dla}\quad n\geq 1 \end{align*} \)

oraz

\( \begin{align*} s_0 & = 1 \\ s_{n} & = n \cdot s_{n-2} \quad {dla}\quad n\geq 2. \end{align*} \)

W ostatnim przypadku widać, że ponieważ odwołanie jest dwa wyrazy wstecz, to już wyliczenie pierwszego wyrazu \( s_1 \) staje się niemożliwe.

Ciąg arytmetyczny

Przykład

W ciągu zadanym poprzez równania:

\( \begin{align*} s_0 & = 0 \\ s_{n} & = s_{n-1}+2 \quad {dla}\quad n\geq 1 \end{align*} \)

łatwo rozpoznać kolejne liczby parzyste:

\( s_n = 2n. \)

Ogólnie ciąg zadany poprzez ustalenie \( a_0 \) oraz

\( a_n = a_{n-1} + r \)

to tzw. ciąg arytmetyczny.
Jego \( n \)-ty wyraz dany jest wzorem:

\( a_n = a_0 + n\cdot r. \)

Aby to uzasadnić, pokazujemy indukcyjnie, że:

\( a_0 + 0\cdot r = a_0 \quad\textrm{jest rzeczywiście zerowym wyrazem ciągu} \)

oraz

\( a_0 + n\cdot r = (a_0 + (n-1)r) + r = a_{n-1}+r = a_n \)

Ciąg geometryczny

Przykład

W ciągu zadanym poprzez równania:

\( \begin{align*} s_0 & = 1 \\ s_{n} & = 2\cdot s_{n-1} \quad {dla}\quad n\geq 1 \end{align*} \)

łatwo rozpoznać kolejne potęgi liczby \( 2 \):


\( s_n = 2^n. \)

Ogólnie ciąg zadany poprzez ustalenie \( a_0 \) oraz zadanie

\( a_n = q\cdot a_{n-1} \)

to tzw. ciąg geometryczny.
Jego \( n \)-ty wyraz dany jest wzorem:

\( a_n = a_0 \cdot q^n. \)

Aby to uzasadnić, pokazujemy indukcyjnie, że:


\( a_0 \cdot q^0 = a_0 \cdot 1 = a_0 \quad\textrm{jest rzeczywiście zerowym wyrazem ciągu} \)

oraz

\( a_0 \cdot q^n = (a_0 \cdot q^{n-1})\cdot q = a_{n-1}\cdot q = a_n. \)

Wieże Hanoi

U zarania czasu Bóg umieścił 64 złote krążki na jednej z trzech diamentowych iglic tak, że krążki wyżej umieszczone miały mniejsze promienie.

Następnie Bóg polecił grupie mnichów przełożenie tych krążków na trzecią iglicę \( (C) \), ale tak by:

  • w jednym ruchu przenosić tylko jeden krążek,
  • krążek większy nigdy nie może leżeć na krążku mniejszym,
  • można posługiwać się iglicą \( B \).

Mnisi pracują od zarania dziejów dzień i noc ... .Ile czasu im to zajmie?

Wieże Hanoi - analiza

Przykład (E.Lucas, 1883)

By obliczyć ilość potrzebnych do wykonania ruchów, przeanalizujmy najpierw małe przypadki:
Łatwo zauważyć, że dla 1 krążka potrzebny jest jeden ruch: \( A \to C \)
Podobnie dla dwu krążków możemy postąpić: \( A \to B, \ \ A \to C, \ \ B \to C \)
Przy 3 krążkach postępujemy tak:

  • najpierw przenosimy dwa górne krążki na iglicę \( B \) posługując się iglicą \( C \):

\( A \to C, \ \ A \to B, \ \ C \to B \)

  • przenosimy największy krążek z \( A \) na \( C \):

\( A \to C \)

  • przenosimy krążki z \( B \) na \( C \) posługując się iglicą \( A \):

\( B \to A, \ \ B \to C, \ \ A \to C \)

co pokazuje, że potrzeba tu 7 ruchów.
Czy już wiesz jak rozwiązać to zadanie w ogólności (dla \( n \) krążków)?
Oznaczmy przez \( H_n \) liczbę ruchów potrzebnych do przeniesienia \( n \) krążków z jednej iglicy na drugą. Wiemy już, że:

\( \begin{align*} H_1 & = 1 \\ H_2 & =3 \\ H_3 & =7 \end{align*} \)

Aby przenieść \( n \) krążków z \( A \) na \( C \) możemy postąpić podobnie jak w przypadku 3 krążków, redukując zadanie do:

  • przenosimy \( n-1 \) górnych krążków na iglicę \( B \) posługując się iglicą \( C \) - potrzeba na to \( H_{n-1} \) ruchów
  • przenosimy największy krążek z \( A \) na \( C \) - to tylko jeden ruch
  • przenosimy \( n-1 \) krążków z \( B \) na \( C \) posługując się iglicą \( A \) - znów potrzeba na to \( H_{n-1} \) ruchów

A zatem

\( H_n = H_{n-1} +1 + H_{n-1} = 2\cdot H_{n-1} +1 \)

Ile wobec tego wynosi \( H_{64} \)?

Mamy więc równanie rekurencyjne

\( \begin{align*} H_1 & = 1 \\ H_{n} & = 2\cdot H_{n-1}+1 \quad \textrm{dla}\quad n\geq 2 \end{align*} \)

bardzo podobne do ciągu geometrycznego.
Możemy policzyć kilka jego wyrazów:


\( 1, \ \ 3, \ \ 7, \ \ 15, \ \ 31, \ \ 63, \ \ 127, \ldots \)

i rozpoznać w nim ciąg potęg dwójki zmniejszonych o 1.

Ale czy rzeczywiście \( H_n = 2^n -1 \)?

I znów, aby się upewnić, że nasze odgadnięcie było poprawne, sprawdzamy indukcyjnie, że

\( 2 \cdot H_{n-1} + 1= 2 \cdot (2^{n-1}-1) +1 = 2\cdot 2^{n-1} -2 +1 = 2^n -1 = H_n \)

co oznacza, że rzeczywiście ciąg \( 2^n-1 \) spełnia równanie rekurencyjne, którym zadany jest ciąg \( H_n \).
A wiec \( H_{64} =2^{64}-1 \approx 100~000~000~000~000~000~000 \), co przy przenoszeniu jednego krążka na sekundę zajmie ponad \( 3~000~000~000~000 \) lat, a przenosząc te krążki "komputerem" 3GHz potrzeba będzie... i tak ponad tysiąc lat!

Przykład

Znajdź postać zwartą zadanych ciągów rozwijając równanie rekurencyjne:

\( \begin{align*} a_0 & =2, \\ a_{n+1} & =a_n^2. \end{align*} \)

Wskazówka:
Policz kilka pierwszych wyrazów ciągu:

\( a_n = a_{n-1}^2=a_{n-2}^4=a_{n-3}^8= \ldots =a_0^{2^n}=2^{2^n}. \)

Przykład

Jaka jest największa możliwa liczba \( l_n \) obszarów wyznaczonych przez \( n \) prostych na płaszczyźnie?

Sprawdźmy najpierw kilka pierwszych wartości.

  • Gdy nie ma żadnej prostej obszar jest jeden.
  • Jedna prosta tworzy zawsze dwa różne obszary.
  • Kładąc drugą prostą (byle nie równoległą do pierwszej) otrzymujemy \( 4 \) obszary.

W tym momencie możemy pokusić się o zgadywanie i przypuścić, że \( l_n=2^n \). Jednakże

  • Dla trzech prostych jest to \( 7 \).

Zauważmy, że nowa prosta zwiększa ilość obszarów o \( k \) jeśli przecina dokładnie \( k-1 \) z poprzednich prostych i to w nowych punktach przecięć. Z drugiej strony dwie proste mogą się przeciąć w co najwyżej jednym punkcie i przecinają się o ile nie są równolegle. Widzimy zatem, że najwięcej obszarów dostaniemy kładąc kolejne proste w ten sposób aby żadne dwie nie były równoległe i żadne trzy nie przecinały się w jednym punkcie. Otrzymujemy następujące równanie rekurencyjne:

\( \begin{align*} l_0 & =1, \\ l_{n+1} & =l_n+n. \end{align*} \)

Ponownie rozwiążemy równanie rozwijając je:

\( \begin{align*} l_n & =l_{n-1}+n=l_{n-2}+(n-1)+n=l_{n-3}+(n-2)+(n-1)+n=\ldots \\ & =l_0+1+2+\ldots+n=1+\frac{n(n+1)}{2}, \end{align*} \)

gdzie ostatnia równość wynika z - już udowodnionego - wzoru na sumę kolejnych liczb naturalnych.

Liczby Fibonacciego

Spośród ciągów zdefiniowanych rekurencyjnie, jednym z najsłynniejszych jest ciąg Fibonacciego \( {\{ {f_i} \}\ }_{i\in\mathbb{N}} \) zadany przez

\( \begin{align*} f_0 & =0, \\ f_1 & =1, \\ f_{n+2} & =f_n+f_{n+1}. \end{align*} \)

Wszystkie wyrazy ciągu, oprócz pierwszych dwu, są sumą dwu poprzednich elementów. Oto kilka pierwszych wartości ciągu Fibonacciego:

\( \begin{array} {c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c} n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 \\ \hline 0 & 1 & 1 & 2 & 3 & 5 & 8 & 13 & 21 & 34 & 55 & 89 & 144 & 233 & 377 & 610 \\ \end{array} \)

  • Jak odgadnąć wzór na ogólny wyraz ciągu?
  • Jeśli nie można odgadnąć, to jak oszacować szybkość wzrostu tego ciągu?
  • Czy rośnie on wielomianowo czy raczej wykładniczo?

Pierwsze pytanie - póki co - wydaje się dość beznadziejne.

Przykład

Na ile sposobów można ułożyć domina na prostokącie o rozmiarze \( 2 \times n \)?

\( \begin{array} {|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ \hline & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ \hline \end{array} \)

Oznaczmy, tę liczbę przez \( d_n \) w zależności od \( n \).

  • Dla \( n=1 \) jest to możliwe na dokładnie jeden sposób, tzn. \( d_1=1 \)
  • Dla \( n=2 \) są już dwa takie sposoby:

- ustawiamy obie kostki poziomo, lub obie pionowo,
a zatem \( d_2=2 \).

  • Dla \( n=3 \) są trzy sposoby,
  • Pokrywając większy prostokąt \( 2 \times n \) musimy jakoś pokryć dwa skrajne pola przylegające do krótszej krawędzi o długości \( 2 \). Można to zrobić na dwa sposoby:
    • ułożyć jedno domino pionowo - pozostanie prostokąt \( 2 \times (n - 1) \), który można pokryć na \( d_{n-1} \) sposobów,
    • ułożyć dwa domina poziomo - pozostanie prostokąt \( 2 \times (n - 2) \), który można pokryć na \( d_{n-2} \) sposobów.

Czyli łącznie jest \( d_n = d_{n-1}+d_{n-2} \) sposobów pokrycia tablicy \( 2 \times n \).

Rozpoznajemy w tym łatwo ciąg Fibonacci'ego \( d_n = f_{n+1} \) (bo oczywiście pusty prostokąt \( 2 \times 0 \) można pokryć na dokładnie jeden sposób, \( d_0=1 \)).

Obserwacja 2.1

\( f_0+f_1+\ldots+f_n=f_{n+2}-1. \)

Dowód

Polecamy jako ćwiczenie bardzo łatwy dowód powyższej równości przez indukcję. Przedstawimy alternatywny dowód posługujący się intuicją z poprzedniego przykładu. Wiemy zatem, że prostokąt wielkości \( 2\times n \) można pokryć kostkami domina na \( f_{n+1} \) sposobów.

Dla dowodu obserwacji, policzmy na ile sposobów można ułożyć prostokąt wielkości \( 2 \times (n+1) \) w taki sposób aby było tam chociaż jedno domino ustawione poziomo. Policzymy to dwiema różnymi metodami:

  • Jest tylko jedna metoda ułożenia prostokąta \( 2 \times (n+1) \) bez poziomych klocków. A zatem jest \( f_{n+2}-1 \) sposobów ułożenia prostokąta \( 2 \times (n+1) \) z chociaż jednym dominem poziomym.
  • Rozważmy kolejne możliwe miejsca pierwszego poziomego domina (tak naprawdę pary domin) w prostokącie \( 2 \times (n+1) \) od lewej:
    • jeśli na samym początku jest para poziomych domin, to pozostaje prostokąt \( 2\times (n-1) \), który możemy wypełnić dowolnie na \( f_{n} \) sposobów;
    • jeśli na początku jest \( i \) (gdzie \( 0\leq i\leq n \)) pionowych domin, a potem następuje para poziomych, to pozostaje prostokąt \( 2\times (n-i-1) \), który można wypełnić na \( f_{n-i} \) sposobów;
    • para poziomych domin może się pojawić najdalej po \( i=n-1 \) pionowych dominach

To dowodzi, iż jest dokładnie \( f_n+f_{n-1}+\ldots+f_0 \) sposobów ułożenia prostokąta \( (n+1)\times2 \) z chociaż jednym dominem poziomym.

Policzyliśmy na dwa różne sposoby to samo, otrzymując obie strony postulowanej równości. To kończy dowód.

Obserwacja 2.2

\( f_0^2+f_1^2+\ldots+f_n^2=f_n\cdot f_{n+1}. \)

Dowód

Dowód przez indukcję po \( n \):

  • dla \( n=0 \) mamy \( f_0^2=0=f_0\cdot f_1 \),
  • do założonej indukcyjnie równości \( f_0^2+f_1^2+\ldots+f_k^2=f_k\cdot f_{k+1} \) dodajmy obustronnie \( f_{k+1}^2 \) otrzymując

\( f_0^2+f_1^2+\ldots+f_k^2+f_{k+1}^2 = f_k\cdot f_{k+1}+f_{k+1}^2 = f_{k+1}\cdot(f_k+f_{k+1}) = f_{k+1}\cdot f_{k+2}, \)

co kończy dowód kroku indukcyjnego.

Twierdzenie 2.3 [wzór Eulera-Bineta]

\( f_n=\frac{1}{\sqrt{5}} \left[(\frac{1+\sqrt{5}}{2})^n-(\frac{1-\sqrt{5}}{2})^n\right]. \)

Dowód

Rozważmy równanie:

\( f^2-f-1=0. \)

Mnożąc je obustronnie przez \( x^n \) otrzymujemy:

\( f^{n+2}=f^{n+1}+f^n. \)

Oznacza to, że jeśli \( x \) jest pierwiastkiem równania \( f^2-f-1=0 \), to ciąg \( f_n = x^n \) spełnia zależność rekurencyjną Fibonacci'ego:

\( f_{n+2} = f_n+f_{n+1}. \)

Tyle, że równanie ma dwa rzeczywiste rozwiązania:


\( x_1 = \frac{1+\sqrt{5}}{2} \ \ \ \ \ \ \ \ \ \ x_2 = \frac{1-\sqrt{5}}{2}. \)

Który więc z ciągów \( x_1^n, x_2^n \) jest ciągiem Fibonacci'ego? Okazuje się, że żaden, bo na przykład ilorazy kolejnych wyrazów ciągu Fibonacci'ego nie są stałe, a takie musiałyby być dla ciągów geometrycznych \( x_1^n, x_2^n \). Co więcej:

  • jeśli ciąg \( a_n \) spełnia zależność \( f^{n+2}=f^{n+1}+f^n \), to dla dowolnej liczby rzeczywistej \( \alpha \) ciąg \( \alpha\cdot a_n \) też spełnia tę zależność,
  • jeśli ciągi \( a_n \) i \( b_n \) spełniają zależność \( f^{n+2}=f^{n+1}+f^n \), to ich suma \( a_n+b_n \) też spełnia tę zależność.

Oznacza to w szczególności, że zbiór \( F \) ciągów spełniających zależność \( f^{n+2}=f^{n+1}+f^n \) jest podprzestrzenią wektorową przestrzeni \( \mathbb{R}^\mathbb{N} \).

Ćwiczenie: Przestrzen \( F \) jest dwuwymiarowa o bazie \( \varphi, 1-\varphi \)

Przypuśćmy na chwilę, że jakaś kombinacja liniowa ciągów \( x_1^n, x_2^n \), tzn.

\( c_1 \cdot x_1^n + c_2 \cdot x_2^n \)

jest poszukiwanym ciągiem Fibonacci'ego. Aby wyznaczyć stałe \( c_1, c_2 \) zauważmy, że muszą one spełniać układ równań:


\( f_0 = c_1 + c_2 \ \ \ \ \ \ \ f_1 = c_1\cdot x_1 + c_2 x_2 \)

co po rozwiązaniu daje:

\( \begin{align*} c_1 & = \frac{f_1 - f_0x_2}{x_1-x_2}= \frac{1}{\frac{1+\sqrt{5}}{2}-\frac{1-\sqrt{5}}{2}} =\frac{1}{\sqrt{5}} \\ c_2 & = \frac{f_1 - f_0x_1}{x_2-x_1}= \frac{1}{\frac{1-\sqrt{5}}{2}-\frac{1+\sqrt{5}}{2}} =-\frac{1}{\sqrt{5}} \end{align*} \)

i ostatecznie dostajemy ciąg:

\( F(n) = \frac{1}{\sqrt{5}}\cdot \left[(\frac{1+\sqrt{5}}{2})^{n} - (\frac{1-\sqrt{5}}{2})^{n} \right], \)

jako potencjalnego kandydata na ciąg Fibonacci'ego. W istocie potrzebujemy indukcyjnego dowodu, że \( F(n)=f_n \). Dla wygody oznaczmy \( \varphi=\frac{1+\sqrt{5}}{2} \).

  • Ponieważ liczby Fibonacci'ego są zadane wzorem odwołującym się do dwóch poprzednich elementów sprawdzamy dwie pierwsze wartości:
    • \( F(0)=\frac{1}{\sqrt{5}}\varphi^0-\frac{1}{\sqrt{5}}(1-\varphi)^0=\frac{1}{\sqrt{5}}-\frac{1}{\sqrt{5}}=0=f_0 \),
    • \( F(1)=\frac{1}{\sqrt{5}}\varphi-\frac{1}{\sqrt{5}}(1-\varphi)=\frac{1}{\sqrt{5}}(2\cdot\frac{1+\sqrt{5}}{2}-1)=1=f_1 \),
  • Aby pokazać, że \( F(k+2)=f_{k+2} \) użyjemy pod koniec naszych obliczeń założenia indukcyjnego, że \( F(k+1)=f_{k+1} \) i \( F(k)=f_{k} \), a także tego, że zarówno \( \varphi \) jak i \( 1-varphi \) spełniają zależność \( x^{k+2}=x^{k+1}+x^k \):


\( \begin{align*} F(k+2) & =\frac{1}{\sqrt{5}}\varphi^{k+2}-\frac{1}{\sqrt{5}}(1-\varphi)^{k+2} \\ & =\frac{1}{\sqrt{5}}(\varphi^{k}+\varphi^{k+1})-\frac{1}{\sqrt{5}}((1-\varphi)^{k}+(1-\varphi)^{k+1}) \\ & =\frac{1}{\sqrt{5}}(\varphi^{k}-(1-\varphi)^{k})+\frac{1}{\sqrt{5}}(\varphi^{k+1}-(1-\varphi)^{k+1}) \\ & =F(k)+F(k+1) \\ & =f_k+f_{k+1} \\ & =f_{k+2}. \end{align*} \)

Liczba \( \varphi=\frac{1+\sqrt{5}}{2} \) jest powszechnie znana jako złota liczba. Opisuje ona tak zwane złote proporcje w sztuce. Pojawia się ona również bardzo często przy okazji różnych obiektów kombinatorycznych. Występuje również w kolejnym wniosku, który po raz pierwszy zaobserwował Johannes Kepler.

Wniosek 2.4

\( \lim_{n \to \infty}\frac{f_{n+1}}{f_n}=\varphi. \)

Dowód

\( \begin{align*} \lim_{n \to \infty}\frac{f_{n+1}}{f_n} & =\lim_{n \to \infty}\frac{\frac{1}{\sqrt{5}}(\varphi^{n+1}-(1-\varphi)^{n+1})}{\frac{1}{\sqrt{5}}(\varphi^n-(1-\varphi)^n)} \\ & =\lim_{n \to \infty}\frac{\frac{1}{\sqrt{5}}\varphi-\frac{1}{\sqrt{5}}(1-\varphi)(\frac{1-\varphi}{\varphi})^n}{\frac{1}{\sqrt{5}}-\frac{1}{\sqrt{5}}(\frac{1-\varphi}{\varphi})^n} \\ & =\varphi, \end{align*} \)

gdzie ostatnia równość wynika z faktu, iż

\( \lim_{n \to \infty}(\frac{1-\varphi}{\varphi})^n=0, \)

jako że \( \vert\frac{1-\varphi}{\varphi}\vert < 1 \).

Macierze liczb Fibonacci'ego

Rozważając specjalne kwadratowe macierze \( 2\times2 \) liczb Fibonacci'ego postaci

\( \left[ \begin{array} {cc} f_{n+2} & f_{n+1} \\ f_{n+1} & f_n \end{array} \right] \)

łatwo zauważamy, że

\( \left[ \begin{array} {cc} f_{n+2} & f_{n+1} \\ f_{n+1} & f_n \end{array} \right] \left[ \begin{array} {cc} 1 & 1 \\ 1 & 0 \end{array} \right] = \left[ \begin{array} {cc} f_{n+3} & f_{n+2} \\ f_{n+2} & f_{n+1} \end{array} \right]. \)

Ponieważ równocześnie:

\( \left[ \begin{array} {cc} f_2 & f_1 \\ f_1 & f_0 \end{array} \right] = \left[ \begin{array} {cc} 1 & 1 \\ 1 & 0 \end{array} \right], \)

to łatwo indukcyjnie łatwo udowodnić, że


\( \left[ \begin{array} {cc} f_{n+1} & f_n \\ f_n & f_{n-1} \end{array} \right] = \left[ \begin{array} {cc} 1 & 1 \\ 1 & 0 \end{array} \right]^n. \)

Przyrównując wyznaczniki obu macierzy otrzymujemy tożsamość, którą jako pierwszy opublikował Jean-Dominique Cassini w 1680 roku.

Obserwacja 2.5
\( f_{n+1}f_{n-1}-f_n^2=(-1)^n. \)

Korzystając z kolei z faktu, że \( A^mA^n=A^{m+n} \) dla dowolnej kwadratowej macierzy \( A \), otrzymujemy:

Obserwacja 2.6


\( \begin{align*} f_n^2+f_{n-1}^2 & =f_{2n-1}, \\ f_{n+1}f_m+f_nf_{m-1} & =f_{m+n}. \end{align*} \)

Rozwiązywanie liniowych równań rekurencyjnych - metoda ogólna

Rozumowanie dotyczące ciągu Fibonacci'ego możemy uogólnić. Chwilowo skupimy się jedynie na przypadku, gdy dla rozwiązania równania rekurencyjnego

\( s_n = a\cdot s_{n-1} + b\cdot s_{n-2}, \)
równanie kwadratowe

\( x^2 = ax+b \)

ma dokładnie dwa różne pierwiastki \( x_1, x_2 \). Wtedy bowiem łatwo pokazać, że ciąg

\( s_n = c_1 \cdot x_1^n + c_2 \cdot x_2^n \)

ze stałymi

\( c_1 = \frac{s_1 - s_0x_2}{x_1-x_2} \ \ \ \ \ \ \ \ c_2 = \frac{s_1 - s_0x_1}{x_2-x_1} \)

jest poszukiwanym rozwiązaniem.

Gdy równanie \( x^2 = ax+b \) ma tylko jeden pierwiastek \( x_0 \) (podwójny, gdy \( a^2=4b \)), to wkrótce pokażemy, że rozwiązaniem jest

\( s_n = c_1 \cdot x_0^n + c_2 \cdot n \cdot x_0^n \)

ze stałymi wyznaczonymi, jak poprzednio, poprzez dwa pierwsze wyrazy początkowe:

\( c_1 = s_0 \ \ \ \ \ \ \ \ c_2 = \frac{s_1 - s_0x_0}{x_0}. \)

Drzewa binarne

Poznaliśmy wiele przykładów ciągów liczbowych zadanych równaniami rekurencyjnymi. Teraz poznamy zupełnie inną strukturę zadaną definicją rekurencyjną.

Drzewo binarne to dowolny obiekt powstały zgodnie z regułami:

  • \( \perp \) jest drzewem binarnym,
  • jeśli \( T_0 \) i \( T_1 \) są drzewami binarnymi to \( T_0\wedge T_1 \) też jest drzewem binarnym.

Zbiór wszystkich drzew binarnych oznaczamy przez \( \mathbb{T} \). Wypisując konkretne drzewo binarne używamy nawiasów aby ujednoznacznic kolejność aplikacji reguł z definicji rekurencyjnej.

Wielkość drzewa binarnego jest wyznaczona funkcją

\( \mathbb{T} \ni T \mapsto \vert T\vert \in \mathbb{N} \)

zdefiniowana rekurencyjnie (z uwagi na budowę drzewa) jako:

  • \( \vert\perp\vert=1 \),
  • \( \vert T_0\wedge T_1\vert=\vert T_0\vert+\vert T_1\vert+1 \).

Szerokość drzewa binarnego jest wyznaczona funkcją

\( \mathbb{T} \ni T \mapsto \mbox{\sf h}(T) \in \mathbb{N} \)

zdefiniowana rekurencyjnie (z uwagi na budowę drzewa) jako:

  • \( \mbox{\sf w}(\perp)=1 \),
  • \( \mbox{\sf w}(T_0\wedge T_1)=\mbox{\sf w}(T_0)+\mbox{\sf w}(T_1) \).

Wysokość drzewa binarnego jest wyznaczona funkcją

\( \mathbb{T} \ni T \mapsto \mbox{\sf h}(T) \in \mathbb{N} \)

zdefiniowana rekurencyjnie (z uwagi na budowę drzewa) jako:

  • \( \mbox{\sf h}(\perp)=0 \),
  • \( \mbox{\sf h}(T_0\wedge T_1)=\max(\mbox{\sf h}(T_0),\mbox{\sf h}(T_1) )+1 \).

Przykład

\( \begin{align*}\vert(\perp\wedge(\perp\wedge\perp))\wedge(\perp\wedge\perp)\vert & =\vert\perp\wedge(\perp\wedge\perp)\vert+\vert\perp\wedge\perp\vert+1 \\ & =(\vert\perp\vert+\vert\perp\wedge\perp\vert+1)+(\vert\perp\vert+\vert\perp\vert+1)+1 \\ & =(2+(\vert\perp\vert+\vert\perp\vert+1))+3+1 \\ & =9. \end{align*} \)

\( \begin{align*}\mbox{\sf w}((\perp\wedge(\perp\wedge\perp))\wedge(\perp\wedge\perp)) & =\mbox{\sf w}(\perp\wedge(\perp\wedge\perp))+\mbox{\sf w}(\perp\wedge\perp) \\ & =(\mbox{\sf w}(\perp)+\mbox{\sf w}(\perp\wedge\perp))+(\mbox{\sf w}(\perp)+\mbox{\sf w}(\perp)) \\ & =(\mbox{\sf w}(\perp)+(\mbox{\sf w}(\perp)+\mbox{\sf w}(\perp))+(\mbox{\sf w}(\perp)+\mbox{\sf w}(\perp)) \\ & =5. \end{align*} \)

\( \begin{align*}\mbox{\sf h}((\perp\wedge(\perp\wedge\perp))\wedge(\perp\wedge\perp)) & =\max(\mbox{\sf h}(\perp\wedge(\perp\wedge\perp)),\mbox{\sf h}(\perp\wedge\perp) )+1 \\ & =\max(\max(\mbox{\sf h}(\perp),\mbox{\sf h}(\perp\wedge\perp) )+1,\max(\mbox{\sf h}(\perp),\mbox{\sf h}(\perp) )+1 )+1 \\ & =4. \end{align*} \)

Obserwacja 2.7

Dla \( T=T_0\wedge T_1 \) mamy

  • \( \mbox{\sf h}(T_i) < \mbox{\sf h}(T) \),
  • \( \mbox{\sf w}(T_i) < \mbox{\sf w}(T) \),
  • \( \vert T_i\vert < \vert T\vert \).

Wniosek 2.8
Drzewo \( \perp \) jest jedynym drzewem o wysokości \( 0 \).

Twierdzenie 2.9 [Zasada Indukcji dla drzew binarnych]

Gdy \( S\subseteq\mathbb{T} \) jest zbiorem drzew binarnych spełniającym warunki:

  • \( \perp\in S \),
  • jeśli \( T_0,T_1\in S \) to \( T_0\wedge T_1\in S \),

to \( S=\mathbb{T} \).

Dowód

Dla dowodu niewprost załóżmy, że w \( S \) nie ma wszystkich drzew. Zatem zbiór \( S'=\mathbb{T}-S \) jest niepusty. Tym samym niepusty jest też zbiór \( Z={\{ {\mbox{\sf h}(T) : T \in S'} \}\ } \) Na mocy założenia o \( S \) wiemy, że \( \perp\notin S' \), co wraz z Wnioskiem 2.8 implikuje, że \( 0\notin Z \).

Ponieważ \( Z \) jest niepusty, to na podstawie Zasady Minimum ma element najmniejszy, powiedzmy \( z \). Wiemy już, że \( z>0 \). Niech \( T\in S' \) poświadcza fakt, że \( z\in Z \), tzn. \( \mbox{\sf h}(T)=z>0 \). Ponownie z Wniosku 2.8 dostajemy \( T'\neq\perp \), czyli \( T'=T_0\wedge T_1 \) dla pewnych \( T_1,T_2 \). Z Obserwacji 2.7 mamy \( \mbox{\sf h}(T_0) < \mbox{\sf h}(T)=z \) oraz \( \mbox{\sf h}(T_1) < \mbox{\sf h}(T)=z \). Zatem minimalność \( z \) w \( S_0' \) daje \( \mbox{\sf h}(T_0),\mbox{\sf h}(T_1)\notin Z \), czyli \( T_0,T_1\notin S' \) i w konsekwencji \( T_0,T_1\in S \).

Ale wtedy, z założenia o zbiorze \( S \), dostajemy \( T=T_0\wedge T_1=T\in S \). Sprzeczność.

Zasada Indukcji dla drzew binarnych to przykład na to, że w strukturach zdefiniowanych rekurencyjnie można dowodzić przy pomocy zasady analogicznej do Zasady Indukcji. Poniżej przedstawiamy przykład używający tego narzędzia.

Obserwacja 2.10

Dla dowolnego drzewa binarnego \( T\in\mathbb{T} \) mamy:

  • \( \mbox{\sf h}(T) \le \mbox{\sf w}(T) \le \vert T\vert \),
  • \( \vert T\vert=2\cdot\mbox{\sf w}(T)-1 \).

Dowód

Niech \( S\subseteq\mathbb{T} \) będzie zbiorem drzew binarnych spełniających powyższe własności.

  • \( \mbox{\sf h}(\perp)=0 \le 1 =\mbox{\sf w}(\perp)= \vert\perp\vert \), oraz \( \vert\perp\vert=1=2\mbox{\sf w}(\perp)-1 \), czyli \( \perp\in S \).
  • W kroku indukcyjnym zakładamy, że \( T=T_0\wedge T_1 \) oraz że drzewa \( T_0,T_1 \) mają już opisane w Obserwacji własności. Wtedy


\( \begin{align*}\vert T_0\wedge T_1\vert & =\vert T_0\vert+\vert T_1\vert+1 =(2\mbox{\sf w}(T_0)-1)+(2\mbox{\sf w}(T_1)-1)+1 \\ & =2(\mbox{\sf w}(T_0)+\mbox{\sf w}(T_1))-1 \\ & =2\mbox{\sf w}(T_0\wedge T_1)-1. \end{align*} \)

Podobnie

\( \begin{align*}\mbox{\sf h}(T_0\wedge T_1) & =\max(\mbox{\sf h}(T_0),\mbox{\sf h}(T_1) )+1 \\ & \leq \max(\mbox{\sf w}(T_0),\mbox{\sf w}(T_1) )+1 \\ & \leq \mbox{\sf w}(T_0)+\mbox{\sf w}(T_1) \\ & =\mbox{\sf w}(T_0\wedge T_1), \end{align*} \)

gdzie ostatnia nierówność wynika bezpośrednio z faktu, że szerokość każdego drzewa wynosi co najmniej \( 1 \).

Zliczanie zbiorów i funkcji

Funkcje


Ten fragment wykładu przypomina poznany już wcześniej materiał. Służy jedynie ustaleniu terminologii i notacji.

Funkcja o dziedzinie \( X \) i przeciwdziedzinie \( Y \) to dowolna relacja \( f \subseteq X \times Y \) taka, że:

  • \( \forall x\in X \ \exists y \in Y \ \ \langle x,y \rangle\in f \)
  • \( \forall x\in X \ \forall y_1,y_2\in Y \ \ (\langle x,y_1 \rangle\in f \wedge \langle x,y_2 \rangle\in f) \to y_1=y_2 \)

Pierwszy warunek mówi, że każdy element dziedziny ma jakąś wartość przypisaną funkcją \( f \). Drugi, że taka wartość jest co najwyżej jedna (dowolne dwie są bowiem równe). W skrócie oba warunki możemy zapisać łącznie jako

\( \forall x\in X \ \exists! y \in Y \ \ \langle x,y \rangle\in f, \)

gdzie kwantyfikator \( \exists! \) oznacza istnieje dokładnie jeden.

  • Ważne jest
    • wykorzystanie wszystkich elementów dziedziny: każdemu elementowi dziedziny ...
    • i jednoznaczność: jest przyporządkowany dokładnie jeden element przeciwdziedziny,
  • nie wyklucza to sytuacji, gdy np. dwóm elementom dziedziny przyporządkowany jest ten sam element przeciwdziedziny,
  • nie każdy element przeciwdziedziny musi być wykorzystany, tzn. mogą istnieć takie elementy przeciwdziedziny, które nie są przyporządkowane żadnemu elementowi dziedziny,
  • dziedzina i przeciwdziedzina mogą być tym samym zbiorem.

Notacja:

  • Piszemy \( f : X \longrightarrow Y \) lub \( X \stackrel{f}{\longrightarrow} Y \) na oznaczenie funkcji o nazwie \( f \), której dziedziną jest zbiór \( X \), a przeciwdziedziną zbiór \( Y \).
    • elementy dziedziny nazywamy argumentami funkcji
    • elementy przeciwdziedziny im przyporządkowane nazywamy wartościami funkcji.
  • Piszemy \( f(x) = y \) lub \( f : x \mapsto y \) na oznaczenie tego, że funkcja \( f \) elementowi \( x \) przyporządkowuje element \( y \)
    • mówimy wtedy, że \( y \) jest wartością funkcji \( f \) na argumencie \( x \).
  • Często podaje się przepis na funkcję, wykorzystując
    • operacje arytmetyczne: \( f(x) = 3x + 7 \)
    • lub inne powszechnie znane funkcje \( g(x) = 2\sin(x)\cos(x) \).
  • W powyższych przykładach dziedziny i przeciwdziedziny można się domyślić (zapewne liczby rzeczywiste), ale dla ścisłości powinno się je podać, np. \( f : \mathbb{R} \longrightarrow \mathbb{R} \).

Przykłady funkcji

Najczęściej będziemy się zajmowali funkcjami, które działają na liczbach (dziedziną i przeciwdziedziną będą zbiory liczbowe, np. \( \mathbb{N}, \mathbb{R} \)), ale można mówić o funkcjach na różnych zbiorach.

  • \( f : \mathbb{N} \ni n \mapsto 2n \in \mathbb{N} \),
    • jest zwartym zapisem, że \( f \) jest funkcją postaci \( f : \mathbb{N} \longrightarrow \mathbb{N} \)
      daną przepisem \( f(n) = 2n \)
    • jako przeciwdziedzinę określiliśmy zbiór liczb naturalnych,
      ale w istocie wartościami tej funkcji są tylko liczby parzyste
  • \( g : \mathbb{N} \longrightarrow \mathbb{R}, \ g(n) = n/2 \),
    • określenie \( g : \mathbb{N} \longrightarrow \mathbb{N} \) nie byłoby tu prawidłowe, gdyż wartość \( n/2 \) nie zawsze jest liczbą naturalną
  • \( h : \mathbb{N} \longrightarrow {\{ {13} \}\ }, \ h(n) = 13 \),
    • to też jest poprawnie określona funkcja, mimo że niezbyt frapująca (tzw. funkcja stała)
  • \( f : \mathbb{N} \longrightarrow \mathbb{N}, \ f(n) = (1 + 3 + 5 + ... + (2n+1))^n \).
    • takie określenie też jest poprawne, choć nie od razu widać, ile to jest
  • \( g : \mathbb{R} \ni x \mapsto \sin\frac{x}{\pi}\in \mathbb{R} \) jest całkiem poprawną funkcją.
  • \( h : \mathbb{R} \ni x \mapsto \sin\frac{\pi}{x}\in \mathbb{R} \),
    • to określenie (mimo, że podobne do poprzedniego) jest błędne:
      nie da się policzyć wartości \( h(0) \);
      należałoby więc napisać np. \( h : \mathbb{R}-{\{ {0} \}\ } \longrightarrow \mathbb{R} \)
  • \( {\{ {0,1} \}\ }^* \ni w \mapsto w1 \in {\{ {0,1} \}\ }^* \),
    • to funkcja określona na słowach nad alfabetem dwuelementowym \( {\{ {0,1} \}\ } \)
    • każdemu słowu przypisuje to słowo rozszerzone na końcu o symbol \( 1 \)
  • \( d: {\{ {0,1} \}\ }^* \longrightarrow \mathbb{N}, \ d(w) = \) długość słowa \( w \)

Wielomian to funkcja:

\( x \mapsto a_nx^n + a_{n-1}x^{n-1} + \ldots + a_2x^2 + a_1 x + a_0 \)
gdzie

  • liczby \( a_n, a_{n-1}, \ldots, a_1,a_0 \) zwane są współczynnikami wielomianu
    • mówimy więc o wielomianach o współczynnikach
      • naturalnych - jeśli \( a_n, a_{n-1}, \ldots, a_1,a_0 \in \mathbb{N} \)
      • całkowitych - jeśli \( a_n, a_{n-1}, \ldots, a_1,a_0 \in \mathbb{Z} \)
      • wymiernych - jeśli \( a_n, a_{n-1}, \ldots, a_1,a_0 \in \mathbb{Q} \)
      • rzeczywistych - jeśli \( a_n, a_{n-1}, \ldots, a_1,a_0 \in \mathbb{R} \)
    • liczba \( n \) zwana jest stopniem wielomianu, ale tylko o ile \( a_n \neq 0 \).

Surjekcje, injekcje i bijekcje

Surjekcja to funkcja \( f : X \longrightarrow Y \) spełniająca warunek

\( \forall y\in Y \ \exists x\in X \ \ f(x) = y \)

  • Intuicyjnie, funkcja jest surjekcją, jeśli jej cała przeciwdziedzina jest wykorzystana, tzn. każdy jej element jest wartością funkcji dla jakiegoś elementu dziedziny,
  • surjekcje często są nazywane funkcjami "na",
  • piszemy też wtedy \( f : X ↠ Y \).

Przykład

Funkcja \( \mathbb{R} \ni x \mapsto x^3 \in \mathbb{R} \) jest surjekcją.
Funkcja \( \mathbb{Q} \ni x \mapsto x^3 \in \mathbb{Q} \) nie jest surjekcją.
Funkcja \( \mathbb{N} \ni x \mapsto 2x \in \mathbb{N} \) nie jest surjekcją.
Funkcja \( \mathbb{Q} \ni x \mapsto 2x \in \mathbb{Q} \) jest surjekcją.
Funkcja \( \mathbb{Z} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) jest surjekcją.
Funkcja \( \mathbb{R} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) jest surjekcją.
Funkcja \( \mathbb{Z} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Q} \) nie jest suriekcją.
Funkcja \( \mathbb{R} \ni x \mapsto \sin{x} \in \mathbb{R} \) nie jest surjekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto w1 \in {\{ {0,1} \}\ }^* \) nie jest suriekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto d(w) \in \mathbb{N} \) jest suriekcją.

Injekcja to funkcja \( f : X \longrightarrow Y \) spełniająca warunek:

\( \forall x_1,x_2 \in X \ \ x_1\neq x_2 \to f(x_1)\neq f(x_2) \)

  • Intuicyjnie, funkcja jest injekcją, jeśli różnym elementom dziedziny funkcja przyporządkowuje różne elementy przeciwdziedziny,
  • injekcje często są nazywane funkcjami różnowartościowymi,
  • piszemy też wtedy \( f : X \hookrightarrow Y \).

Przykład

Funkcja \( \mathbb{R} \ni x \mapsto x^3 \in \mathbb{R} \) jest injekcją.
Funkcja \( \mathbb{R} \ni x \mapsto x^2 \in \mathbb{R} \) nie jest injekcją.
Funkcja \( \mathbb{Z} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) jest injekcją.
Funkcja \( \mathbb{R} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) nie jest injekcją.
Funkcja \( \mathbb{N} \ni x \mapsto 2x \in \mathbb{N} \) jest injekcją.
Funkcja \( \mathbb{Q} \ni x \mapsto 2x \in \mathbb{Q} \) jest injekcją.
Funkcja \( \mathbb{R} \ni x \mapsto \sin{x} \in \mathbb{R} \) nie jest injekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto w1 \in {\{ {0,1} \}\ }^* \) jest injekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto d(w) \in \mathbb{N} \) nie jest injekcją.

Bijekcja to funkcja, która jest jednocześnie surjekcją i injekcją.

Przykład

Funkcja \( \mathbb{R} \ni x \mapsto x^3 \in \mathbb{R} \) jest bijekcją.
Funkcja \( \mathbb{Q} \ni x \mapsto x^3 \in \mathbb{Q} \) nie jest bijekcją.
Funkcja \( \mathbb{N} \ni x \mapsto 2x \in \mathbb{N} \) nie jest bijekcją.
Funkcja \( \mathbb{Q} \ni x \mapsto 2x \in \mathbb{Q} \) jest bijekcją.
Funkcja \( \mathbb{Z} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) jest bijekcją.
Funkcja \( \mathbb{R} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) nie jest bijekcją.
Funkcja \( \mathbb{Z} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Q} \) nie jest bijekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto w1 \in {\{ {0,1} \}\ }^* \) nie jest bijekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto d(w) \in \mathbb{N} \) nie jest bijekcją.

Funkcje odwrotne

Traktując funkcję \( f : X \longrightarrow Y \) jako relację \( f \subseteq X \times Y \) (zbiór par), możemy rozważać relację \( f^{-1} \) odwrotną do \( f \).

Kiedy ta relacja jest funkcją?

  • ponieważ \( f^{-1} \) ma spełniać warunek, że każdy element dziedziny \( f^{-1} \) (tzn. zbioru \( Y \)) ma przypisaną jakąś wartość, oznacza to, że sama funkcja \( f \) wyczerpuje wszystkie elementy przeciwdziedziny, a zatem, że \( f \) jest surjekcją,
  • nadto \( f^{-1} \) ma przypisywać dokładnie jeden taki element, czyli że każdy element z \( Y \) jest przypisany poprzez \( f \) jednemu elementowi z \( X, \) a zatem \( f \) musi być injekcją.

A zatem: funkcja posiada funkcję odwrotną, wtedy i tylko wtedy, gdy jest bijekcją.

  • Nieformalnie tworzenie funkcji odwrotnej polega na odwracaniu strzałek.
  • Gdyby \( f \) nie była surjekcją, to przy próbie odwrócenia strzałek niektóre elementy zbioru \( Y \) nie miałyby przyporządkowanego żadnego elementu z \( X \).
  • Gdyby zaś \( f \) nie była injekcją, to przy próbie odwrócenia strzałek niektóre strzałki byłyby "rozdwojone".

Przykład

  • Funkcja \( f : \mathbb{R} \ni x \mapsto 2x \in \mathbb{R} \) jest bijekcją, a zatem posiada funkcję odwrotną. Tę funkcję odwrotną można wyliczyć: skoro \( y = f(x) = 2x \), to \( f^{-1}(y) = x = y/2 \). Zatem \( f^{-1} : \mathbb{R} \ni x \mapsto x/2 \in \mathbb{R} \).
  • Funkcja \( \mathbb{R} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) nie jest injekcją. Nie posiada więc funkcji odwrotnej.
  • Funkcja \( \mathbb{N} \ni x \mapsto 2x \in \mathbb{N} \) nie jest surjekcją. Nie posiada więc funkcji odwrotnej. Ale rozważając tę funkcję z przeciwdziedziną \( \mathbb{P} \) będącą zbiorem liczb parzystych, tzn. \( \mathbb{N} \ni x \mapsto 2x \in \mathbb{P} \) staje się ona bijekcją i posiada funkcję odwrotną \( \mathbb{P} \ni x \mapsto x/2 \in \mathbb{N} \).
  • Funkcja \( \mathbb{R} \ni x \mapsto x^2 \in \mathbb{R} \) nie jest ani injekcją ani surjekcją. Nie posiada więc funkcji odwrotnej. Surjektywność można by "uratować", rozważając

\( f : \mathbb{R} \ni x \mapsto x^2 \in [0, +\infty). \)

Wciąż jednak brakowałoby injektywności. Ograniczając jednak, tę funkcję do liczb nieujemnych, tzn. traktując ją jako:


\( f|_{[0, +\infty)}: [0, +\infty) \ni x \mapsto x^2 \in [0, +\infty), \)

staje się już bijekcją, więc posiada funkcję odwrotną, którą jest


\( [0, +\infty) \ni x \mapsto \sqrt{x} \in [0, +\infty). \)

Składanie funkcji

Złożenie funkcji \( f : X \longrightarrow Y \) i funkcji \( g : Y \longrightarrow Z \) to funkcja


\( gf: X \longrightarrow Z \)

określona dla wszystkich argumentów \( x \in X \) jako \( (gf)(x) = g(f(x)) \).

  • Nieformalnie - najpierw obliczamy wartość funkcji \( f \) dla elementu \( x \),
    a następnie obliczamy wartość funkcji \( g \) dla wyniku tego obliczenia; czyli "idziemy dalej wzdłuż następnej strzałki"

\( X \longrightarrow Y \longrightarrow Z \)

  • Piszemy \( gf \) (a nie \( fg \)) na oznaczenie złożenia, w którym najpierw obliczana jest wartość funkcji \( f \), a potem funkcji \( g \).
  • W praktyce, przy złożeniu \( gf \), dziedzina funkcji \( g \) nie musi być tym samym zbiorem, co przeciwdziedzina funkcji \( f \) - wystarczy, by była większa.

Przykład

  • Niech \( f : \mathbb{N} \ni n \mapsto n + 2 \in \mathbb{N} \) i \( g : \mathbb{N} \ni n \mapsto 3n \in \mathbb{N} \). Wówczas dla \( gf : \mathbb{N} \longrightarrow \mathbb{N} \) mamy \( (gf)(n) = g(f(n)) = g(n + 2) = 3(n + 2)= 3n+6 \) a dla \( fg : \mathbb{N} \longrightarrow \mathbb{N} \) mamy \( (fg)(n) = f(g(n)) = f(3n) = 3n + 2 \).

Morał: złożenia \( fg \) i \( gf \) to (na ogół) różne funkcje.

  • Niech \( f : \mathbb{R} \ni x \mapsto \sin 3x \in \mathbb{R} \) i \( g : \mathbb{R} \ni x \mapsto (x + \pi)^2 \in\mathbb{R} \). Wówczas złożenie \( fg: \mathbb{R} \longrightarrow \mathbb{R} \) dane jest wzorem

\( (fg)(x) = f(g(x)) = f((x + \pi)^2) = \sin(3(x + \pi)^2). \)

Morał: Nie zawsze da się łatwo wyliczyć przepis na funkcję złożoną.

  • Gdy \( f : X \longrightarrow Y \) jest bijekcją, to istnieje funkcja odwrotna \( f^{-1} : Y \longrightarrow X \). Jeśli złożymy \( f^{-1} f \), to uzyskamy funkcję \( X \longrightarrow X \), która "nic nie robi":

\( (f^{-1} f)(x) = f^{-1}(f(x)) = x. \)

Taka funkcja zwana jest identycznością na zbiorze \( X \) i oznaczana \( id_X \). Podobnie - składając \( f f^{-1} : Y \longrightarrow Y \), otrzymamy identyczność na zbiorze \( Y \).

Widzieliśmy, że nie zawsze \( fg = gf \).

Obserwacja 3.1

Dla funkcji \( X \stackrel{h}{\longrightarrow} Y \stackrel{g}{\longrightarrow} Z \stackrel{f}{\longrightarrow} W \) zachodzi \( f(gh) = (fg)h \). <

Obserwacja 3.2

Nadto dla \( X \stackrel{f}{\longrightarrow} Y \stackrel{g}{\longrightarrow} Z \) mamy:

  • Jeśli \( f, g \) są surjekcjami, to \( gf \) jest surjekcją.
  • Jeśli \( f, g \) są injekcjami, to \( gf \) jest injekcją.
  • Jeśli \( f, g \) są bijekcjami, to \( gf \) jest bijekcją.
  • Pierwsza i trzecia z powyższych własności nie zachodzą, jeśli dziedzina funkcji \( g \) jest większa niż przeciwdziedzina funkcji \( f \).

Przykład

Zbadaj czy dla funkcji \( X \stackrel{f}{\longrightarrow} Y \stackrel{g}{\longrightarrow} Z \) zachodzi:

  • jeśli \( gf \) jest surjekcją, to \( f \) jest surjekcją
  • jeśli \( gf \) jest surjekcją, to \( g \) jest surjekcją
  • jeśli \( gf \) jest injekcją, to \( f \) jest injekcją
  • jeśli \( gf \) jest injekcją, to \( g \) jest injekcją

Funkcje wielu zmiennych

  • Funkcja dwóch zmiennych to funkcja, której dziedziną jest zbiór par (zamiast pojedynczych elementów).
  • Piszemy np. \( f : X \times Y \longrightarrow Z \).
  • Zatem funkcja taka każdej parze \( (x,y)\in X \times Y \) przyporządkowuje dokładnie jeden element \( f(x,y) \in Z \).
  • Podobnie można zdefiniować funkcje trzech i więcej zmiennych.

Przykład

Przykładem funkcji dwóch zmiennych są działania arytmetyczne:

  • \( \mathbb{R} \times \mathbb{R} \ni (x,y) \mapsto x+y \in \mathbb{R} \)
  • \( \mathbb{R} \times \mathbb{R} \ni (x,y) \mapsto x-y \in \mathbb{R} \)
  • \( \mathbb{R} \times \mathbb{R} \ni (x,y) \mapsto xy \in \mathbb{R} \)
  • \( \mathbb{R} \times \mathbb{R}-{\{ {0} \}\ } \ni (x,y) \mapsto \frac{x}{y} \in \mathbb{R} \)
  • \( \mathbb{N} \times \mathbb{N} \ni (x,y) \mapsto x^y \in \mathbb{N} \)

a także konkatenacja (sklejenie) słów

  • \( X^* \times X^* \ni (v,w) \mapsto vw \in X^* \), gdzie \( vw \) oznacza słowo (krotkę) powstałe z doklejenia słowa \( w \) na końcu słowa \( v \).

Zliczanie zbiorów

Gdy chcemy policzyć liczbę samochodów na parkingu zazwyczaj wskazujemy na kolejne samochody odliczając: jeden, dwa, trzy, itd., aż do momentu gdy każdy samochód zostanie wskazany. Wtedy ostatnia liczba, którą wypowiedzieliśmy jest uważana za liczbę samochodów na parkingu.

Aby wprowadzić matematyczny model procedury zliczania definiujemy początkowe odcinki liczb naturalnych:

\( \begin{align*} \mathbb{Z}_0 & =\emptyset, \\ \mathbb{Z}_1 & ={\{ {0} \}\ }, \\ \mathbb{Z}_2 & ={\{ {0,1} \}\ }, \\ & \vdots \\ \mathbb{Z}_k & ={\{ {0,\ldots,k-1} \}\ }. \end{align*} \)

Załóżmy, że na parkingu stoi \( n \) samochodów. Zliczając je wybieramy elementy \( \mathbb{Z}_n \) (zazwyczaj kolejne liczby) i przypisujemy je do samochodów na parkingu. Uwaga: wybierając liczby z \( \mathbb{Z}_n \) zaczynamy od \( 0 \) i kończymy na \( n-1 \) (na ogół nie-informatycy zliczają od \( 1 \) do \( n \)). Określamy zatem w trakcie tego zliczania bijekcję \( f:\mathbb{Z}_n \to S \), gdzie \( S \) jest zbiorem samochodów na parkingu. W istocie jest to bijekcja, bo dwa różne samochody mają różne numery (injektywność) i każdy samochód jest policzony (surjektywność).

Obserwacja 3.3

Gdy \( m < n \), to nie istnieje injekcja z \( \mathbb{Z}_n \) w \( \mathbb{Z}_m \).

Dowód

Niech \( S \) będzie zbiorem liczb naturalnych \( n \) takich, że istnieje injekcja postaci \( f:\mathbb{Z}_m \to \mathbb{Z}_n \), przy pewnym \( m < n \). Oczywiście \( 0\notin S \), bo nie istnieje liczba naturalna \( m \) taka, że \( 0\leq m < 0 \). Także \( 1\notin S \), bo nie istnieje funkcja z niepustego zbioru \( \mathbb{Z}_1 \) w pusty \( \mathbb{Z}_0 \). Dla dowodu niewprost załóżmy, że \( S \) jest niepusty. Wtedy, z Zasady Minimum, \( S \) ma element najmniejszy, powiedzmy math>n_0>1</math>. Istnieje zatem \( m < n_0 \) i injekcja \( f:\mathbb{Z}_{n_0} \to \mathbb{Z}_m \). Analogicznie jak wcześniej \( m\neq 0 \) oraz \( m\neq 1 \), bo inaczej wszystkie elementy \( N_{n_0} \) musiałyby mieć tę samą wartość, co stoi w sprzeczności z injektywnością \( f \). Zatem \( m-1 \) jest dodatnią liczbą naturalną.

Jeśli \( m-1\notin f({\{ {0,\ldots,n_0-2} \}\ }) \), to restrykcja \( f|_{\mathbb{Z}_{n_0-1}} \) jest injekcją z \( \mathbb{Z}_{n_0-1} \) w \( \mathbb{Z}_{m-1} \), czyli \( n_0-1\in S \) co stoi w sprzeczności z minimalnością \( n_0 \) w \( S \).

Jeśli \( m-1\in f({\{ {0,\ldots,n_0-2} \}\ }) \), to niech \( a \) i \( b \) będą takimi liczbami, że \( f(a)=m-1 \) i \( f(n_0-1)=b \).

Wtedy funkcja \( g:\ N_{n_0-1} \to \mathbb{Z}_{m-1} \) zadana przez

\( g(x)= \left\{ \begin{array} {cl} f(x), & \textrm{dla} \quad x\neq a \\ b, & \textrm{dla} \quad x=a \end{array}. \right. \)

jest injekcją, bo dla \( x_1,x_2\in\mathbb{Z}_{n_0-1}-{\{ {a} \}\ } \) zachodzi \( g(x_1)=g(x_2) \to x_1=x_2 \) i dodatkowo \( b\notin g(\mathbb{Z}_{n_0}-{\{ {a} \}\ })=f(\mathbb{Z}_{n_0}-{\{ {a} \}\ }) \). Zatem znów \( n_0-1\in S \), co stoi w sprzeczności z minimalnością \( n_0 \) w \( S \).

Wniosek 3.4

Jeśli istnieje bijekcja ze zbioru \( \mathbb{Z}_m \) na \( \mathbb{Z}_n \), to \( m=n \).

Zbiór skończony to zbiór bijektywny z pewnym zbiorem postaci \( \mathbb{Z}_n \).

Zbiór nieskończony to zbiór, który nie jest skończony.

Jeśli \( X \) jest zbiorem skończonym, to Wniosek 3.4 gwarantuje nam, że \( X \) jest bijektywny z dokładnie jednym zbiorem postaci \( \mathbb{Z}_n \). Rozważając skończony zbiór \( n \)-elementowy \( X \), często używamy notacji \( X={\{ {x_0,x_1,\ldots,x_{n-1}} \}\ } \) ukrywającej w sobie bijekcję postaci \( \mathbb{Z}_n \longrightarrow X \).

Liczba elementów skończonego zbioru \( X \), to jedyna liczba naturalna \( n \) taka, że istnieje bijekcja z \( \mathbb{Z}_n \) w \( X \). Liczbę te oznaczamy
przez \( \vert X\vert \).

Przykład

Oczywiście \( \vert\mathbb{Z}_n\vert = n \). W szczególności zbiór pusty ma, zgodnie z intuicją, liczbę elementów równą \( 0 \).

Przykład

Zbiór liczb parzystych \( \mathbb{P} \) jest nieskończony.

Dla dowodu niewprost załóżmy, że \( \vert\mathbb{P}\vert=k \), tzn. \( \mathbb{P} = {\{ {p_0,\ldots,p_{k-1}} \}\ } \). Oczywiście \( \mathbb{P} \neq \emptyset \), bo \( 0\in \mathbb{P} \). Nadto suma wszystkich \( p_i \) jest ograniczeniem zbioru \( \mathbb{P} \), a więc, z Zasady Maksimum, \( \mathbb{P} \) posiada element największy, powiedzmy \( p_0 \). Ponieważ \( p_0 \) jest największą liczbą parzystą, \( p_0+2\notin \mathbb{P} \), co oczywiście daje sprzeczność.

Obserwacja 3.5

Zbiór \( X \) jest nieskończony wtedy i tylko wtedy, gdy istnieje injekcja z \( \mathbb{N} \) w \( X \).

Dowód

Załóżmy, że \( X \) jest nieskończony i zdefiniujmy indukcyjnie funkcję \( f:\mathbb{N}\longrightarrow X \), kładąc:

  1. niech \( f(0) \) będzie dowolnym, wybranym elementem \( X \),
  2. gdy \( f(0),\ldots,f(n) \) są już określone, wtedy niech \( f(n+1) \) będzie dowolnie wybranym elementem z \( X-{\{ {f(0),\ldots,f(n)} \}\ } \).

To, że wyboru opisanego w punkcie drugim możemy zawsze dokonać, wynika wprost z nieskończoności zbioru \( X \). Istotnie, gdyby zbiór \( X-{\{ {f(0),\ldots,f(n)} \}\ } \) był pusty, to \( f \) byłoby bijekcją \( \mathbb{Z}_{n+1} \longrightarrow X \) świadczącą o tym, że \( X \) jest skończony. Oczywiście, tak zdefiniowana funkcja \( f : \mathbb{N} \longrightarrow X \) jest injekcją.

Dla dowodu implikacji odwrotnej załóżmy, że istnieje injekcja \( f:\mathbb{N}\longrightarrow X \) oraz że \( X \) jest skończony tzn. że istnieje bijekcja \( g:\mathbb{Z}_n\longrightarrow X \) dla pewnego \( n \). Zauważmy, że restrykcja \( f|_{\mathbb{Z}_{n+1}} \) jest również injekcją. A zatem złożenie \( g^{-1} f|_{\mathbb{Z}_{n+1}} \) jest injekcją z \( \mathbb{Z}_{n+1} \) w \( \mathbb{Z}_n \), co stoi w sprzeczności z Obserwacją 3.3.

Zbiór przeliczalny to zbiór skończony lub bijektywny z \( \mathbb{N} \).

Przykład

  • zbiór pusty jest przeliczalny, bo jest skończony,
  • zbiór liczb parzystych jest przeliczalny, bo \( f(x)=2x \) jest bijekcją \( \mathbb{N}\longrightarrow\mathbb{P} \)
  • zbiór liczb całkowitych jest przeliczalny, bo

\( f(x)= \left\{ \begin{array} {cl} \frac{x}{2}, & \textrm{dla parzystych } x, \\ \frac{-1-x}{2}, & \textrm{dla nieparzystych } x, \end{array} .\right. \)

jest bijekcją z \( \mathbb{N} \) w \( \mathbb{Z} \).

Zasada Szufladkowa

Wróćmy jeszcze do Obserwacji 3.3 - formalnej podstawy zliczania skończonych zbiorów. Ma ona także bardziej praktyczną interpretację. Jest to formalne ujęcie faktu powszechnie znanego jako Zasada Szufladkowa Dirichleta (wierzy się, że jako pierwszy opisał ja Dirichlet w 1834).

Wniosek 3.6 [Zasada Szufladkowa Dirichleta]

Jeśli \( n \) obiektów jest rozmieszczonych w \( m \) szufladach i \( n>m \), to istnieje szuflada z przynajmniej dwoma obiektami.

Dowód

Zbiór obiektów jest bijektywny ze zbiorem \( \mathbb{Z}_n \), zaś zbiór szuflad z \( \mathbb{Z}_m \). Rozmieszczenie obiektów w szufladach to określenie funkcji z \( \mathbb{Z}_n \) w \( \mathbb{Z}_m \). Ponieważ \( n>m \) to Obserwacja 3.3 mówi nam, ze funkcja ta nie jest injekcją, a zatem lokuje co najmniej dwa obiekty w tej samej szufladzie.

Przykład

Proste przykłady:

  • Wśród mieszkańców Krakowa co najmniej dwie osoby mają tę samą liczbę włosów na głowie.

Dowód

Rzeczywiście, liczba włosów na głowie człowieka nie przekracza \( 500 000 \), natomiast liczba mieszkańców Krakowa przekracza \( 800 000 \). Weźmy \( 500 000 \) szufladek ponumerowanych kolejnymi liczbami naturalnymi od \( 0 \) do \( 499 999 \) i wkładajmy do szufladki o danym numerze osoby, które mają taką liczbę włosów na głowie, jak numer szufladki. Ponieważ osób jest \( 800 000 \), a szufladek \( 500 000 \), z Zasady Szufladkowej wynika, że w jednej szufladce muszą znaleźć się co najmniej dwie osoby.

  • W grupie \( 13 \) osób muszą być co najmniej dwie, które urodziły się w tym samym miesiącu.

Dowód

Weźmy \( 12 \) szufladek z nazwami miesięcy i wkładajmy do nich osoby, które urodziły się w danym miesiącu. Ponieważ osób jest \( 13 \), a szufladek \( 12 \), w jednej z nich muszą być co najmniej dwie osoby.

Czasem, umiejętnie dobierając "pudełka" można pokazać bardziej zaskakujące fakty...

Przykład

Pewna grupa osób wita się podając sobie ręce. Nikt nie wita się z samym sobą i żadna para osób nie wita się podwójnie. Czy muszą być dwie osoby, które witały taką samą liczbę osób?

  • Gdy jest \( n \) osób, to każda z nich przywita \( 0 \) lub \( 1 \) lub \( 2 \) lub ... \( n-1 \) osób.
  • Utwórzmy więc \( n \) szuflad z etykietami \( k=0,1,2,\ldots, n-1 \) i umieśćmy osobę w szufladzie o etykiecie \( k \), jeśli witała się z dokładnie \( k \) osobami.
  • Skoro jest \( n \) osób i \( n \) szuflad, to ...
    niewiele z tego wynika  :-(
  • Ale... niewiele wynika tylko jeśli wszystkie szuflady będą zajęte, a tak jest w przypadku, gdy również dwa konkretne pudełka o etykietach \( 0 \) i \( n-1 \) są zajęte. Tyle, że nie jest to możliwe - nie może być osoby, która przywitała wszystkie pozostałe i równocześnie takiej, która nie przywitała nikogo.
  • A zatem \( n \) osób zajęło co najwyżej \( n-1 \) szuflad, więc w jednej z nich są co najmniej dwie osoby - takie, które przywitały tę samą liczbę osób.

Przykład

Wybierając \( n+1 \) liczb spośród \( 1,2,3,\ldots, 2n \), wśród wybranych liczb zawsze znajdziemy dwie, z których jedna dzieli drugą.

Istotnie:

  • Określmy relacje \( xRy \) na liczbach naturalnych, tak by:

\( xRy \ \ \Leftrightarrow \) iloraz \( \frac{x}{y} \) jest potęgą (być może ujemną) liczby \( 2 \).

Oznacza to, że \( xRy \) jeśli liczby \( x, y \) mają ten sam największy czynnik nieparzysty.

  • Szufladami niech będą klasy równoważności relacji \( R \).
  • Ile jest klas-szuflad dla liczb ze zbioru \( {\{ {1,2,3,\ldots, 2n} \}\ } \)? Co najwyżej \( n \), gdyż tyle może być liczb nieparzystych w zbiorze \( {\{ {1, 2, ..., 2n} \}\ } \).
  • Skoro wybrano \( n + 1 \), to rozkładając je do naszych szuflad jakieś dwie, powiedzmy \( a,b \) muszą trafić do wspólnej szuflady.

Oznacza to, że któryś z ilorazów \( \frac{a}{b}, \frac{b}{a} \) jest dodatnią potęgą dwójki, a zatem \( a \) dzieli \( b \) lub \( b \) dzieli \( a \).

Przykład

Wybierzmy dowolnie \( 10 \) różnych liczb naturalnych \( a_1,a_2,\ldots,a_{10} \) spośród \( 1,2,3,\ldots,100 \). Pokażemy, że w zbiorze \( {\{ {a_1,a_2,\ldots,a_{10}} \}\ } \) można wybrać dwa rozłączne podzbiory, dające tę samą sumę.

Istotnie:

  • Szuflady poetykietujmy liczbami reprezentującymi możliwe sumy liczb w co najwyżej 10-cio elementowych podzbiorach zbioru \( {\{ {1,2,3,\ldots,100} \}\ } \). Ponieważ największa możliwa taka suma to \( 91+92+93+\cdots+99+100 = 955 \), to mamy \( 955 \) szuflad z etykietami: \( 0,1,2,3,\ldots, 955 \)
  • z drugiej strony \( 10 \)-cio elementowy zbiór \( {\{ {a_1,a_2,\ldots,a_{10}} \}\ } \) ma \( 2^{10}=1024 \) podzbiory, więc muszą być dwa podzbiory zbioru \( {\{ {a_1,a_2,\ldots,a_{10}} \}\ } \) o tej samej sumie.
  • Te dwa podzbiory nie muszą być rozłączne. Ale jeśli z obu z nich usuniemy wspólne liczby, to pozostałe dalej będą dawać takie same sumy, a powstałe zbiory będą już rozłączne.

Zasady zliczania

Bardzo często w tym kursie będziemy stać przed problemem zliczenia pewnego skończonego zbioru obiektów. Skrajnie niewygodne i nieefektywne byłoby, gdybyśmy za każdym razem konstruowali bijekcję z \( \mathbb{Z}_n \) w nasz zbiór dla pewnego naturalnego \( n \). Na szczęście istnieje wiele reguł pozwalających szybciej zliczać obiekty kombinatoryczne. Poniżej przedstawiamy te podstawowe. Pierwsza z nich jest bardzo prosta i w sposób intuicyjny stosowana od początków cywilizacji.

Zasada dodawania

Dla skończonych i rozłącznych zbiorów \( A \) i \( B \) mamy:

\( \vert A\cup B\vert=\vert A\vert+\vert B\vert. \)

Dowód

Niech liczności zbiorów \( \vert A\vert=m \), \( \vert B\vert=n \) będą poświadczone bijekcjami \( f:\mathbb{Z}_m \to A \) i \( g:\mathbb{Z}_n \to B \). Wtedy funkcja \( h:\mathbb{Z}_{m+n}\to A\cup B \) zadana przez:

\( h(x)= \left\{ \begin{array} {ll} f(x), & \textrm{dla }x\in{\{ {0,\ldots,m-1} \}\ } \\ g(x-m), & \textrm{dla } x\in{\{ {m,\ldots,m+n-1} \}\ } \end{array} \right.\)

jest bijekcją. Istotnie, skoro zbiory \( A \) i \( B \) są rozłączne, to dla dowolnych \( x_1\in{\{ {0,\ldots,m-1} \}\ } \), \( x_2\in{\{ {m,\ldots,m+n-1} \}\ } \) zachodzi \( h(x_1)\neq h(x_2) \). Ponadto restrykcje \( h \) do zbiorów zbiorów \( {\{ {0,\ldots,m-1} \}\ } \) i \( {\{ {m,\ldots,m+n-1} \}\ } \) są injekcjami. A zatem \( h \) jest injekcją.

Dla dowodu surjektywności \( h \) weźmy dowolny element \( y\in A\cup B \). Załóżmy, że \( y\in A \) (w drugim przypadku dowód przebiega analogicznie). Wtedy z surjektywności \( f \) wiemy, że istnieje \( x\in\mathbb{Z}_m \) takie, że \( f(x)=y \). Ale \( h(x)=f(x)=y \). Zatem \( h \) jest surjekcją.

Łatwy dowód indukcyjny pozwala uogólnić zasadę dodawania na dowolnie wiele skończonych zbiorów.

Wniosek 3.7

Dla zbiorów \( A_1,\ldots,A_n \) skończonych i parami rozłącznych:

\( \vert A_1\cup\ldots\cup A_n\vert=\vert A_1\vert+\ldots+\vert A_n\vert. \)

Więcej pracy wymaga analiza sytuacji, gdy zbiory \( A,B \) nie są rozłączne.

Zasada włączania i wyłączania

Dla zbiorów skończonych \( {\{ {A_1,A_2,\ldots,A_n} \}\ } \) zachodzi

\( \begin{align*} & & \vert A_1\cup A_2\cup\ldots\cup A_n\vert\ =\ \sum_{I\subseteq{\{ {1,\ldots,n} \}\ }}(-1)^{\vert I\vert+1}\vert\bigcap_{i\in I}A_i\vert \\ & & \begin{array} {lr} = \vert A_1\vert+\vert A_2\vert+\vert A_3\vert+\ldots & +\vert A_{n-2}\vert+\vert A_{n-1}\vert+\vert A_n\vert \\ -\vert A_1\cap A_2\vert-\vert A_1\cap A_3\vert-\ldots & -\vert A_{n-2}\cap A_n\vert-\vert A_{n-1}\cap A_n\vert \\ +\vert A_1\cap A_2 \cap A_3\vert+\ldots & +\vert A_{n-2}\cap A_{n-1} \cap A_n\vert \\ -\vert A_1\cap A_2 \cap A_3\cap A_4\vert-\ldots & -\vert A_{n-3}\cap A_{n-2}\cap A_{n-1} \cap A_n\vert \\ +\ldots & \\ (-1)^{n+1}\vert A_1\cap A_2\cap\ldots\cap A_n\vert & \end{array} \end{align*} \)

W szczególności, \( \vert A\cup B\vert=\vert A\vert+\vert B\vert-\vert A\cap B\vert \), o ile tylko \( A,B \) są skończone.

Dowód

Zaczniemy od dowodu drugiego zdania. Ponieważ trzy zbiory \( A - B, A\cap B \) i \( B- A \) są parami rozłączne i sumują się do \( (A - B) \cup (A\cap B) \cup (B- A) = A \cup B \), na mocy Wniosku 3.7 mamy:

\( |A \cup B| = |(A - B) \cup (A\cap B) \cup (B- A)| = |A - B| + |A\cap B| + |B- A| \)

skąd

\( \begin{align*} |A \cup B| + |A \cap B| & =|A - B| + |A\cap B| + |B- A| + |A\cap B| \\ & =(|A - B| + |A\cap B|) + (|B- A| + |A\cap B|) \\ & =|(A - B) \cup (A\cap B)| + |(B- A) \cup (A\cap B)| \\ & =|A| + |B| \end{align*} \)

skąd już natychmiast dostajemy:

\( \vert A\cup B\vert=\vert A\vert+\vert B\vert-\vert A\cap B\vert. \)      (1)

W sytuacji dowolnie wielu \( n \) zbiorów użyjemy rozumowania indukcyjnego. Oczywiście \( n=1,2 \) twierdzenie jest prawdziwe. Załóżmy, że \( n>2 \). Na mocy równości 1) otrzymujemy:

\( \begin{align*} \vert\bigcup_{k=1}^nA_k\vert\ =\ \vert\bigcup_{k=1}^{n-1}A_k\vert+\vert A_n\vert-\vert\bigcup_{k=1}^{n-1}A_k\cap A_n\vert. \end{align*} \)

Wykorzystując założenie indukcyjne dla wartości \( n-1 \) zachodzi

\( \begin{align*} \vert\bigcup_{k=1}^nA_k\vert & =\sum_{I\subseteq{\{ {1,\ldots,n-1} \}\ }}(-1)^{\vert I\vert+1}\vert\bigcap_{i\in I}A_i\vert+\vert A_n\vert-\sum_{I\subseteq{\{ {1,\ldots,n-1} \}\ }}(-1)^{\vert I\vert+1}\vert\bigcap_{i\in I}A_i\cap A_n\vert \\ & =\sum_{I\subseteq{\{ {1,\ldots,n-1} \}\ }}(-1)^{\vert I\vert+1}\vert\bigcap_{i\in I}A_i\vert+\sum_{I\subseteq{\{ {1,\ldots,n-1} \}\ }}(-1)^{\vert I\cup{\{ {n} \}\ }\vert+1}\vert\bigcap_{i\in I\cup{\{ {n} \}\ }}A_i\vert. \end{align*} \)

Rodzina wszystkich podzbiorów \( I \) zbioru liczb \( {\{ {1,\ldots,n} \}\ } \) można podzielić na dwie rozłączne rodziny:

  • pierwsza składa się z tych \( I \), które nie zawierają \( n \), czyli \( {\{ {I:I\subseteq{\{ {1,\ldots,n-1} \}\ }} \}\ }, \)
  • druga jest rodziną tych \( I \), które zawierają \( n \), czyli \( {\{ {I\cup{\{ {n} \}\ }:I\subseteq{\{ {1,\ldots,n-1} \}\ }} \}\ } \).

W rezultacie otrzymujemy, że

\( \begin{align*}\vert\bigcup_{k=1}^nA_k\vert\ =\ \sum_{I\subseteq{\{ {1,\ldots,n} \}\ }}(-1)^{\vert I\vert+1}\vert\bigcap_{i\in I}A_i\vert,\end{align*} \)

co kończy dowód.

Wniosek 3.7 pozwala uogólnić Zasadę Szufladkową. Załóżmy, że pewna ilość obiektów jest rozmieszczona w \( n \) szufladach. Niech \( A_i \) będzie zbiorem obiektów w \( i \)-tej szufladce. Ponieważ zbiory obiektów w różnych szufladach są rozłączne, to ilość obiektów we wszystkich szufladach wynosi \( \vert A_1\cup\ldots\cup A_n\vert=\vert A_1\vert\cup\ldots\cup\vert A_n\vert \). Zatem jeśli każda szufladka ma co najwyżej \( r \) obiektów, to w sumie jest co najwyżej \( nr \) obiektów.

Uogólniona Zasada Szufladkowa

Jeśli \( m \) obiektów rozmieszczonych jest w \( n \) szufladach i \( m>nr \), dla pewnego naturalnego \( r \), to istnieje szufladka z co najmniej \( r+1 \) obiektami.

Przypomnijmy, że iloczyn kartezjański (produkt) zbiorów \( X \) i \( Y \) to zbiór

\( X\times Y={\{ {(x,y): x\in X, y\in Y} \}\ }. \)

Zasada Mnożenia

Dla skończonych zbiorów \( X,Y \):

\( \vert X\times Y\vert=\vert X\vert\cdot\vert Y\vert. \)

Dowód

Najpierw pokażemy, że \( \vert\mathbb{Z}_m\times\mathbb{Z}_n\vert=m \cdot n \). W tym celu pokażemy, że funkcja

\( f:\mathbb{Z}_m\times\mathbb{Z}_n \ni (i,j) \mapsto in+j \in \mathbb{Z}_{mn} \)

jest bijekcją.

Dla dowodu injektywności załóżmy, że \( f(i,j)=f(i',j') \), czyli \( in+j=i'n+j' \). Bez straty ogólności możemy założyć, że \( i\leq i' \), wtedy \( (i'-i)n=j-j' \). Lewa strona równości jest wielokrotnością \( n \), zaś prawa leży w zbiorze \( {\{ {-n+1,\ldots,n-1} \}\ } \), gdyż \( j,j'\in\mathbb{Z}_n \). Ponieważ \( 0 \) jest jedyną wielokrotnością liczby \( n \) w tym zbiorze, to \( i'-i=0 \) i \( j-j'=0 \), co dowodzi injektywności \( f \).

Dla dowodu surjektywności rozważmy \( y\in\mathbb{Z}_{mn} \). Niech \( i \) będzie największą liczbą taką, że \( in\leq y \). Wtedy \( y < (i+1)n \) zatem istnieje \( j\in{\{ {0,\ldots,n-1} \}\ } \) takie, że \( y=in+j=f(i,j) \), co było do udowodnienia.

Załóżmy teraz, że \( \vert X\vert=m \) i \( \vert Y\vert=n \). Wtedy, z poczynionej wyżej obserwacji, dowód Zasady Mnożenia jest natychmiastowy, gdyż

\( \vert X\times Y\vert=\vert\mathbb{Z}_m\times \mathbb{Z}_n\vert=m\cdot n=\vert X\vert\cdot\vert Y\vert. \)

Przykład

Rozważ turniej rycerski między bractwem czerwonych a bractwem niebieskich. Bractwo czerwonych ma \( 12 \) rycerzy, bractwo niebieskich \( 15 \). Ile różnych indywidualnych pojedynków może być stoczonych, jeśli rycerze z tego samego bractwa nigdy ze sobą nie walczą?

  • Niech \( C \) i \( N \) będą zbiorami rycerzy, odpowiednio z bractwa czerwonych i z bractwa niebieskich,
  • każdy pojedynek może być interpretowany jako uporządkowana para \( (c,n) \), gdzie \( c\in C \), \( n\in N \). Zatem liczba pojedynków to liczność zbioru \( C\times N \).
  • \( \vert C\times N\vert=\vert C\vert\cdot\vert N\vert=12\cdot15=300 \).

Zliczanie podzbiorów

Zbiór potegowy, lub inaczej zbiór podzbiorów, zbioru \( X \) oznaczamy przez \( \mathcal{P}(X) \).

Przykład

  • \( \mathcal{P}(\emptyset)={\{ {\emptyset} \}\ } \) i \( \vert\mathcal{P}(\emptyset)\vert=1 \)
  • \( \mathcal{P}({\{ {\emptyset} \}\ })={\{ {\emptyset,{\{ {\emptyset} \}\ }} \}\ } \) i \( \vert\mathcal{P}({\{ {\emptyset} \}\ })\vert=2 \)

Przykład

Ile podzbiorów ma skończony zbiór \( n \)-elementowy? Łatwo jest odpowiedzieć na to pytanie dla małych liczb \( n \). Np. zbiór \( {\{ {a,b} \}\ } \) ma następujące cztery podzbiory:

\( \emptyset,{\{ {a} \}\ }, {\{ {b} \}\ }, {\{ {a,b} \}\ } \)

a zbiór trzyelementowy \( {\{ {a,b,c} \}\ } \) ma osiem podzbiorów:

\( \emptyset, {\{ {a} \}\ }, {\{ {b} \}\ }, {\{ {c} \}\ }, {\{ {a,b} \}\ }, {\{ {a,c} \}\ }, {\{ {b,c} \}\ }, {\{ {a,b,c} \}\ } \)

Spróbujmy odpowiedzieć na to pytanie w ogólnej sytuacji i w sposób rekurencyjny. Niech \( p_n \) oznacza liczbę podzbiorów zbioru \( n \)-elementowego. Na podstawie dotychczasowych przykładów mamy:

\( \begin{array} {|c||c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & \ldots \\ \hline p_n & 1 & 2 & 4 & 8 & \ldots \\ \hline \end{array} \)

i można wysunąć hipotezę, że w ogólności \( p_n = 2^n \). Ale jak ją uzasadnić?

Załóżmy, że znamy liczbę \( p_n \) i chcemy policzyć \( p_{n+1} \). Niech więc zbiór \( Z \) ma \( n+1 \) elementów, czyli po usunięciu ze zbioru \( Z \) elementu \( a\in Z \) dostajemy \( n \)-elementowy zbiór \( Z' \). Podobnie jak w dowodzie Zasady Włączania-Wyłączania, podzbiory zbioru \( Z \) można podzielić na dwa typy:

  • albo mają w sobie element \( a \),
  • albo go nie mają.

W drugim przypadku są to podzbiory zbioru \( Z' \). Jest więc ich dokładnie \( p_n \).

Każdy zaś podzbiór pierwszego typu, czyli \( A \subseteq Z \) takie, że \( a\in A \) jest jednoznacznie wyznaczony przez swoje pozostałe elementy, tzn. elementy różne od \( a \). A zatem każdy taki zbiór \( A \), że \( a \in A \subseteq Z \), jest postaci \( A'\cup {\{ {a} \}\ } \) dla pewnego \( A'\subseteq Z' \). A zatem podzbiorów zbioru \( Z \), w których jest element \( a \) jest też tyle ile podzbiorów zbioru \( Z' \), tzn. \( p_n \).

Łącznie więc zbiór \( Z \) ma \( p_n + p_n \) podzbiorów, czyli \( p_{n+1} = 2\cdot p_n \) Teraz już bez trudu stwierdzamy, że to wraz z warunkiem \( p_0 = 1 \) jest spełnione przez

\( p_n = 2^n \)

co można łatwo uzasadnić przez indukcję. 0

Obserwacja 3.8

Dla dowolnego, skończonego zbioru \( X \)

\( \vert\mathcal{P}(X)\vert=2^{\vert X\vert}. \)

Zliczanie funkcji

Zbiór funkcji postaci \( X \longrightarrow Y \) oznaczamy przez \( Y^X \).

Obserwacja 3.9

Dla skończonych zbiorów \( X,Y \) mamy:

\( \vert Y^X\vert=\vert Y\vert^{\vert X\vert}. \)

Dowód

Niech \( X={\{ {x_0,\ldots,x_{m-1}} \}\ } \) oraz \( Y={\{ {y_0,\ldots, y_{n-1}} \}\ } \). Każda funkcja \( f: X \longrightarrow Y \) to krotka wartości dla kolejnych \( x_i \):

\( (f(x_0),f(x_1),\ldots,f(x_{m-1}))\in \underbrace{Y\times\ldots\times Y}_{m\ razy}. \)

A więc zbiór funkcji z \( X \) w \( Y \) jest równoliczny z \( Y^m \). Z Zasady Mnożenia otrzymujemy więc:

\( \vert\underbrace{Y\times\ldots\times Y}_{m\ razy}\vert =\underbrace{\vert Y\vert\times\ldots\times\vert Y\vert}_{m\ razy} =n^m= \vert Y\vert^{\vert X\vert}. \)

Przykład

Trzech kolegów: Bartek, Paweł i Piotrek spotkali się w pubie tuż po zdanym egzaminie z matematyki dyskretnej. Okazało się, że jest pięć marek piwa do wyboru. Na ile sposobów mogą oni wypić pierwszą kolejkę?

Każdy wybór marki piwa przez wszystkie \( 3 \) osoby możemy interpretować jako funkcję ze zbioru \( {\{ {\textrm{Bartek},\textrm{Paweł},\textrm{Piotrek}} \}\ } \) w pięcioelementowy zbiór marek piwa. A więc istnieje \( 5^3=125 \) sposobów spożycia pierwszej kolejki. I tyleż sposobów dla każdej nastepnej......

Przykład

Kod PIN jest kodem autoryzującym właściciela karty bankomatowej. Składa się on z \( 4 \) cyfr dziesiętnych. Ile jest różnych kodów PIN?

Każdy kod PIN to funkcja z czteroelementowego zbioru pozycji \( {\{ {0,1,2,3} \}\ } \) w dziesięcioelementowy zbiór cyfr \( {\{ {0,1,\ldots,9} \}\ } \). Z Obserwacji 3.9 wynika że kodów PIN jest dokładnie \( 10^4=10000. \)

Posługując się Obserwacją 3.8 udowodnimy jeszcze raz wzór na ilość podzbiorów skończonego zbioru. Zatem Obserwację 3.9 możemy traktować jako uogólnienie Obserwacji 3.8.

Dowód

Alternatywny dowód Obserwacji 3.8
Zauważmy, że dowolny podzbiór \( A\subseteq X \) wyznacza jednoznacznie funkcję \( \chi_A:X \to \mathbb{Z}_2 \) w następujący sposób:

\( \chi_Y(x)= \left\{ \begin{array} {cl} 0, & \textrm{dla }x\in X- A \\ 1, & \textrm{dla }x\in A \end{array} \right . \)

Również każda funkcja \( f :X \longrightarrow \mathbb{Z}_2 \) wyznacza jednoznacznie podzbiór \( A_f{\{ {x\in X:f(x)=1} \}\ } \) zbioru \( X \). Nadto, odpowiedniość

\( \mathcal{P}(X) \ni A \mapsto \chi_A \in \mathbb{Z}_2^X \)

jest bijektywna. Zatem \( \vert\mathcal{P}(X)\vert=\vert\mathbb{Z}_2^X\vert =2^{\vert X\vert} \).

Obserwacja 3.10

Liczba injekcji ze zbioru skończonego \( X \) w zbiór skończony \( Y \) wynosi:

\( \vert Y \vert( \vert Y \vert-1)\cdot\ldots\cdot( \vert Y \vert- \vert X \vert +1)= \frac{ \vert Y \vert!}{( \vert Y \vert- \vert X \vert)!}. \)

Dowód

Niech \( X={\{ {x_0,\ldots,x_{m-1}} \}\ } \) i \( Y={\{ {y_0,\ldots,y_{n-1}} \}\ } \). Każdą injekcję z \( X \) w \( Y \) możemy utożsamić z uporządkowanym wyborem \( m \) różnych elementów ze zbioru \( Y \):

\( f(x_0),f(x_1),\ldots,f(x_{m-1}). \)

Pierwszy element możemy wybrać na \( n \) sposobów, drugi na \( n-1 \), bo musi być różny od poprzednio wybranego, trzeci już tylko na \( n-2 \) sposoby, itd., aż wreszcie \( m \)-ty na \( n-m+1 \) sposobów. Zatem liczba injekcji równa jest \( n(n-1)\cdot\ldots\cdot(n-m+1) \).

Przykład

Ile jest PIN-ów, czyli cztero-elementowych słów złożonych z cyfr dziesiętnych, takich że żadna cyfra się nie powtarza?

Każdy PIN z niepowtarzającymi się cyframi to injekcja z cztero-elementowego zbioru pozycji \( {\{ {0,1,2,3} \}\ } \) w \( 10 \)-elementowy zbiór cyfr \( {\{ {0,1,\ldots,9} \}\ } \). Zatem jest ich dokładnie \( 10\cdot9\cdot8\cdot7=5040 \).

Obserwacja 3.11

Liczba bijekcji pomiędzy skończonymi zbiorami \( X \) i \( Y \), gdzie \( \vert X\vert=\vert Y\vert \) wynosi \( \vert X\vert!. \)

Dowód

Pokażemy najpierw, że każda injekcja \( f: X \longrightarrow Y \) jest bijekcją. Istotnie, gdyby \( f \) nie było surjekcją, to \( f(X) \) byłoby właściwym podzbiorem zbioru \( Y \). A zatem \( \vert f(X)\vert < \vert Y\vert \) i funkcja \( f : X \longrightarrow f(X) \) ustalałaby injekcję ze zbioru o większej liczbie elementów w zbiór o mniej liczny. A to nie jest możliwe na mocy Obserwacji 3.3. Udowodniliśmy, że liczba bijekcji z \( X \) w \( Y \) równa jest liczbie injekcji z \( X \) w \( Y \), czyli, z Obserwacji 3.10), wynosi ona:

\( n(n-1)\cdot\ldots\cdot(n-n+2)(n-n+1)=n!. \)

Zauważmy jeszcze, że \( \emptyset \subseteq \emptyset \times \emptyset \) jest nie tylko funkcją \( \emptyset : \emptyset \longrightarrow \emptyset \), ale i bijekcją i jest to jedyna bijekcja \( \emptyset \longrightarrow \emptyset \).

Przykład

Na kurs tańca uczęszcza pięciu chłopaków i pięć dziewcząt. Większość kroków tanecznych ćwiczy się parami. Dla urozmaicenia pary często się zmieniają. Na ile sposobów może być wykonany jeden taniec?

Niech \( C \) będzie zbiorem chłopaków, a \( D \) zbiorem dziewcząt. Matematycznym modelem doboru par do tańca jest bijekcja \( f:C \to D \). Zatem możliwych wyborów jest tyle samo co bijekcji pomiędzy \( 5 \)-elementowymi zbiorami, czyli \( 5!=5\cdot4\cdot3\cdot2\cdot1=120 \).

Permutacje

Permutacja zbioru skończonego \( X \) to bijekcja z \( X \) w \( X \).

Zbiór permutacji zbioru \( \mathbb{Z}_n \) oznaczamy przez \( S_n \), a permutacje bedziemy w tym kursie oznaczać małymi literami greckimi.

Przykład

Rozważ funkcję \( \alpha:\mathbb{Z}_7 \to \mathbb{Z}_7 \) zadaną przez poniższą tabelę:

\( \begin{array} {|c||c|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline \alpha(n) & 2 & 3 & 6 & 0 & 4 & 1 & 5 \\ \hline \end{array} \)

Funkcja \( \alpha \) jest bijekcją z \( \mathbb{Z}_7 \) w \( \mathbb{Z}_7 \), zatem jest permutacją i \( \alpha\in S_7 \).

Przykład

Dla permutacji \( \alpha,\beta\in S_5 \) zadanych przez poniższą tabelę:

\( \begin{array} {|c||c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 \\ \hline \alpha(n) & 4 & 2 & 3 & 0 & 1 \\ \hline \beta(n) & 2 & 3 & 1 & 4 & 0 \\ \hline \end{array} \)
ich złożenia podane są poniżej:

\( \begin{array} {|c||c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 \\ \hline \beta\alpha(n) & 0 & 1 & 4 & 2 & 3 \\ \hline \alpha\beta(n) & 3 & 0 & 2 & 1 & 4 \\ \hline \end{array} \)

Zauważ, że oba złożenia także są permutacjami \( \mathbb{Z}_5 \).

Ponieważ permutacje są bijekcjami, to natychmiast z Obserwacji 3.2 dostajemy:

Obserwacja 3.12

Dla dowolnych permutacji \( \alpha,\beta \) skończonego zbioru \( X \):

  • \( \alpha\beta,\beta\alpha \) są permutacjami \( X \),
  • \( \alpha^{-1} \) jest permutacją \( X \) taką, że \( \alpha\alpha^{-1}=id_{X}=\alpha^{-1}\alpha= \).

Następne spostrzeżenie jest natychmiastowym wnioskiem z Obserwacji 3.11.

Wniosek 3.13

Zbiór \( n \)-elementowy ma dokładnie \( n! \) permutacji, \( \vert S_n\vert=n! \).

Przykład

Oto wszystkie (\( 3!=6 \)) permutacje zbioru \( S_3 \):

\( \begin{array} {ccccccccccc} 0 & 1 & 2 & \qquad & 0 & 1 & 2 & \qquad & 0 & 1 & 2 \\ \downarrow & \downarrow & \downarrow & & \downarrow & \downarrow & \downarrow & & \downarrow & \downarrow & \downarrow \\ 0 & 1 & 2 & \qquad & 0 & 2 & 1 & \qquad & 1 & 0 & 2 \\ \\ 0 & 1 & 2 & \qquad & 0 & 1 & 2 & \qquad & 0 & 1 & 2 \\ \downarrow & \downarrow & \downarrow & & \downarrow & \downarrow & \downarrow & & \downarrow & \downarrow & \downarrow \\ 1 & 0 & 2 & \qquad & 2 & 0 & 1 & \qquad & 2 & 1 & 0 \end{array} \)

Permutację \( \alpha \) zbioru \( X={\{ {x_0,\ldots,x_{n-1}} \}\ } \) wygodnie jest identyfikować z krotką \( (\alpha(x_0),\ldots,\alpha(x_{n-1}))\in X^n \). Często też permutację interpretuje się jako uporządkowanie zbioru \( X \).

Przykład

Na ile sposobów można poukładać koło siebie na półce \( 7 \) książek?

Na dokładnie tyle, ile jest permutacji zbioru siedmio-elementowego, a więc \( 7!=5040 \).

Cykl zbioru \( n \)-elementowego \( X \) to taka permutacja zbioru \( X \), dla której \( {\{ {x,\alpha(x),\alpha^2(x),\ldots,\alpha^{n-1}(x)} \}\ }=X \), przy dowolnym \( x\in X \). Łatwo zauważyć, że jeśli dla pewnego \( x_0\in X \) mamy \( {\{ {x,\alpha(x),\alpha^2(x),\ldots,\alpha^{n-1}(x)} \}\ }=X \), to jest tak dla wszystkich \( x\in X \), czyli \( \alpha \) jest cyklem na \( X \). Cykl \( \alpha \) zbioru \( X \) zapisujemy jako \( (x,\alpha(x),\ldots,\alpha^{n-1}(x)) \) dla dowolnie wybranego \( x\in X \).

Przykład

Rozważmy \( \alpha\in S_6 \) daną przez

\( \begin{array} {|c||c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 \\ \hline \alpha(n) & 3 & 5 & 0 & 1 & 2 & 4 \\ \hline \end{array} \)

  • sekwencja \( 0 \), \( \alpha(0)=3 \), \( \alpha^2(0)=1 \), \( \alpha^3(0)=5 \), \( \alpha^4(0)=4 \), \( \alpha^5(0)=2 \) pokwywa całe \( \mathbb{Z}_6 \),
  • zatem \( \alpha=(0,3,1,5,4,2) \) jest cyklem.

Rozkład permutacji na rozłączne cykle

Dowolną permutację \( \alpha \) zbioru \( X \) można rozłożyć na rozłączne cykle w sposób następujący:

  1. wybierz dowolny element \( x\in X \), który nie jest jeszcze w żadnym cyklu,
  2. iteruj permutację \( \alpha \) otrzymując kolejno: \( \alpha(x),\alpha^2(x),\alpha^3(x),\ldots \) aż do uzyskania \( \alpha^j(x)=x \),
  3. dodaj do rozkładu cykl \( x,\ldots,\alpha^{j-1}(x) \),
  4. jeśli w zbiorze \( X \) pozostały jeszcze elementy niepokryte przez żaden cykl, to wróć do pierwszego punktu.

Dowód

Dla dowodu poprawności algorytmu rozkładu pokażemy najpierw, że iteracja w drugim punkcie zawsze osiąga element wyjściowy \( x \). Ponieważ zbiór \( X \) jest skończony iteracja \( x,\alpha(x),\alpha^2(x)\ldots \) w pewnym kroku musi wrócić do elementu już rozważanego, zatem \( \alpha^i(x)=\alpha^j(x) \) dla pewnych \( i < j \). Weźmy najmniejsze takie \( j \), że \( \alpha^i(x)=\alpha^j(x) \) dla pewnego \( 0\leq i < j \). Gdyby \( i\neq 0 \) to z faktu, że \( \alpha \) jest permutacją mamy \( \alpha^{i-1}(x)=\alpha^{j-1}(x) \), co stoi w sprzeczności z minimalnością \( j \). A zatem \( \alpha^j(x)=x \).

Pozostaje jeszcze pokazać, że otrzymane cykle są rozłączne. Załóżmy, że nie są i weźmy pierwszy napotkany element \( y=\alpha^i(x) \), który był już w którymś z poprzednich cykli. Zauważmy, że \( i>0 \) gdyż \( x \) był wybrany jako element nie pokryty przez żaden cykl (patrz punkt pierwszy). Wiemy, że istnieje element \( z \) w tym samym cyklu co \( y \) taki, że \( \alpha(z)=y \), ale także \( \alpha(\alpha^{i-1}(x))=y \). Ponieważ \( \alpha \) jest permutacją, otrzymujemy \( \alpha^{i-1}(x)=z \), co stoi w sprzeczności z faktem, że \( y \) jest jedynym elementem z poprzedniego cyklu.

Jeśli permutacja \( \alpha \) złożona jest z \( k \) rozłącznych cykli, to zapisujemy \( \alpha=(x_0,\ldots)(x_1,\ldots)\ldots(x_{k-1},\ldots) \), gdzie w kolejnych nawiasach są elementy kolejnych cykli startujące od odpowiednio: \( x_0,\ldots,x_{k-1} \).

Przykład

Rozważmy jeszcze raz permutację \( \alpha\in S_7 \):

\( \begin{array} {|c||c|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline \alpha(n) & 2 & 3 & 6 & 0 & 4 & 1 & 5 \\ \hline \end{array} \)

Rozkład \( \alpha \) na cykle:

  • \( 0 \), \( \alpha(0)=2 \), \( \alpha(2)=6 \), \( \alpha(6)=5 \), \( \alpha(5)=1 \), \( \alpha(1)=3 \), \( \alpha(3)=0 \),
  • \( 4 \), \( \alpha(4)=4 \),
  • \( \alpha=(026513)(4) \).

Sumy skończone i rachunek różnicowy

Wstęp


Oto dwie konwencje zapisu skończonych sum wyrazów:

\( \displaystyle a_1+a_2+\ldots+a_n=\sum_{i=1}^{n} a_i. \)

Czasami stosowana jest ogólniejsza notacja \( \displaystyle \sum_{i\in I}a_i \), gdzie \( I \) jest skończonym zbiorem indeksów. Jeśli \( I \) jest pusty to suma ma
wartość \( 0 \).

Często, zamiast określać zbiór indeksów \( I \) podaje się pod sumą warunek ten zbiór definiujący. Na przykład:

\( \displaystyle \sum_{\scriptsize\begin{array} {c}1\leq i\leq n \\ i \textrm{ nieparzysta}\end{array}}a_i \)

Częstym zadaniem wobec którego stajemy to sprowadzenie sumy do postaci zwartej lub choćby znacząco prostszej. Ten wykład zawiera krótki przegląd metod i strategii obliczania skończonych sum. Znakomita część wykładu poświęcona jest prezentacji rachunku różnicowego - narzędzia pozwalającego liczyć skończone sumy w sposób systematyczny.

Kilka metod obliczania skończonych sum

Odgadnięcie rozwiązania i udowodnienie go przez indukcję

W wykładach o indukcji i rekurencji analizowaliśmy kilka przykładów tą metodą. Analogicznie rozwiązywaliśmy też równania rekursywne. Indukcja sprawdza się gdy intuicje odnośnie sumy, którą chcemy policzyć, pozwalają nam na wysuwanie hipotez co do jej wartości. Jest to też dobra metoda sprawdzenia wyników (w celu wychwycenia ewentualnych błędów) otrzymanych inną metodą. Niestety, najczęściej gdy chcemy wskazać wzór na sumę, nie jesteśmy w stanie go zgadnąć. Wtedy trzeba posłużyć się innymi metodami.

Przeindeksowanie sumy

Przykład

Rozważmy sumę skończonego ciągu arytmetycznego o parametrach \( a,b\in\mathbb{Z} \):

\( \displaystyle \sum_{0\leq k\leq n}(a+kb)=a+(a+b)+(a+2b)+(a+3b)+\ldots+(a+nb)=\quad? \)

Zauważmy, że

\( \displaystyle \sum_{0\leq k\leq n}(a+kb)=\sum_{0\leq k\leq n}(a+(n-k)b)=\sum_{0\leq k\leq n}(a+nb-kb). \)

Dodając odpowiednie równości stronami otrzymujemy:

\( \begin{align*}2\sum_{0\leq k\leq n}(a+kb) & =\sum_{0\leq k\leq n}((a+kb)+(a+nb-kb)) \\ & =\sum_{0\leq k\leq n}(2a+nb) \\ & =(2a+nb)\sum_{0\leq k\leq n}1 \\ & =(2a+nb)(n+1). \end{align*} \)

Zatem \( \displaystyle \sum_{0\leq k\leq n}(a+kb)=(a+\frac{1}{2}nb)(n+1) \), czyli obliczana suma jest średnią arytmetyczną pierwszego \( a \) i ostatniego \( a+bn \) składnika sumy pomnożoną przez liczbę składników sumy. Takiej metody użył młody Gauss, gdy zniecierpliwiony jego pytaniami nauczyciel polecił mu policzyć sumę tysiąca pierwszych liczb naturalnych.

Zmiana kolejności sumowania w sumach wielokrotnych

Przykład

Ciąg harmoniczny \( \displaystyle H_n=\sum_{i=1}^n\frac{1}{i} \) poznaliśmy w wykładzie o indukcji. Pokazaliśmy tam, że

\( \frac{\lfloor \lg{n}\rfloor+1}{2} \leq H_n \leq \lfloor \lg{n}\rfloor+1. \)

Tym razem jesteśmy zainteresowani sumami postaci

\( \displaystyle \sum_{i=1}^n H_i=\sum_{i=1}^n\sum_{j=1}^i\frac{1}{j}, \)

których pierwsze wartości przedstawia tabela:

\( \begin{array} {|c||c|c|c|c} \hline n & 1 & 2 & 3 & \ldots \\ \hline H_n & 1 & \frac{3}{2} & \frac{5}{3} & \ldots \\ \hline \displaystyle \sum_{i=0}^nH_i & 1 & \frac{5}{2} & \frac{25}{6} & \ldots \\ \hline \end{array} \)

W tym przypadku zamienimy kolejność wyrazów w sumie po czym okaże się, że nowa postać jest prosta do przeliczenia. Wypiszmy więc wszystkie wyrazy w naszej podwójnej sumie, tak by kolejne wiersze były składnikami liczb harmonicznych:

\( \begin{array} {ccccc} 1 \\ 1 & \frac{1}{2} \\ 1 & \frac{1}{2} & \frac{1}{3} \\ \ldots & \ldots & \ldots & \ldots \\ 1 & \frac{1}{2} & \frac{1}{3} & \ldots & \frac{1}{n} \end{array} \)

Zauważmy, że oryginalny zapis nakazuje najpierw sumować wiersze, a później wartości tych wierszy. Zmieńmy zatem kolejność sumowania aby najpierw sumować kolumny:

\( \begin{align*}\sum_{i=1}^nH_i=\sum_{i=1}^n\sum_{j=1}^i\frac{1}{j} & =\sum_{i=1}^n\frac{1}{i}\cdot (n-i+1) \\ & =n\sum_{i=1}^n\frac{1}{i}-\sum_{i=1}^n1+\sum_{i=1}^n\frac{1}{i} \\ & =(n+1)H_n-n. \end{align*} \)

Zaburzanie

Gdy interesują nas skończone sumy odcinków początkowych ciągu \( {\{ {a_i} \}\ }_{i\in\mathbb{N}} \), czyli sumy postaci \( \displaystyle S_n=\sum_{i=0}^n a_i \). Metoda zaburzania polega na obliczeniu wartości \( S_{n+1} \) za pomocą \( S_n \) na dwa różne sposoby: na ogół wydzielając pierwszy i ostatni składnik sumy tzn.:

\( \displaystyle {S_n+a_{n+1}=a_0+\sum_{i=0}^n a_{i+1}}. \)

Jeśli uda się nam ostatnią sumę wyrazić za pomocą \( S_n \), to otrzymamy równanie, którego rozwiązanie jest poszukiwaną sumą. Niestety, metoda zaburzania dalece nie zawsze działa. Jednak w wielu sytuacjach bywa elegancka i skuteczna.

Przykład

Policzmy sumę \( \displaystyle \sum_{i=0}^n ax^i \) skończonego ciągu geometrycznego dla \( a,x\in\mathbb{Z} \), \( x\neq1 \). Zgodnie z ogólnym schematem zaburzania mamy:

\( \begin{align*}\sum_{i=0}^n ax^i+ax^{n+1} & =ax^0+\sum_{i=0}^n ax^{i+1} \\ & =a+x\sum_{i=0}^n ax^i. \end{align*} \)

Rozwiązując powyższe równanie dostajemy:

\( \displaystyle \sum_{i=0}^nax^i=\frac{a-ax^{n+1}}{1-x},\ \) dla \( x\neq 1. \)

Przykład

Tym razem jesteśmy zainteresowani sumą \( \displaystyle \sum_{i=0}^n i2^i \),która przyjmuje wartości:

\( \begin{array} {|c||c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & \ldots \\ \hline n2^n & 0 & 2 & 8 & 24 & 64 & \ldots \\ \hline \displaystyle \sum_{i=0}^n i2^i & 0 & 2 & 10 & 34 & 98 & \ldots \\ \hline \end{array} \)

Licząc przez zaburzanie dostajemy:

\( \begin{align*}\sum_{i=0}^n i2^i+(n+1)2^{n+1} & =0\cdot2^0+\sum_{i=0}^n (i+1)2^{i+1} \\ & =2\sum_{i=0}^n i2^i+2\sum_{i=0}^n2^i \\ & =2\sum_{i=0}^n i2^i+2\cdot(2^{n+1}-1), \end{align*} \)

gdzie suma skończonego ciągu geometrycznego \( \displaystyle{\sum_{i=0}^n2^i} \) została wyliczona w poprzednim przykładzie. Zatem ostatecznie

\( \displaystyle \sum_{i=0}^n i2^i=(n+1)2^{n+1}-2(2^{n+1}-1)=(n-1)2^{n+1}+2. \)

Przykład

Spróbujmy policzyć jeszcze raz sumę kwadratów \( \displaystyle \sum_{i=0}^ni^2, \) ale tym razem przez zaburzanie.

\( \begin{align*}\sum_{i=0}^n i^2 + (n+1)^2 & =0^2+\sum_{i=0}^n(i+1)^2 \\ & =\sum_{i=0}^n i^2+2\sum_{i=0}^n i+\sum_{i=0}^n 1 \\ & =\sum_{i=0}^n i^2+2\sum_{i=0}^n i+n \end{align*} \)

Niestety okazuje się, że sumy kwadratów się skracają. Zaburzanie okazało się w tym przypadku nieskuteczne. Zauważmy jednak, iż z otrzymanej równości \( \displaystyle 2\sum_{i=0}^n i=(n+1)^2-(n+1) \) dostajemy wzór na sumę kolejnych liczb naturalnych (a nie kwadratów jak chcieliśmy). Nasuwa się podejrzenie, że aby otrzymać wzór na sumę kwadratów trzeba zaburzyć sumę sześcianów. Spróbujmy:

\( \begin{align*}\sum_{i=0}^n i^3+(n+1)^3 & =0^3+\sum_{i=0}^n(i+1)^3 \\ & =\sum_{i=0}^n i^3+3\sum_{i=0}^n i^2+3\sum_{i=0}^n i+\sum_{i=0}^n 1 \\ & =\sum_{i=0}^n i^3+3\sum_{i=0}^n i^2+3\frac{n(n+1)}{2}+(n+1). \end{align*} \)

Rzeczywiście, sumy sześcianów się skracają i możemy wyprowadzić wzór na sumę kwadratów:

\( \begin{align*} 3\sum_{i=0}^n i^2 & =(n+1)^3-\frac{3}{2}n(n+1)-(n+1)= (n+1)((n+1)^2-\frac{3}{2}n -1), \\ \sum_{i=0}^n i^2 & =\frac{(n+1)(n^2+2n+1-\frac{3}{2}n-1)}{3}=\frac{n(n+\frac{1}{2})(n+1)}{3}. \end{align*} \)

Rachunek różnicowy

Żadna z przedstawionych metod obliczania skończonych sum nie jest niezawodnym kompletnym algorytmem. Są to raczej wskazówki bądź zestaw sztuczek, które czasem działają. Zaprezentujemy teraz podstawy rachunku różnicowego - dobrego narzędzia do obliczania skończonych sum.

Rachunek różnicowy powstał przez analogię do rachunku różniczkowego - działu matematyki zajmującego się badaniem funkcji rzeczywistych i zespolonych, przy użyciu ich pochodnych i całek. Podstawą rachunku różniczkowego jest operator pochodnej \( D \), zdefiniowany jako

\( \displaystyle (Df)(x)=\lim_{h \to 0}\frac{f(x+h)-f(x)}{h}. \)

Przyporządkowuje on funkcję \( Df \) funkcji rzeczywistej \( f \). Odpowiednikiem operatora pochodnej w rachunku różnicowym jest operator różnicowy \( \Delta \), zdefiniowany jako

\( (\Delta f)(x)=f(x+1)-f(x). \)

Przyporządkowuje on funkcję \( \Delta f \) funkcji rzeczywistej \( f \). Będziemy go jednak rozważać tylko dla funkcji określonych na zbiorze liczb naturalnych (czyli dla ciągów). Operator \( \Delta \) to "skończony odpowiednik" operatora \( D \). Rozważając funkcję liczb całkowitych \( f \) nie mamy możliwości badać granicy występującej w definicji \( D \). W zamian za to rozważamy stosowny iloraz \( \frac{f(x+1)-f(x)}{1} \) przy najmniejszej możliwej wartości \( h \).

Przykład

Dla funkcji \( f(x)=x^2-4x+10 \) mamy

\( \begin{align*}(\Delta f)(x) & =f(x+1)-f(x)=(x+1)^2-4(x+1)+10-(x^2-4x+10) \\ & =2x-3. \end{align*} \)

\( \begin{array} {|c||c|c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & \ldots \\ \hline f(n) & 10 & 7 & 6 & 7 & 10 & 15 & \ldots \\ \hline (\Delta f)(n) & -3 & -1 & 1 & 3 & 5 & \ldots & \ldots \\ \hline \end{array} \)

Operator \( \Delta^n \) nazywamy n-tą iteracją operatora \( \Delta \), gdzie

\( \begin{align*}\Delta^0f & =f, \\ \Delta^{k+1}f & =\Delta(\Delta^k f). \end{align*} \)

Przykład

Dla funkcji \( \displaystyle f(x)=\sum_{i=0}^x i^2 \) mamy:

  • \( \displaystyle (\Delta f)(x)=f(x+1)-f(x)=\sum_{i=0}^{x+1}i^2-\sum_{i=0}^x i^2=(x+1)^2 \),
  • \( \displaystyle (\Delta^2 f)(x)=(\Delta f)(x+1)-(\Delta f)(x)=(x+2)^2-(x+1)^2=2x+3 \),
  • \( \displaystyle (\Delta^3 f)(x)=(\Delta^2 f)(x+1)-(\Delta^2 f)(x)=2(x+1)+3-(2x+3)=2 \),
  • \( \displaystyle (\Delta^4 f)(x)=(\Delta^3 f)(x+1)-(\Delta^3 f)(x)=2-2=0 \).

\( \begin{array} {|c||c|c|c|c|c|c|c} \hline x & 0 & 1 & 2 & 3 & 4 & 5 & \ldots \\ \hline\hline f(x) & 0 & 1 & 5 & 14 & 30 & 55 & \ldots \\ \hline (\Delta f)(x) & 1 & 4 & 9 & 16 & 25 & \ldots \\ \hline (\Delta^2 f)(x) & 3 & 5 & 7 & 9 & \ldots \\ \hline (\Delta^3 f)(x) & 2 & 2 & 2 & \ldots \\ \hline (\Delta^4 f)(x) & 0 & 0 & \ldots \\ \hline \end{array} \)

Bardzo łatwo jest sprawdzić własności opisane w następnej obserwacji.

Obserwacja 4.1

Operator różnicowy \( \Delta \) jest operatorem liniowym, tzn.:

\( \begin{align*}\Delta (c\cdot f) & =c\cdot\Delta f, \\ \Delta(f+g) & =\Delta f+\Delta g. \end{align*} \)

Różniczkowanie jednomianów, czyli wielomianów typu \( x^k \), jest bardzo proste: \( Dx^k=kx^{k-1} \) dla dowolnego \( k\geq1 \). Własność ta nie przenosi się jednak na operator \( \Delta \).

Przykład

\( \begin{align*}\ Dx^2 & =2x, \\ \Delta x^2 & =(x+1)^2-x^2=2x+1, \\ Dx^3 & =3x^2, \\ \Delta x^3 & =(x+1)^3-x^3=3x^2+3x+1, \end{align*} \)

Na szczęście dla operatora różnicowego \( \Delta \) istnieją odpowiedniki jednomianów, czyli wielomianów o dowolnie dużych potęgach, które łatwo zróżnicować.

\( m \)-ta dolna silnia \( x \) to wielomian zmiennej \( x \), zdefiniowany jako


\( x^{\underline{m}}=x(x-1)\ldots(x-m+1), \) dla \( m\geq 1 \)

\( m \)-ta górna silnia \( x \) to wielomian zmiennej \( x \), zdefiniowany jako

\( x^{\overline{m}}=x(x+1)\ldots(x+m-1), \) dla \( m\geq 1. \)

Dodatkowo przyjmujemy, że \( x^{\underline{0}}=x^{\overline{0}}=1 \).

Zauważmy, że w odróżnieniu od zwykłego potęgowania mamy tu

\( x^{\underline{m+n}} =x^{\underline{m}}(x-m)^{\underline{n}} =(x-n)^{\underline{m}}x^{\underline{n}}. \)

Obserwacja 4.2

Dla \( m\geq 1 \) zachodzi \( \Delta x^{\underline{m}}=mx^{\underline{m-1}}. \)

Dowód

\( \begin{align*}\Delta x^{\underline{m}} & =(x+1)^{\underline{m}}-x^{\underline{m}} \\ & =(x+1)x(x-1)\ldots(x-m+2)-x(x-1)\ldots(x-m+1) \\ & =mx(x-1)\ldots(x-m+2) \\ & =mx^{\underline{m-1}}. \end{align*} \)

Twierdzenie 4.3

Dowolny wielomian \( k \)-tego stopnia \( p(x) \) można jednoznacznie przedstawić w postaci \( \displaystyle \sum_{i=0}^ka_ix^{\underline{k}} \), gdzie \( a_0=p(0) \), \( a_1=(\Delta p)(0) \), \( a_2=(\Delta^2 p)(0)/2 \) i ogólnie

\( \displaystyle p(x)=\sum_{i=0}^k\frac{(\Delta^i p)(0)}{i!}x^{\underline{i}}. \)

Twierdzenie to jest analogią Twierdzenia Taylora dla wielomianów. Dowód pomijamy w tym wykładzie. Korzysta on z faktu, iż ciąg dolnych silni jest bazą przestrzeni liniowej wielomianów.

Wykorzystując Twierdzenie 4.3 możemy szybko różnicować dowolny wielomian \( p(x) \) licząc jedynie kolejne różnice \( (\Delta^i p)(0) \). To z kolei dla wielomianu stopnia \( k \) sprowadza się do policzenia \( k+2 \) wartości początkowych \( p(0),\ldots, p(k+1) \).

Przykład

Aby policzyć \( \Delta (x^3-5x+13) \) najpierw wyrażamy nasz wielomian jako kombinacje dolnych silni. Do tego potrzebujemy współczynników z Twierdzenia 4.3.

\( \begin{array} {|c||c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & \ldots \\ \hline\hline n^3-5n+13 & 13 & 9 & 16 & 25 & 57 & \ldots \\ \hline \Delta(n^3-5n+13) & -4 & 5 & 9 & 22 & \ldots \\ \hline \Delta^2(n^3-5n+13) & 9 & 4 & 11 & \ldots \\ \hline \Delta^3(n^3-5n+13) & -5 & \ldots \\ \hline \end{array} \)

Potem różnicujemy wykorzystując podstawowe własności \( \Delta \).

\( n^3-5n+13 =\frac{-5}{6}n^{\underline{3}} +\frac{9}{2}n^{\underline{2}} +\frac{-4}{1}n^{\underline{1}} +\frac{13}{1}n^{\underline{0}} =-\frac{5}{6}n^{\underline{3}} + \frac{9}{2}n^{\underline{2}} -4n^{\underline{1}}+13, \)

by dostać

\( \begin{align*}\Delta(n^3-5n+13) & =\Delta(-\frac{5}{6}n^{\underline{3}}+ \frac{9}{2}n^{\underline{2}}-4n^{\underline{1}}+13) \\ & =-\frac{5}{6}\cdot3n^{\underline{2}}+\frac{9}{2}\cdot2n^{\underline{1}}-4\cdot1 \\ & =-\frac{5}{2}n^{\underline{2}}+9n^{\underline{1}}-4. \end{align*} \)

W rachunku różniczkowym operator pochodnej \( D \) ma operator odwrotny - jest nim operator całki \( \displaystyle{\int} \). Te dwa operatory powiązane są własnością:

\( g=Df \) wtedy i tylko wtedy, gdy \( \int g(x)dx=f(x)+C. \)

Zauważmy, że wychodząc od funkcji \( g:\mathbb{N}\longrightarrow\mathbb{R} \) i definiując \( f:\mathbb{N}\longrightarrow\mathbb{R} \) poprzez \( \displaystyle f(n) = \sum_{i=0}^{n-1} g(i) \) mamy \( \Delta f = g \). Moglibyśmy więc zdefiniować sumę nieoznaczoną jako \( \displaystyle \sum g(x)\delta x = \sum_{i=0}^{n-1} g(i) \). Ponieważ \( \Delta f = \Delta(f+C) \) dla dowolnej stałej \( C \), to - podobnie jak w przypadku całki nieoznaczonej - suma nieoznaczona zdefiniowana jest tylko z dokładnością do stałej addytywnej:

\( g=\Delta f \) wtedy i tylko wtedy, gdy \( \sum g(x)\delta x=f(x)+C. \)

Tak więc \( \sum g(x)\delta x \) (podobnie jak \( \displaystyle{\int g(x)dx} \)) jest klasą funkcji, których różnica (pochodna) równa jest \( g(x) \). Wyrażenie \( \sum g(x)\delta x \) to suma nieoznaczona funkcji \( g(x) \). Następujące własności sumy nieoznaczonej wynikają wprost z własności \( \Delta \):

Obserwacja 4.4

Dla funkcji \( f, g : \mathbb{N} \longrightarrow \mathbb{R} \) oraz \( c \in \mathbb{R} \) zachodzi:

  • \( \sum c\cdot g(x)\delta x=c\cdot\sum g(x)\delta x \),
  • \( \sum(f(x)+g(x))\delta x=\sum f(x)\delta x+\sum g(x)\delta x \),
  • \( \sum x^{\underline{m}}\delta x=\frac{1}{m+1}x^{\underline{m+1}} \), dla \( m\geq0 \).

Suma oznaczona funkcji \( g(x) \) o parametrach \( a,b\in\mathbb{N} \) to

\( \displaystyle \sum_a^b g(x)\delta x=f(b)-f(a), \)

dla funkcji \( f \) z klasy \( \sum g(x)\delta x \), tzn. takiej, że \( g=\Delta f \), czyli \( g(x)=f(x+1)-f(x) \). Zauważmy, ze definicja ta jest poprawna, tzn. nie zależy od wyboru funkcji \( f \), jako stała, o którą dwie takie funkcje się różnią zniesie się przy przy odejmowaniu. Nie będzie to bardzo zaskakujące po udowodnieniu poniższych własności sumy oznaczonej, które są analogiami własności całki oznaczonej.

Obserwacja 4.5

Dla dowolnych całkowitych \( a,b,c \) zachodzi:

  • \( \displaystyle \sum_a^a g(x)\delta x=0 \),
  • \( \displaystyle \sum_a^{a+1} g(x)\delta x=g(a) \),
  • \( \displaystyle \sum_a^b g(x)\delta x=-\sum_b^ag(x)\delta x \),
  • \( \displaystyle \sum_a^b g(x)\delta x+\sum_b^cg(x)\delta x=\sum_a^cg(x)\delta x \),
  • \( \displaystyle \sum_a^b g(x)\delta x=\sum_{a\leq i < b}g(i) \), o ile tylko \( a\leq b \).

Dowód

Pierwsze cztery własności wynikają natychmiast z definicji sumy oznaczonej. Dowód piątej poprowadzimy indukcyjnie z uwagi na \( b \geq a \). Dla \( b=a \) jest to pierwszy punkt naszej obserwacji. Nadto \( \displaystyle \sum_a^{b+1} g(x)\delta x =\sum_a^{b} g(x)\delta x + \sum_b^{b+1} g(x)\delta = \sum_{a\leq i < b}g(i) + g(b) =\sum_{a\leq i < b+1}g(i) \), gdzie pierwsza równość jest konsekwencją punktu czwartego, a druga punktu drugiego.

Rachunek różnicowy w liczeniu sum skończonych

Wracamy teraz do rozważań o sumach skończonych. Zobaczymy, jak rachunek różnicowy może być pomocny w ich obliczaniu. Widzieliśmy już, że suma \( \displaystyle \sum_{a\leq i < b}g(i) \)to dokładnie \( f(b)-f(a) \), gdzie \( f \) jest sumą nieoznaczoną funkcji \( g \), tzn. \( g(x)=f(x+1)-f(x) \). Wystarczy więc wyliczyć sumę nieoznaczoną. A proces ten jest bardzo podobny jak liczenie całek nieoznaczonych. W kolejnych przykładach zobaczymy, jak to można zrobić w praktyce.

Przykład

Dla policzenia sumy dolnych silni \( \displaystyle \sum_{i=0}^n i^{\underline{2}} \) odnotujmy najpierw, że skoro \( \Delta x^{\underline{3}}=3x^{\underline{2}} \), to \( \displaystyle \sum x^{\underline{2}}\delta x=\frac{x^{\underline{3}}}{3}+C \). Teraz już oczywiście \( \displaystyle \sum_{i=0}^n i^{\underline{2}} =\sum_0^{n+1}x^{\underline{2}}\delta x =\frac{(n+1)^{\underline{3}}}{3}-\frac{0^{\underline{3}}}{3} =\frac{(n+1)^{\underline{3}}}{3} \).
Podobnie przy liczeniu \( \displaystyle \sum_{i=0}^n i^{\underline{k}} \), gdzie \( k\geq 0 \), wykorzystujemy fakt, iż \( \Delta x^{\underline{k+1}}=(k+1)x^{\underline{k}} \) i dostajemy \( \displaystyle \sum_{i=0}^n i^{\underline{k}} =\sum_0^{n+1}x^{\underline{k}}\delta x =\frac{(n+1)^{\underline{k+1}}}{k+1} \).

Przykład

Dla policzenia sumy sześcianów \( \displaystyle \sum_{i=0}^n i^3 \) potrzebujemy najpierw znaleźć sumę nieoznaczoną \( \displaystyle \sum x^3\delta x \). W tym celu wykorzystujemy najpierw Twierdzenie 4.3 do przedstawienia wielomianu \( x^3 \) jako kombinacji liniowej dolnych silni, dla których znamy już sumy nieoznaczone. Liczymy więc współczynniki typu \( \frac{(\Delta^i x^3)(0)}{i!} \):

\( \begin{array} {|c||c|c|c|c|c|c} \hline x & 0 & 1 & 2 & 3 & 4 & \ldots \\ \hline\hline x^3 & 0 & 1 & 8 & 27 & 64 & \ldots \\ \hline \Delta x^3 & 1 & 7 & 19 & 37 & \ldots \\ \hline \Delta^2 x^3 & 6 & 12 & 18 & \ldots \\ \hline \Delta^3 x^3 & 6 & 6 & \ldots \\ \hline \end{array} \)

skąd


\( x^3= \frac{6}{3!}x^{\underline{3}}+\frac{6}{2!}x^{\underline{2}}+\frac{1}{1!}x^{\underline{1}}+0 =x^{\underline{3}}+3x^{\underline{2}}+x^{\underline{1}}, \)

a zatem

\( \sum x^3 =\sum (x^{\underline{3}}+3x^{\underline{2}}+x^{\underline{1}})\delta x =\frac{x^{\underline{4}}}{4}+x^{\underline{3}}+\frac{x^{\underline{2}}}{2}+C, \)

i wreszcie

\( \displaystyle \sum_{i=0}^n i^3 = \sum_0^{n+1}x^3\delta x = \sum_{0}^{n+1} (x^{\underline{3}}+3x^{\underline{2}}+x^{\underline{1}})\delta x = \frac{(n+1)^{\underline{4}}}{4}+(n+1)^{\underline{3}}+\frac{(n+1)^{\underline{2}}}{2}. \)

Uwalniając się teraz od dolnych silni dostajemy, że to ostatnie wyrażenie wynosi

\( \frac{(n+1)n(n-1)(n-2) + 4(n+1)n(n-1) + 2(n+1)n}{4}= \frac{(n+1)^2 n^2}{4}. \)

Rozszerzymy teraz pojęcie dolnej silni na ujemne wykładniki kładąc :

\( \displaystyle x^{\underline{-m}}=\frac{1}{(x+1)(x+2)\ldots(x+m)}, \) dla \( m>0. \)

Prawa dla dolnej silni, które odnotowaliśmy dla wykładników naturalnych są zachowane. W szczególności mamy:

Obserwacja 4.6

Dla dowolnych \( m,n\in \mathbb{Z} \) zachodzi:

  • \( x^{\underline{m+n}}=x^{\underline{m}}(x-m)^{\underline{n}} \),
  • \( \Delta x^{\underline{m}}=m\cdot x^{\underline{m-1}} \),
  • \( \sum x^{\underline{m}}\delta x=\frac{x^{m+1}}{m+1}+C \), dla \( m\neq-1 \).

Dowód tej obserwacji zostawiamy jako ćwiczenie. Zajmiemy się natomiast jedynym przypadkiem, którego nie potrafimy jeszcze sumować, tzn. wyrażeniem \( \sum x^{\underline{-1}}\delta x \). Oczywiście \( x^{\underline{-1}} \) to \( \frac{1}{x+1} \). Widzieliśmy również, że suma postaci \( \displaystyle \sum_{i=0}^n \frac{1}{i+1} \) to \( (n+1) \)-sza liczba harmoniczna \( H_{n+1} \) oraz zachowuję się podobnie do logarytmu:

\( \frac{\lfloor \lg{n}\rfloor+1}{2} \leq H_n \leq \lfloor \lg{n}\rfloor+1. \)

Z rachunku całkowego wiemy natomiast, że \( \int x^{-1}dx=\ln{x}+C \). Następna obserwacja pokazuje, że podobieństwo to nie jest przypadkowe:

Obserwacja 4.7

\( \Delta H_x=x^{\underline{-1}} \) oraz \( \sum x^{\underline{-1}}\delta x=H_x+C \).

Dowód

Mamy

\( \Delta H_x =\Delta(1+\frac{1}{2}+\ldots+\frac{1}{x}) =(1+\ldots+\frac{1}{x}+\frac{1}{x+1})-(1+\ldots+\frac{1}{x}) =\frac{1}{x+1}=x^{\underline{-1}}, \)

skąd natychmiast \( \sum x^{\underline{-1}}\delta x=H_x+C \).

Z kolei dyskretnym odpowiednikiem funkcji wykładniczej \( e^x \), która nie zmienia się przy różniczkowaniu, jest funkcja \( 2^x \):

Obserwacja 4.8

Dla liczby rzeczywistej \( c\neq1 \) mamy \( \Delta c^x=(c-1)c^x \) oraz \( \sum c^x\delta x=\frac{c^x}{c-1}+C \). W szczególności \( \Delta 2^x=2^x \) oraz \( \sum 2^x\delta x= 2^x+C \).

Dowód

Istotnie, \( \Delta c^x=c^{x+1}-c^x=(c-1)c^x \), skąd (jeśli tylko \( c\neq1 \)) dostajemy natychmiast \( \sum c^x\delta x=\frac{c^x}{c-1}+C \).

Przykład

Używając rachunku różnicowego policzymy teraz sumę skończonego ciągu geometrycznego \( \sum_{i=0}^n abq^i \) z ilorazem \( q\neq 1 \). Obserwacje 4.4 i 4.8 dają:

\( \displaystyle \sum aq^x\delta x=a\sum q^x\delta x=a\frac{q^x}{q-1}+C. \)

A zatem:

\( \displaystyle \sum_{i=0}^n aq^i=a\frac{q^n}{q-1}-a\frac{q^0}{q-1}=a\frac{q^n-1}{q-1}. \)

Sumowanie przez części

Poprzez analogię do rachunku różnicowego zastosujmy operator różnicowy do iloczynu funkcji

\( \begin{align*}\Delta(f(x)g(x)) & =f(x+1)g(x+1)-f(x)g(x) \\ & =f(x+1)g(x+1)-f(x)g(x+1)+f(x)g(x+1)-f(x)g(x) \\ & =g(x+1)\Delta f+f(x)\Delta g(x). \end{align*} \)

Dostajemy stąd natychmiast następującą regułę sumowania przez części

Obserwacja 4.9

\( \displaystyle \sum f(x)\cdot\Delta g(x)\delta x = f(x)\cdot g(x)-\sum (\Delta f)(x)\cdot g(x+1)\delta x \).
>Przykład

Dla policzenia sumy \( \displaystyle \sum_{i=0}^n i2^i \), wyznaczamy najpierw (przez części) sumę nieoznaczoną \( \displaystyle \sum (x2^x)\delta x \). Jest to łatwe, jako że \( 2^x=\Delta 2^x \), więc

\( \begin{align*}\sum (x2^x)\delta x & =x2^x-\sum ((\Delta x)2^{x+1})\delta x \\ & =x2^x-\sum (1 \cdot 2^{x+1})\delta x \\ & =x2^x-2^{x+1}+C=(x-2)2^x+C. \end{align*} \)

Teraz mamy już

\( \displaystyle \sum_{i=0}^ni2^i=\sum_0^{n+1}x2^x\delta x=(n+1-2)2^{n+1}-(0-2)2^0=(n-1)2^{n+1}-2. \)

Współczynniki dwumianowe

Zliczanie podzbiorów raz jeszcze


Wiemy już, że dowolny zbiór \( n \)-elementowy ma dokładnie \( 2^n \) podzbiorów. Teraz zajmiemy się pytaniem ile taki zbiór ma podzbiorów o dokładnie \( k \) elementach. Policzymy zatem liczność rodziny \( k \)-elemetowych podzbiorów zbioru \( X \). Rodzinę tę oznaczać będziemy przez \( {\mathcal P}_k(X) \).

Współczynnik dwumianowy \( {n \choose k} \) to liczba \( k \)-elementowych podzbiorów zbioru \( n \)-elementowego, tzn. \(\ {n \choose k} = \vert {\mathcal P}_k (\mathbb{Z}_n)\vert \). Wyrażenie \( {n \choose k} \) czytamy \( n \) po \( k \).

Prawdopodobnie jako pierwszy tej notacji użył Andreas von Ettingshausen w 1826. Jednak liczby te już wcześniej pojawiały się wielokrotnie, choćby w Trójkącie Pascala. Sama nazwa "współczynniki dwumianowe" bierze się stąd, że liczby te pojawiają się w rozwinięciu dwumianu \( (x+y)^n \). Zobaczymy to dokładnie w Twierdzeniu 5.7

Przykład

Aby policzyć \( {4\choose 2} \) wypiszmy wszystkie \( 2 \)-elementowe podzbiory \( 4 \) -elementowego zbioru \( \mathbb{Z}_4=\{0,1,2,3\} \). Sa to \(\{0,1\} \), \( \{0,2\} \), \( \{0,3\} \), \( \{1,2\} \), \(\{1,3\} \), \( \{2,3\} \),

skąd \( {4 \choose 2}=6 \).

Bezpośrednio z definicji liczb \( {n\choose k} \) dostajemy:

Obserwacja 5.1

Dla \( n,k \in \mathbb {R} \) zachodzi:

  • \( {n\choose 0}={n\choose n}=1 \),
  • \( {n\choose k}=0 \), dla \( k>n \),
  • \( {n\choose 1}=n \), dla \( n>0 \),
  • \( {n\choose k}={n\choose n-k} \), dla \( n\geq k\geq0 \).

Dowód

Pierwszy punkt jest natychmiastową konsekwencją faktu, że dowolny zbiór \( n \)-elementowy ma tylko jeden \( 0 \)-elementowy podzbiór -podzbiór pusty i tylko jeden podzbiór \( n \)-elementowy - cały zbiór.

Drugi punkt jest oczywisty, jako że zbiór \( n \)-elementowy nie może mieć podzbiorów o \( k>n \) elementach.

Dla dowodu trzeciego punktu, zauważmy jedynie, że podzbiorów jednoelementowych jest dokładnie tyle ile elementów w zbiorze.

Wreszcie dla dowodu ostatniego punktu załóżmy, że \( |{X}|=n\geq k\geq 0 \). Wtedy funkcja

\( {\mathcal P}_k(X)\ni A \mapsto X\setminus A \in {\mathcal P}_{n-k}(X) \)

jest bijekcją. A zatem istotnie \( {n\choose k}={n\choose n-k} \).

Nasza następna obserwacja stanowi fundament dla rekurencyjnej procedury obliczania współczynników dwumianowych.

Obserwacja 5.2

Dla \( 0 < k\leq n \) mamy:

\( {n\choose k}={n-1\choose k-1}+{n-1\choose k}. \)

Dowód

Podobnie jak przy budowaniu zależności rekurencyjnej przy zliczaniu wszystkich podzbiorów zbioru \( n \)-elementowego załóżmy, że \( |{Z}|=n \). Wtedy, po usunięciu ze zbioru \( Z \) elementu \( a\in Z \) dostajemy \( (n-1) \)-elementowy zbiór \( Z' \). Oczywiście wszystkie \( k \)-elementowe podzbiory zbioru \( Z \) można podzielić na dwa typy:

  • albo mają w sobie element \( a \),
  • albo go nie mają.

W drugim przypadku są to \( k \)-elementowe podzbiory \( (n-1) \)-elementowego zbioru \( Z' \). Jest więc ich dokładnie \( {n-1 \choose k} \).

Każdy zaś podzbiór pierwszego typu, czyli \( A \in {\mathcal P}_k(Z) \) takie, że \( a\in A \) jest jednoznacznie wyznaczony przez swoje pozostałe \( k-1 \) elementów, czyli \( A=A'\cup \{a\} \) dla pewnego \( A' \in {\mathcal P}_{k-1}(Z') \). A zatem

\( {n \choose k} = {|{\mathcal P}_k(Z)|} = {|{\mathcal P}_k(Z')|} + {|{\mathcal P}_{k-1}(Z')|} = {n-1\choose k}+{n-1\choose k-1}. \)

Trójkąt Pascala (nazwany na cześć Blaise'a Pascala, który napisał znakomitą rozprawę o współczynnikach dwumianowych) bazuje na własności \( {n \choose k} = {n-1 \choose k-1} + {n-1 \choose k} \) i ustawia liczby w następujący sposób:

  • wiersze trójkąta numerowane są kolejnymi liczbami naturalnymi

\( n=0,1,2,\ldots \),

  • w każdym wierszy trójkąta występuje dokładnie \( n+1 \) liczb.

Są to kolejno \( {n \choose 0}, {n \choose 1}, {n \choose 2},\ldots, {n \choose n-1},{n \choose n} \)

\( 0\choose 0 \)
\( 1\choose 0 \) \( 1\choose 1 \)
\( 2\choose 0 \) \( 2\choose 1 \) \( 2\choose 2 \)
\( 3\choose 0 \) \( 3\choose 1 \) \( 3\choose 2 \) \( 3\choose 3 \)
\( 4\choose 0 \) \( 4\choose 1 \) \( 4\choose 2 \) \( 4\choose 3 \) \( 4\choose 4 \)
\( 5\choose 0 \) \( 5\choose 1 \) \( 5\choose 2 \) \( 5\choose 3 \) \( 5\choose 4 \) \( 5\choose 5 \)
... ... ... ... ...

Przesunięcie w wierszach, pozwala wyliczyć \( {n \choose k} \) jako sumę \( {n-1 \choose k-1} + {n-1 \choose k} \) dwu liczb stojących bezpośrednio nad \( {n \choose k} \):

Przykład

Napisz program drukujący trójkąt Pascala, ale z liczbami \( {n \choose k} \) modulo \( 2 \), tzn. w miejsce \( {n \choose k} \) wstaw jedynie resztę \( 0 \) lub \( 1 \) z dzielenia liczby \( {n \choose k} \) przez \( 2 \). Zaobserwuj na wydruku powstały fraktal. Wyjaśnij dlaczego tak się dzieje.

W trójkącie Pascala współczynniki o tym samym górnym indeksie, np.

\( \langle {4\choose 0},{4\choose 1},{4\choose 2},{4\choose 3},{4\choose 4} \rangle = \langle {1,4,6,4,1} \rangle \)

tworzą wiersz; natomiast współczynniki o ustalonym dolnym indeksie, np.

\( \langle {5\choose 5},{6\choose 5},{7\choose 5},{8\choose 5},{\ldots} \rangle = \langle {1,6,21,56,}{\ldots} \rangle \)

tworzą przekątną.

Trójkat Pascala ma zera na obrzeżach, a jego wiersze są symetryczne względem pionowej osi przebiegającej przez środek trójkąta. Jest to konsekwencja Obserwacji 5.1. Współczynniki dwumianowe spełniają bardzo wiele ciekawych zależności. Wymienimy tylko te najważniejsze. Zaczniemy od wzoru w postaci zwartej.

Obserwacja 5.3

Dla dowolnych \( 0\leq k\leq n \)

\( {n\choose k}=\frac{n!}{(n-k)!k!}. \)

Dowód

Podamy dwa dowody: kombinatoryczny i indukcyjny.

Dowód kombinatoryczny. Ustalmy pewien \( n \)-elementowy zbiór \( X \), i wybierajmy po kolei \( k \) różnych jego elementów, tzn. utwórzmy injekcję \( \mathbb{Z}_k X \). Z wykładu o zliczaniu zbiorów i funkcji wiemy, ze takich injekcji jest \( \frac{n!}{(n-k)!} \). W wyniku takiego wyboru, dostajemy wszakże pewien uporządkowany ciąg \( k \) elementów zbioru \( X \). Wiele takich ciągów wyznacza ten sam \( k \)-elementowy podzbiór zbioru \( X \). Ciągi takie różnią sie jedynie kolejnością elementów, a zatem jest ich tyle ile permutacji zbioru \( k \)-elemetowego, czyli \( k! \). Zatem jest dokładnie

\( \frac{n(n-1)\cdot\ldots\cdot(n-k+1)}{k!}=\frac{n!}{(n-k)!k!} \)

podzbiorów \( k \)-elementowych zbioru \( n \)-elementowego.

Dowód indukcyjny. Indukcję poprowadzimy względem górnego indeksu \( n \). Dla \( n=0 \) mamy tylko jeden interesujący nas współczynnik \( {0\choose 0}=1 \), i rzeczywiście \( \frac{0!}{(0-0)!0!}=1 \). Załóżmy zatem, że wszystkie współczynniki w \( n \)-tym wierszu spełniają wzór z tezy i rozważmy \( {n+1\choose k} \) dla \( k\in\{0,\ldots,n+1\} \). Jeśli \( k=0 \) to \( {n+1\choose k}=1=\frac{n!}{(n-0)!0!} \). Załóżmy więc, że \( k>0 \). Wtedy:

\( \begin{align*}{n+1\choose k} & ={n\choose k-1}+{n\choose k} \\ & =\frac{n!}{(n-k+1)!(k-1)!}+\frac{n!}{(n-k)!k!} \\ & =\frac{n!}{(n-k)!(k-1)!}\cdot(\frac{1}{n-k+1}+\frac{1}{k}) \\ & =\frac{n!}{(n-k)!(k-1)!}\cdot\frac{k+(n-k+1)}{(n-k+1)k} \\ & =\frac{(n+1)!}{(n-k+1)!k!}. \end{align*} \)

Przykład

\( {15\choose 3}=\frac{15!}{(15-3)!3!}=\frac{13\cdot14\cdot15}{2\cdot3}=13\cdot7\cdot5=455. \)

Przykład

Wyobraźmy sobie, że znajdujemy się w mieście zbudowanym na planie prostopadle przecinających się ulic. Powiedzmy, że znajdujemy się w punkcie \( A \) i chcemy dojść do punktu \( B \), tak jak zaznaczono na rysunku.

Łatwo zauważyć, że jest wiele najkrótszych dróg prowadzących z \( A \) do \( B \). Dla przykładu: możemy pójść \( 3 \) razy na północ i potem cały czas na wschód, ale także możemy iść najpierw \( 6 \) razy na na wschód i dopiero wtedy skręcić na północ.

Ile jest najkrótszych dróg z \( A \) do \( B \)?

Zauważmy, że każda najkrótsza droga biegnie przez dokładnie \( 9 \) skrzyżowań (licząc skrzyżowanie w punkcie \( A \) i nie licząc skrzyżowania w punkcie \( B \)). Na każdym takim skrzyżowaniu musimy podjąć decyzję, czy pójść na wschód czy na północ, przy czym musimy iść dokładnie \( 3 \) razy na północ i dokładnie \( 6 \) razy na wschód.

Zatem liczba najkrótszych dróg z \( A \) do \( B \) to liczba wyborów spośród \( 9 \) skrzyżowań, trzech, na których pójdziemy na północ, bądź \( 6 \) na których pójdziemy na wschód. A zatem liczba ta wynosi \( {9\choose 3}={9\choose 6}=94 \).

W ogólności załóżmy, że mamy kratkę \( m\times n \) i chcemy narysować najkrótszą łamaną po krawędziach kratki łączącą lewy dolny wierzchołek z prawym górnym. Na ile sposobów możemy narysować taką łamaną?
Widzimy, że musimy narysować \( m+n \) odcinków jednostkowych, z których dokładnie \( m \) jest pionowych i dokładnie \( n \) jest poziomych. Zatem jest

\( {m+n\choose m}={m+n\choose n}=\frac{(m+n)!}{m!n!} \)

sposobów połączenia dwóch przeciwległych wierzchołków.

Przykład

Ile rozwiązań ma równanie

\( x_0+x_1+x_2+x_3+x_4=7, \)

gdzie \( x_i \) są liczbami naturalnymi?

Użyjmy kratki rozważanej w poprzednim przykładzie do połączenia przeciwległych jej rogów. W kratce rozmiaru \( 4\times7 \) suma poziomych odcinków daje \( 7 \) i jest dokładnie \( 5 \) takich odcinków, po jednym na każdym poziomie. Jeśli długości tych odcinków oznaczymy odpowiednio przez \( x_0,x_1,x_2,x_3,x_4 \), to każda taka droga (łamana) na kratce ustala pewne rozwiązanie naszego równania, i każde rozwiązanie równania wyznacza dokładnie jedna drogę (łamaną). Dla przykładu - animacja obok.

Zatem istnieje \( {7+4\choose 4}=330 \) rozwiązań naszego równania.

W ogólności, równanie

\( x_0+x_1+\ldots+x_{k-1}=n, \)

ma dokładnie tyle rozwiązań w liczbach naturalnych gdzie \( x_i \), ile jest łamanych w kratce \( k \times n \), czyli \( {n+k-1\choose n}={n+k-1\choose k-1} \).

Przykład

Ile rozwiązań ma równanie

\( x_0+\ldots+x_{k-1}=n, \)

gdzie \( x_i \) są dodatnimi liczbami naturalnymi?

Zauważmy, że każde rozwiązanie tego równania z warunkami \( x_i\geq 1 \), można otrzymać z rozwiązania w liczbach naturalnych równania

\( y_0+\ldots+y_{k-1}=n-k, \)

poprzez podstawienie \( x_i=y_i+1 \). Na podstawie poprzedniego przykładu poszukiwanych rozwiązań jest zatem \( n-1 \choose k-1 \). Rozważmy \( n \) obiektów (np. punktów) ustawionych w ciągu jeden przy drugim.
Separatorem nazywamy pionową kreskę położoną pomiędzy dwoma punktami. Zatem pomiędzy \( n \) punktami mamy \( n-1 \) możliwych pozycji dla separatora. Zauważmy, że każde rozwiązanie naszego równania jednoznacznie odpowiada jednemu z możliwych rozmieszczeń \( k-1 \) separatorów wśród \( n-1 \) pozycji. Liczba punktów do pierwszego separatora to wartość \( x_0 \), liczba punktów pomiędzy pierwszym a drugim separatorem to \( x_1 \), itd., liczba punktów za ostatnim \( k-1 \)-szym separatorem to \( x_{k-1} \). Dla przykładu:

Na odwrót każde rozwiązanie \( x_0,x_1,\ldots,x_{k-1} \) naszego równania wyznacza jednoznacznie rozłożenie \( k-1 \) separatorów: pierwszy kładziemy po \( x_0 \) punktach, drugi po \( x_0+x_1 \), itd. Zatem liczba rozwiązań naszego równania to liczba rozmieszczeń \( k-1 \) separatorów na \( n-1 \) pozycjach, czyli \( {n-1\choose k-1} \).

Przykład

Rozważmy znów kratkę, tym razem kwadratową, wielkości \( n\times n \), i policzmy na ile sposobów można w jej wnętrzu narysować prostokąt tak, aby wszystkie jego boki były równoległe do krawędzi kratki?

Zauważmy, że każdy taki prostokąt jest jednoznacznie wyznaczony przez dwie linie poziome (spośród \( n+1 \)) oraz dwie linie pionowe (znów spośród \( n+1 \)). Rzeczywiście, dowolny prostokąt wyznacza dwie linie poziome i dwie pionowe (te przylegające do jego boków). I na odwrót dowolny wybór linii pozwoli nam nakreślić jednoznacznie prostokąt w kratce.

Poziome linie możemy wybrać na \( {n+1\choose 2} \) sposobów i pionowe linie także na \( {n+1\choose 2} \) sposobów. Zatem prostokąt w kratce \( n\times n \) możemy narysować na dokładnie

\( {n+1\choose 2}^2=(\frac{n(n+1)}{2})^2 \)

sposobów. W przykładowej kratce na rysunku wymiarów \( 5\times 5 \) możemy więc umieścić \( (\frac{5(5+1)}{2})^2=225 \) prostokątów.

Przechodzimy teraz do kolejnych własności współczynników dwumianowych. Rozpoczniemy od sumowania liczb na przekątnej trójkąta Pascala. Przekątna taka jest oczywiście nieskończona - sumujemy więc tylko jej początkowy fragment.

Obserwacja 5.4 [reguła sumowania po górnym indeksie]

Dla \( n,k\in \mathbb{N} \) mamy

\( \displaystyle \sum_{i=0}^{n}{i\choose k}={n+1\choose k+1}. \)

Dowód

Ustalmy \( (n+1) \)-elementowy zbiór \( X=\{x_0,\ldots,x_n\} \) Rozważając jego \( (k+1) \)-elementowe podzbiory zwracamy uwagę na element tego podzbioru, który ma największy indeks. Oczywiście jest \( i\geq k \), gdyż \( X=\{x_0,\ldots,x_{k-1}\} \) nie ma \( (k+1) \)-elementowych podzbiorów. Równie łatwo jest zauważyć, że jest dokładnie jeden podzbiór \( (k+1) \)-elementowy w którym \( x_{k} \) jest elementem o najwyższym indeksie, jest to zbiór \( \{x_0,\ldots,x_{k-1}\} \).

Policzmy teraz podzbiory zbioru \( X \), w których \( x_i \) jest elementem o największym indeksie, przy czym \( i>k \). Oprócz elementu \( x_i \) każdy taki zbiór ma dokładnie \( k \) elementów wybranych z \( i \)-elementowego zbioru \( \{x_0,\ldots,x_{i-1}\} \). Wyboru tych elementów można dokonać na \( {i\choose k} \) sposobów. Zatem podzbiorów zbioru \( X \), w których \( x_i \) jest elementem o największym indeksie jest dokładnie \( {i\choose k} \). Sumując po wszystkich możliwych \( i \), czyli \( i\in\{k,\ldots,n\} \) otrzymujemy:

\( \displaystyle \sum_{i=0}^n{i\choose k}=\sum_{i=k}^n{i\choose k}={n+1\choose k+1}. \)

Podobnie możemy sumować liczby położone na linii "prostopadłej" do przekątnych Trójkąta Pascala, czyli liczby postaci \( {n+i\choose i} \).

Obserwacja 5.5 [reguła sumowania równoległego] Dla \( n,k\in\mathbb{N} \) mamy:

\( \displaystyle \sum_{i=0}^{k}{n+i\choose i}={n+k+1\choose k}. \)

Dowód

Tożsamość tę udowodnimy wykorzystując dwukrotnie {regułę symetrii} oraz {regułę sumowania po górnym indeksie}:

\( \begin{align*}\sum_{i=0}^{k}{n+i\choose i} & =\sum_{i=0}^k{n+i\choose (n+i)-i} =\sum_{i=0}^k{n+i\choose n} =\sum_{i=n}^{n+k}{i\choose n} \\ & ={n+k+1\choose n+1}={n+k+1\choose k}. \end{align*} \)

Obserwacja 5.6 [tożsamość Cauchy'ego, splot Vandermonde'a]

Dla liczb naturalnych \( m,n,k \) mamy:

\( \displaystyle \sum_{i=0}^k{m\choose i}{n\choose k-i}={m+n\choose k}. \)

Dowód

Policzymy liczbę wszystkich wyborów \( k \) osób z grona \( m \) mężczyzn i \( n \) kobiet, czyli liczbę \( {m+n\choose k} \) na jeszcze jeden sposób. Wybierając \( k \) osób wybieramy najpierw \( i \) mężczyzn na \( {m\choose i} \) sposobów, a potem \( k-i \) kobiet na \( {n\choose k-i} \) sposobów. Pozostaje teraz zsumować po wszystkich możliwych wartościach parametru \( i \).

Dwumiany

Poniższe Twierdzenie o Dwumianie wyjaśnia pochodzenie tajemniczej nazwy "współczynniki dwumianowe". Twierdzenie to często przypisuje się Pascalowi. Tymczasem było ono już znane indyjskiemu matematykowi Pingala w III wieku p.n.e..

Obserwacja 5.7 [Twierdzenie o Dwumianie]

Dla \( x,y\in \mathbb{R} \) i \( n\in \mathbb{N} \)

\( \displaystyle (x+y)^n=\sum_{i=0}^n{n\choose i}x^iy^{n-i}. \)

Dowód

Przedstawmy najpierw potęgę \( (x+y)^n \) w rozwiniętej formie iloczynu:

\( \underbrace{(x+y)\cdot\ldots\cdot(x+y)}_{n\ razy}. \)

Korzystając z rozdzielności mnożenia, wyrażenie to staje się sumą składników. Każdy taki składnik to iloczyn pewnej liczby \( x \)-ów i pewnej liczby \( y \)-ów, przy czym łącznie iloczyn taki ma \( n \) czynników. A zatem każdy składnik ma postać \( x^k y^{n-k} \). Powstaje on poprzez wybór \( k \) (spośród \( n \)) czynników w iloczynie \( (x+y)\cdot\ldots\cdot(x+y) \), z których do składnika postaci \( x^k y^{n-k} \) wchodzi \( x \) (a tym samym \( (n-k) \) składników, z których wchodzi \( y \)). Tym samym składników postaci \( x^k y^{n-k} \) jest tyle, ile \( k \)-elementowych podzbiorów zbioru \( n \)-elementowego, czyli \( x^k y^{n-k} \) pojawi się w sumie \( {n\choose k} \)-krotnie.

Twierdzenie o Dwumianie można też udowodnić za pomocą indukcji, co pozostawiamy jako ćwiczenie.

Przykład

\( \begin{align*}(a+b)^2 & =a^2+2ab+b^2, \\ (a+b)^3 & =a^3+3a^2b+3ab^2+b^3, \\ (a+b)^4 & =a^4+4a^3b+6a^2b^2+4ab^3+b^4. \end{align*} \)

Dla dowolnego \( n\geq0 \)

  • \( (1+x)^n=\sum_{i=0}^n{n\choose i}x^i \),
  • \( {n\choose 0}+{n\choose 1}+\ldots+{n\choose n}=2^n \),
  • \( {n\choose 0}-{n\choose 1}+\ldots+(-1)^n{n\choose n}=0^n \). (Uwaga: \( {0\choose0}=1=0^0 \))

Dowód

Wszystkie punkty wynikają trywialnie z Twierdzenia o Dwumianie. (Pierwszy jest oczywisty. Dla dwu pozostałych zauważmy jedynie, że \( (1+1)^n=2^n \), \( (1-1)^n=0 \).) Jednak drugi i trzeci punkt mają ładną interpretację kombinatoryczną.

Istotnie, liczba podzbiorów zbiorów \( n \) elementowego to \( 2^n \). Z drugiej strony licząc te podzbiory, możemy kolejno zliczać podzbiory \( 0,1,2,\ldots \)-elementowe - jest ich \( {n\choose 0},{n\choose 1},{n\choose 2},\ldots \).

Nieco dłuższy jest argument kombinatoryczny dla naprzemiennej sumy \( {n\choose 0}-{n\choose 1}+\ldots+(-1)^n{n\choose n}=0 \). Dla \( n=0 \) jest to oczywiste. Natomiast dla \( n>0 \) jest to równoważne stwierdzeniu, że dla \( n \)-elementowego zbioru \( X \)

  • liczba podzbiorów zbioru \( X \) o parzystej liczbie elementów jest równa liczbie podzbiorów \( X \) o nieparzystej liczbie elementów.

Załóżmy najpierw, że \( n \) jest nieparzyste. Wtedy każdy podzbiór zbioru \( X \) o parzystej liczbie elementów ma dopełnienie o nieparzystej liczbie elementów, a każdy podzbiór zbioru \( X \) o nieparzystej liczbie elementów ma dopełnienie o parzystej liczbie elementów. Ta bijektywna odpowiedniość dowodzi, że w istocie jest ich tyle samo.

Załóżmy zatem, że \( n \) jest parzyste i ustalmy \( x\in X \). Zdefiniujmy funkcję \( f:\mathcal{P}(X)\mathcal{P}(X) \), kładąc

\( \displaystyle f(Y)= \left \{ \begin{array} (X - Y)-\{x\} \mbox{, jeśli } {x}\not\in {Y}\subseteq {X}, \\ (X - Y)\cup\{x\} \mbox{, jeśli } {x}\in {Y}\subseteq {X}. \end{array} \right. \)

Zauważmy, że \( f \) jest permutacją \( \mathcal{P}(X) \). Rzeczywiście, dla różnych podzbiorów \( Y_1,Y_2\subseteq X \) mamy:

  • jeśli \( x\notin Y_1 \) i \( x\notin Y_2 \) to

\( f(Y_1)=(X-Y_1)-\{x\}=X-Y_1\neq X-Y_2=(X-Y_2)-\{x\}=f(Y_2), \)

  • jeśli \( x\in Y_1 \) i \( x\in Y_2 \) to

\( f(Y_1)=(X-Y_1)\cup \{x\}\neq(X-Y_1)\cup \{x\}=f(Y_2), \)

  • jeśli \( x\in Y_1 \) i \( x\notin Y_2 \) to \( x\in f(Y_1) \) i \( x\notin f(Y_2) \), zatem \( f(Y_1)\neq f(Y_2) \).

To dowodzi, że \( f \) jest injekcją. Dla dowodu surjektywności weźmy dowolne \( Z\subseteq X \). Jeśli \( x\in Z \) to \( f((X-Z)\cup\{x\})=Z \), jeśli zaś \( x\notin Z \) to \( f((X-Z)-\{x\})=Z \). Zatem \( f \) jest permutacją zbioru \( \mathcal{P}(X) \). Co więcej łatwo zauważyć, że dla \( Y \) o parzystej (nieparzystej) liczbie elementów \( f(Y) \) ma nieparzystą (parzystą) liczbę elementów. To dowodzi, że dla parzystego \( n \) podzbiorów \( X \) o parzystej liczbie elementów jest tyle samo co podzbiorów \( X \) o nieparzystej liczbie elementów.

Uogólniony współczynnik dwumianowy

Wniosek 5.8 pozwala na ustalenie wartość sumy całego wiersza w Trójkącie Pascala i wartość naprzemiennej sumy całego wiersza Trójkąta Pascala. W praktyce często pojawia się konieczność (naprzemiennego) sumowania tylko pewnego fragmentu takiego wiersza.Do tego pomocne mogłyby być sumy postaci:

\( \begin{array} {lllc} \displaystyle \sum_{i=0}^m{n\choose i} & ={n\choose0}+{n\choose1}+\ldots+{n\choose m} & \qquad(*) \\ \displaystyle \sum_{i=0}^m(-1)^i{n\choose i} & ={n\choose0}-{n\choose1}+\ldots+(-1)^m{n\choose m} & \qquad(**) \end{array} \)

dla \( 0\leq m < n \).

Niestety nie jest znana żadna zwarta postać \( (*) \). Zaskakująca jest natomiast zwarta postać modyfikacji tej sumy polegającej na wymnożeniu każdego składnika przez jego odległość od środka trójkąta. Indukcyjny dowód tak powstałej zależności pozostawiamy jako ćwiczenie.

Obserwacja 5.9

Dla \( m,n\geq0 \)

\( \displaystyle \sum_{i=0}^m {\frac{n}{2}-i}\cdot{n\choose i}=\frac{m+1}{2}{n\choose m+1}. \)

Natomiast naprzemienna częściowa suma \( (**) \) wiersza Trójkąta Pascala ma postać zwartą. Wyprowadzenie takiej postaci odwołuje się do uogólnienia współczynnika dwumianowego na dowolne rzeczywiste indeksy górne, i dowolne całkowite indeksy dolne. Wykorzystuje to poznane już przy okazji rachunku róznicowego pojęcie dolnej silni \( r^{\underline{k}} \).

Uogólniony współczynnik dwumianowy \( {r\choose k} \) dla \( r\in\mathbb{R} \) i \( k\in\mathbb{Z} \) to:

\( {r\choose k} = \begin{cases} \frac{r(r-1)\cdot\ldots\cdot(r-k+1)}{k(k-1)\cdot\ldots\cdot1}=\frac{r^{\underline{k}}}{k!}, & \mbox{dla }{k\geq0}, \\ 0, & \mbox{dla }{k < 0}. \end{cases} \)

Zauważmy, że w istocie dla \( r,k\in\mathbb{N} \) wartości \( {r\choose k} \) pozostają niezmienione. Oczywiście, dla \( r\in\mathbb{N} \), interpretacja \( {r\choose k} \) jako \( k \)-elementowych liczby podzbiorów zbioru \( r \)-elementowego pozostaje w mocy. Nie jest natomiast znana sensowna kombinatoryczna interpretacja uogólnionego współczynnika dwumianowego dla pozostałych rzeczywistych wartosci \( r \). Odnotujmy tylko, że \( {r\choose k} \) jest wielomianem \( k \)-tego stopnia zmiennej \( r \). Sporo własności współczynnika dwumianowego przenosi się na wersję uogólnioną. Poniższe zostawiamy bez dowodu jako ćwiczenie.

Obserwacja 5.10

Dla \( r\in\mathbb{R} \) i \( k\in\mathbb{Z} \) mamy

  • \( {r\choose0}=1 \),
  • \( {r\choose1}=r \),
  • \( {r\choose2}=\frac{r(r-1)}{2} \),
  • \( {-1\choose k}=(-1)^{k+1} \), dla \( k\geq0 \).

Przykład

Z uwagi na to, że w indeksie dolnym mogą występować jedynie liczby całkowite, nie ma sensu reguła symetrii \( {r \choose k}= {r \choose k-1} \). Ale nawet dla całkowitych wartości \( r \) zawodzi:

\( {-1\choose k}\neq{-1\choose -1-k}, \qquad\mbox{dla dowolnych }{k}. \)

  • jeśli \( k < 0 \), to \( {-1\choose k}\neq{-1\choose -1-k}=(-1)^{-1-k+1} \),
  • jeśli \( k\geq0 \), to \( {-1\choose k}=(-1)^{k+1}\neq 0={-1\choose -1-k} \).

Zachowana jest natomiast reguła dodawania.

Obserwacja 5.11

Dla \( r\in\mathbb{R} \) i \( k\in\mathbb{Z} \)

\( {r\choose k}={r-1\choose k}+{r-1\choose k-1}. \)

Dowód

Dla ujemnych wartości \( k \) wszystkie współczynniki równe są \( 0 \) i tożsamość trywialnie zachodzi. Niech teraz \( r\in\mathbb{R} \) i \( k\geq0 \). Oczywiście różnica

\( {r\choose k}-{r-1\choose k}-{r-1\choose k-1} \)

jest wielomianem co najwyżej \( k \). Może więc, o ile nie jest wielomianem stale równym zero, mieć co najwyżej \( k \) miejsc zerowych. Z drugiej strony wiemy już, że ta różnica zeruje się dla wszystkich liczb naturalnych \( r \), więc musi być zawsze równa \( 0 \).

Uogólniona reguła dodawania z Obserwacji 5.11 pozwala rozszerzyć Trójkąt Pascala na współczynniki o ujemnych wartościach górnego indeksu.

Kolejne wartości "ujemnej części" możemy wyliczać w następującej kolejności:

\( {-1\choose 0},{-2\choose0},{-1\choose1},{-3\choose0},{-2\choose 1},{-1\choose2},\ldots. \)

Przyjrzyjmy się wartościom \( {n\choose k} \) dla ustalonego \( k \) i całkowitych wartości \( n \). Zauważalny jest pewien rodzaj symetrii między tymi wartościami. W istocie zachodzi on dla wszystkich rzeczywistych wartości górnego indeksu.

Obserwacja 5.12 [reguła negacji górnego indeksu]

Dla \( r\in\mathbb{R} \), \( k\in\mathbb{Z} \):

\( (-1)^k{r\choose k}={k-r-1\choose k}. \)

Dowód

Policzymy wartość obu stron po uprzednim wymnożeniu przez wspólny mianownik \( k! \):

\( \begin{align*}(-1)^k r^{\underline{k}} & =(-1)^k r(r-1)\cdot\ldots\cdot(r-k+1) \\ & =(-r)(1-r)\cdot\ldots\cdot(k-1-r) \\ & =(k-r-1)^{\underline{k}}. \end{align*} \)

Znaną nam już z Obserwacji 5.5 regułę równoległego sumowania możemy uogólnić za pomocą argumentu podobnego do użytego w dowodzie Obserwacji 5.11.

Obserwacja 5.13

Dla \( r\in\mathbb{R} \), \( k\in\mathbb{Z} \)

\( \displaystyle \sum_{i\leq k}{r+i\choose i}={r+k+1\choose k}. \)

Zauważmy, że rozważana suma jest tylko pozornie nieskończona, gdyż dla wszystkich ujemnych wartości \( i \) odpowiednie składniki zerują się. W dalszych ciągu przyjmiemy będziemy również rozważać podobne sumy "nieskończone", ale przy założeniu, że tylko skończenie wiele składników jest niezerowych.

Wyposażeni w regułę negacji górnego indeksu wracamy teraz my do naprzemiennej, cześciowej sumy wierszy w Trójkącie Pascala, czyli do \( (**) \).

Obserwacja 5.14

Dla \( r\in\mathbb{R} \), \( m\in\mathbb{Z} \)

\( \displaystyle \sum_{i\leq m}(-1)^i{r\choose i}=(-1)^m{r-1\choose m}. \)

Dowód

\( \begin{align*}\sum_{i\leq m}(-1)^i{r\choose i} & =\sum_{i\leq m}{i-r-1\choose i} \qquad\textrm{z reguły negacji górnego indeksu} \\ & ={-m+r\choose m} \qquad\qquad\textrm{z Obserwacji 5.13} \\ & =(-1)^m{r-1\choose m}. \qquad\textrm{z reguły negacji górnego indeksu} \end{align*} \)

Przedstawimy teraz tożsamość, której później użyjemy do zliczenia pewnych, szczególnych permutacji. Zaczniemy od pomocniczej obserwacji.

Obserwacja 5.15 [przestawienie trójmianowe]

Dla \( r\in\mathbb{R} \), \( i,j\in\mathbb{Z} \)

\( {r\choose i}{i\choose j}={r\choose j}{r-j\choose i-j}. \)

Dowód

Zauważmy, że dla \( i < j \) obie strony równości się zerują. Także dla \( i < 0 \) teza jest trywialna. Zatem możemy założyć, że \( 0\leq i < j \). Wtedy:

\( \begin{align*}{r\choose i}{i\choose j} & =\frac{r^{\underline{i}}}{i!}\cdot\frac{i^{\underline{j}}}{j!} \\ & =\frac{r(r-1\cdot\ldots\cdot(r-i+1))}{i!}\cdot\frac{i(i-1)\cdot\ldots\cdot(i-j+1)}{j!} \\ & =\frac{r(r-1)\cdot\ldots\cdot(r-j+1)}{j!}\cdot\frac{(r-j)(r-j-1)\cdot\ldots\cdot(r-i+1)}{(i-j)!} \\ & ={r\choose j}{r-j\choose i-j}. \end{align*} \)

Obserwacja 5.16 [reguła odwracania]

Dla funkcji \( f,g:\mathbb{Z}\mathbb{R} \)

\( \displaystyle f(n)=\sum_{i\in\mathbb{Z}}{n\choose i}(-1)^ig(i) \)

wtedy i tylko wtedy, gdy

\( \displaystyle g(n)=\sum_{i\in\mathbb{Z}}{n\choose i}(-1)^if(i). \)

Dowód

Z uwagi na symetrię założeń wystarczy udowodnić tylko jedne implikację. Zakładamy zatem, że \( \displaystyle f(n)=\sum_{i\in\mathbb{Z}}{n\choose i}(-1)^ig(i) \) by dostać:

\( \begin{align*}\sum_i{n\choose i}(-1)^if(i) & =\sum_{i\in\mathbb{Z}}{n\choose i}(-1)^i\sum_{j\in\mathbb{Z}}{i\choose j}(-1)^jg(j) \\ & =\sum_{j\in\mathbb{Z}} g(j)\sum_{i\in\mathbb{Z}\mathbb{Z}}{n\choose i}{i\choose j}(-1)^{i+j} \\ & =\sum_{j\in\mathbb{Z}} g(j)\sum_{i\in\mathbb{Z}\mathbb{Z}} {n\choose j}{n-j\choose i-j}(-1)^{i+j} \\ & =\sum_{j\in\mathbb{Z}} g(j){n\choose j}\sum_{i\in\mathbb{Z}} {n-j\choose i-j}(-1)^{i+j} \\ & =\sum_{j\in\mathbb{Z}} g(j){n\choose j}\sum_{i\in\mathbb{Z}} {n-j\choose i}(-1)^i, \end{align*} \)

gdzie druga równość wynika ze zmiana kolejności sumowania, trzecia z przestawienia trójmianowego, a ostatnia przez podstawienie \( i:=i+j \).

Z Wniosku 5.8 wiemy, że suma \( \displaystyle \sum_{i\in\mathbb{Z}}{n-j\choose i}(-1)^i \) jest niezerowa (i wynosi \( 1 \)) tylko dla \( j=n \). Zatem kontynuując:

\( \begin{align*} & =\sum_{j\in\mathbb{Z}} g(j){n\choose j}\sum_{i\in\mathbb{Z}}{n-j\choose i}(-1)^i \\ & =g(n){n\choose n} = g(n). \end{align*} \)

Permutacje bez punktów stałych

Nieporządek na zbiorze \( X \) to permutacja \( \alpha:X\to X \) taka, że \( \alpha(x)\neq x \) dla dowolnego \( x\in X \), czyli permutacja "bez punktów stałych".

Podsilnia liczby \( n \), w skrócie \( !n \), to liczba nieporządków zbioru \( n \)-elementowego. Przyjmujemy, że \( !0=1 \), jako ze jedyna permutacja zbioru pustego - funkcja pusta - w oczywisty sposób nie ma punktów stałych.

Przykład

Zbiór \( \mathbb{Z}_4=\{0,1,2,3\} \) ma \( 4!=24 \) permutacje, ale tylko \( 9 \) z nich to nieporządki. Oto ich lista:

\( \begin{array} {cccccccccccccc} 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 \\ \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow \\ 1 & 0 & 3 & 2 & \qquad & 1 & 2 & 3 & 0 & \qquad & 1 & 3 & 0 & 2 \\ \\ 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 \\ \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow \\ 2 & 0 & 3 & 1 & \qquad & 2 & 3 & 0 & 1 & \qquad & 2 & 3 & 1 & 0 \\ \\ 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 \\ \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow \\ 3 & 0 & 1 & 2 & \qquad & 3 & 2 & 0 & 1 & \qquad & 3 & 2 & 1 & 0 \end{array} \)

Obserwacja 5.17

\( \displaystyle !n = n!\sum_{i=0}^n\frac{(-1)^i}{i!} \).

Dowód

Zauważmy najpierw, że liczba permutacji \( \alpha \) zbioru \( n \)-elementowego takich, że \( \alpha(x)\neq x \) dla dokładnie \( i \) elementów \( x\in X \), wynosi \( {n\choose i}!i \). Stąd:

\( \displaystyle n!= \sum_{i=0}^n {n\choose i}!i =\sum_{i=0}^n (-1)^i{n\choose i}(-1)^i(!i). \)

Stosując teraz regułę odwracania, dostajemy:

\( \begin{align*}!n & =\sum_{i=0}^n(-1)^{n-i}{n\choose i}i! \\ & =\sum_{i=0}^n(-1)^{n-i}\frac{n!}{(n-i)!} \\ & =n!\sum_{i=0}^n\frac{(-1)^i}{i!}. \end{align*} \)

Współczynniki multimianowe

Współczynniki dwumianowe pojawiały się przy rozwinięciu dwumianu \( (x+y)^n \). Odpowiadały one wyborom dwuwartościowym. Podobnie rozważając trójmian \( (x+y+z)^n \), czy ogólnie \( (x_1+\ldots +x_r)^n \), pojawią się współczynniki odpowiadające wyborom odpowiedni trój- i \( r \)-wartościowym. Wybieranie podzbioru \( k \)-elementowego ze zbioru \( n \)-elementowego to podział zbioru na dwie części o odpowiednio \( k \) i \( n-k \) elementach. Naturalnym uogólnieniem, będzie podział zbioru \( n \)-elementowego na \( r \) części o odpowiednio \( k_1,k_2,\ldots,k_r \) elementach, przy czym oczywiście \( k_1+\ldots k_r=n \).

Współczynnik multimianowy \( {n\choose k_1,k_2\ldots,k_{r}} \), dla \( n\in\mathbb{Z} \), \( r\geq2 \) oraz całkowitych \( k_1,\ldots,k_r \) takich, że \( k_1+\ldots k_r=n \), to liczba sposobów umieszczenia \( n \) obiektów w \( r \) pudełkach z odpowiednio \( k_1 \) obiektami w pierwszym pudełku, \( k_2 \) w drugim, itd., oraz \( k_r \) w \( r \)-tym. Jeśli którakolwiek z liczb \( k_i \) jest ujemna to współczynnik jest równy \( 0 \). Zauważmy, że z uwagi na symetrię dolnych indeksów, ich kolejność nie jest istotna. Oczywiście \( {n \choose k} \) to w nowej notacji \( {n \choose k,n-k} \).

Następna obserwacja wynika wprost z definicji współczynników multimianowych.

Obserwacja 5.18

Dla \( n\in\mathbb{Z} \), \( k,l,k_1,\ldots,k_r\in\mathbb{Z} \) takich, że \( k_1+\ldots k_r=n= k+l \) zachodzi:

  • \( {n\choose n,0,\ldots,0}=1 \),
  • \( {n\choose 1,1,\ldots,1}=1 \),
  • \( {n\choose 0,k_1,\ldots,k_r}={n\choose k_1,\ldots,k_r} \),
  • \( {n\choose l,l,0,\ldots,0}={n\choose k}={n\choose l} \),
  • \( {n\choose k_1,\ldots,k_r} = {n\choose k_{\sigma(1)},\ldots,k_{\sigma(r)}} \), dla dowolnej permutacji \( \sigma \) zbioru \( \{1,2, \ldots , r\} \).

Następna obserwacja wymaga krótkiego uzasadnienia.

Obserwacja 5.19

Dla \( n,k_1,\ldots,k_r\geq0 \) takich, że \( k_1+\ldots+k_r=n \)

\( {n\choose k_1,\ldots,k_r} ={n\choose k_1}{n-k_1\choose k_2}{n-(k_1+k_2)\choose k_3} \cdot\ldots\cdot{n-(k_1+\ldots+k_{r-1})\choose k_r}. \)

Dowód

Rozmieszczenie \( n \)-obiektów w \( r \) pudełkach po \( k_i \) w każdym, polega na:

  • wyborze \( k_1 \) obiektów spośród wszystkich \( n \) i umieszczeniu ich w pierwszym pudełku - możemy to uczynić na \( {n\choose k_1} \) sposobów,
  • wyborze \( k_2 \) obiektów spośród pozostałych \( n-k_1 \) i umieszczeniu ich w drugim pudełku - możemy to uczynić na \( {n-k_1\choose k_2} \) sposobów,
  • wyborze \( k_3 \) obiektów spośród pozostałych \( n-(k_1+k_2) \)

i umieszczeniu ich w trzecim pudełku - możemy to uczynić na \( {n-(k_1+k_2)\choose k_3} \) sposobów,

  • ...
  • wyborze \( k_r \) obiektów spośród pozostałych \( n-(k_1+\ldots+k_{r-1})=k_r \) i umieszczeniu ich w ostatnim pudełku - możemy to uczynić na \( {n-(k_1+\ldots+k_{r-1})\choose k_r}={k_r\choose k_r}=1 \) sposobów.

Zatem wszystkich możliwych rozmieszczeń zgodnie z wymogami z definicji współczynnika multimianowego jest dokładnie \( {n\choose k_1}{n-k_1\choose k_2}{n-(k_1+k_2)\choose k_3} \cdot\ldots\cdot{n-(k_1+\ldots+k_{r-1})\choose k_r} \).

Wniosek 5.20

Dla \( n,k_1,\ldots,k_r\geq0 \) takich, że \( k_1+\ldots+k_r=n \)

\( {n\choose k_1,\ldots,k_r}=\frac{n!}{k_1!\cdot\ldots\cdot k_r!}. \)

Dowód

\( \begin{align*}{n\choose k_1,\ldots,k_r} & ={n\choose k_1}{n-k_1\choose k_2}{n-(k_1+k_2)\choose k_3}\cdot\ldots\cdot{n-(k_1+\ldots+k_{r-1})\choose k_r} \\ & =\frac{n!}{(n-k_1)!k_1!}\cdot\frac{(n-k_1)!}{(n-(k_1+k_2))!k_2!} \cdot\ldots\cdot\frac{(n-(k_1+\ldots+k_{r-1}))!}{(n-(k_1+\ldots+k_r))!k_r!} \\ & =\frac{n!}{k_1!\cdot\ldots\cdot k_r!\cdot(n-(k_1+\ldots+k_r))!} \\ & =\frac{n!}{k_1!\cdot\ldots\cdot k_r!}. \end{align*} \)

Przykład

Ile liczb możemy ułożyć zapisując w dowolnej kolejności \( 11 \) cyfr: \( 1,1,3,4,5,5,5,6,7,7,9 \)?

Zauważmy, że każda taka liczba powstaje przez wybór dwu pozycji dla cyfry \( 1 \), jednej dla cyfry \( 3 \), jednej dla cyfry \( 4 \), trzech dla cyfry \( 5 \), jednej dla cyfry \( 6 \), dwu dla cyfry \( 7 \) i wreszcie jednej pozycji dla cyfry \( 9 \). Zatem \( 11 \) pozycji to nasze obiekty, które rozmieszczamy w siedmiu pudełkach etykietowanych cyframi: \( 1,3,4,5,6,7,9 \). Zatem z definicji współczynnika multimianowego mamy:

\( {11\choose 2,1,1,3,1,2,1}=\frac{11!}{2!\cdot3!\cdot2!}=1663200. \)

Przykład

Rozważmy raz jeszcze podróż w mieście o ulicach na planie siatki. Tym razem jednak... \( 3 \)-wymiarową wersję. Mamy więc do dyspozycji trójwymiarową, prostopadłościenną kratownicę \( a\times b\times c \). Na ile sposobów można połączyć przeciwległe wierzchołki prostopadłoscianu najkrótszą możliwą łamaną Zauważmy, że każda najkrótsza możliwa łamana składa się z dokładnie \( a+b+c \) odcinków jednostkowych. Przy czym dokładnie \( a \) z nich jest poziomych, \( b \) pionowych i \( c \) idzie w głąb. Zatem najkrótszych łamanych jest tyle co rozmieszczeń \( a+b+c \) odcinków (obiekty) w \( 3 \) pudełkach: "poziomy", "pionowy", "w głąb" tak, by w było ich odpowiednio \( a,b \) i \( c \). Z definicji współczynnika multimianowego mamy zatem:

\( {a+b+c\choose a,b,c}=\frac{(a+b+c)!}{a!b!c!}, \)

łamanych.

Kratka z rysunku o wymiarach \( 3\times4\times2 \) ma zatem: \( {9\choose3,4,2}=\frac{9!}{3!\cdot4!\cdot2!}=420 \) interesujących nas łamanych.

Współczynniki multimianowe także zachowują pewną regułę dodawania.

Obserwacja 5.21

Dla \( n>0 \), całkowitych \( k_1,\ldots,k_r \) takich, że \( k_1+\ldots+k_r=n \)

\( {n\choose k_1}={n-1\choose k_1-1,k_2,\ldots,k_r}+{n-1\choose k_1,k_2-1,\ldots,k_r}+\ldots+{n-1\choose k_1,k_2,\ldots,k_r-1}. \)

Dowód

Ponieważ \( n>0 \), możemy wybrać i ustalić ulubiony obiekt \( x \). Możemy go umieścić w jednym z \( r \) pudełek. Jeśli jednak umieścimy go w pierwszym, to pozostałe \( n-1 \) obiektów musimy rozłożyć do \( r \) pudeł zgodnie z warunkami wyjściowymi, ale do pierwszej szuflady mamy włożyć już \( 1 \) obiekt mniej (\( k_1-1 \) a nie \( k_1 \)). Rozłożenia tego możemy dokonać na \( {n\choose k_1-1,k_2,\ldots,k_r} \). Analogicznie gdy \( x \) umieścimy w drugim pudle, to pozostałe przedmioty rozkładamy w pudłach odpowiednio po \( k_1, k_2-1, k_3,\ldots,k_r \). Po przesumowaniu po numerach pudła, w którym jest \( x \) dostajemy nasz wzór.

Jako ćwiczenie pozostawiamy dowód następującego uogólnienia wzoru dwumiennego:

Obserwacja 5.22

\( \displaystyle (x_1+\ldots +x_r)^n = \sum_{k_1+\ldots+k_r=n} {n \choose k_1,\ldots,k_r} x_1^{k_1} x_2^{k_2}\ldots x_r^{k_r}. \)

Permutacje i podziały

Permutacje


Rozważając permutacje zbiorów \( n \)-elementowych wystarczy ograniczyć się do permutacji zbioru \( \mathbb{Z}_n \). Każdy inny taki zbiór różni się bowiem od \( \mathbb{Z}_n \) jedynie nazwami elementów.

Poznaliśmy już algorytm rozkładu permutacji na rozłączne cykle. Przystąpmy do klasyfikacji permutacji względem struktury takiego rozkładu. Przypomnijmy, że rozkład permutacji na cykle jest jednoznaczny z dokładnością do kolejności, tzn. jeśli \( \sigma_1 \circ \ldots \circ \sigma_k = \pi_1 \circ \ldots \circ \pi_l \) są dwoma rozkładami tej samej permutacji na cykle to \( k=l \) i \( {\{ {\sigma_1,\ldots,\sigma_k} \} } = {\{ {\pi_1,\ldots,\pi_k} \} } \).

Pierwszym ważnym niezmiennikiem dla permutacji \( \pi\in S_n \) jest:

Liczba cykli permutacji \( \pi\in S_n \) zdefiniowana jako liczba cykli w jamimkolwiek rozkładzie \( \pi \) na cykle.

Jednoznaczność rozkładu na cykle pozwala nam zdefiniować również drugi ważny niezmiennik.

Typ permutacji \( \pi\in S_n \) to wektor \( (\alpha_1,\ldots,\alpha_n) \), gdzie \( \alpha_i \) jest liczbą \( i \)-elementowych cykli w rozkładzie \( \pi \). Zazwyczaj typ permutacji zapisujemy jako \( [1^{\alpha_1}2^{\alpha_2}\ldots n^{\alpha_n}] \), przy czym często pomijamy te wartości, dla których \( \alpha_i=0 \).

Przykład

Dla permutacji \( \pi\in S_7 \) zadanej przez

\( \begin{array} {c|c|c|c|c|c|c|c} n & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline \pi(n) & 3 & 6 & 2 & 4 & 0 & 5 & 1 \end{array} \)

mamy:

  • \( \pi=(0,3,4)(1,6)(2)(4)=(0,3,4)(1,6) \),
  • \( \pi \) jest typu \( [1^22^13^1] \).

Z samej definicji typu permutacji natychmiast wynika:

Obserwacja 6.1

Dla \( \pi\in S_n \) typu \( (\alpha_1,\ldots,\alpha_n) \) zachodzi

  • \( \alpha_1+\ldots+\alpha_n=c(\pi) \),
  • \( \alpha_1+2\alpha_2+\ldots+n\alpha_n=n \).

Obserwacja 6.2

Liczba permutacji w \( S_n \) typu \( (\alpha_1,\ldots,\alpha_n) \) to

\( \frac{n!}{1^{\alpha_1}2^{\alpha_2}\ldots n^{\alpha_n}\alpha_1!\ldots\alpha_n!}. \)

Dowód

Potraktujmy permutację typu \( (\alpha_1,\ldots,\alpha_n) \), jako uzupełnienie elementami z \( \mathbb{Z}_n \) następującego wzorca:

\( \underbrace{(\bullet)\ldots(\bullet)}_{\alpha_1\ razy} \underbrace{(\bullet\bullet)\ldots(\bullet\bullet)}_{\alpha_2\ razy}\ldots\ldots \underbrace{(\bullet\ldots\bullet)}_{\alpha_n\ razy\ (\alpha_n\leq 1)}. \)

W miejsce \( k \) kropek możemy wstawić \( k \)-elementów na \( k! \) sposobów. Jednak w ten sposób otrzymamy wielokrotnie te same permutacje. Każdy cykl \( i \)-elementowy możemy zadać na \( i \) sposobów (rozpoczynając od różnych elementów). Dodatkowo, zwróćmy uwagę, że w naszym wzorcu dopuszczamy różną kolejność cykli o tej samej długości. \( \alpha_i \) takich samych cykli \( i \)-elementowych może być wybranych na \( \alpha_i! \) sposobów. Podsumowując, aby otrzymać liczbę permutacji typu \( \alpha_1,\ldots,\alpha_n) \) musimy, dla wszystkich \( i\in{\{ {1,\ldots,n} \} } \), podzielić \( n! \) przez długość każdego cyklu z osobna, tzn. dla każdego cyklu długości \( i \) podzielić przez \( i \), oraz przez silnię liczby \( i \)-elementowych cykli. Zatem szukana liczba to \( \frac{n!}{1^{\alpha_1}2^{\alpha_2}\ldots n^{\alpha_n}\alpha_1!\ldots\alpha_n!} \).

Przykład

Lista typów wszystkich permutacji z \( S_3 \):

\( \begin{array} {|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & \textrm{rozklad na cykle} & \textrm{typ} \\ \hline \pi_0 & 0 & 1 & 2 & (0)(1)(2) & [1^3] \\ \pi_1 & 1 & 0 & 2 & (0,1)(2) & [1^12^1] \\ \pi_2 & 0 & 2 & 1 & (0)(12) & [1^12^1] \\ \pi_3 & 1 & 2 & 0 & (0,1,2) & [3^1] \\ \pi_4 & 2 & 0 & 1 & (0,2,1) & [3^1] \\ \pi_5 & 2 & 1 & 0 & (0,2)(1) & [1^12^1] \\ \hline \end{array} \)

Liczba permutacji z \( S_3 \) o kolejnych typach:

\( \begin{array} {|c|l|} \hline \hbox{typ} & \hbox{liczba permutacji} \\ \hline 1^3 & \frac{3!}{1^3\cdot3!}=1 \\ 1^1 2^1 & \frac{3!}{1^1\cdot2^1\cdot1!\cdot1!}=3 \\ 3^1 & \frac{3!}{3^1\cdot1!}=2 \\ \hline \end{array} \)

Jak zobaczymy za chwilę, typ permutacji jest zachowywany przez pewną bardzo ważną operację algebraiczną.

Permutacja sprzężona do permutacji \( \pi,\rho\in S_n \) to każda permutacja postaci \( \sigma\pi\sigma^{-1} \), gdzie \( \sigma\in S_n \).

Oczywiście, jeśli \( \sigma\pi\sigma^{-1}=\rho \) to \( \pi=\sigma^{-1}\rho\sigma \). Zatem dwuargumentowa relacja sprzężenia jest symetryczna. Łatwo udowodnić (jako ćwiczenie), że relacja ta jest również zwrotna i przechodnia oraz, że jedyną permutacją sprzeżoną do permutacji identycznościowej \( id \) jest ona sama.

Obserwacja 6.3

Permutacje \( \pi,\rho\in S_n \) mają ten sam typ wtedy i tylko wtedy, gdy są sprzężone.

Załóżmy najpierw, że \( \pi \) i \( \rho \) są sprzężone, czyli że \( \sigma\pi\sigma^{-1}=\rho \) dla pewnego \( \sigma \). Rozważmy jakiś cykl \( (x_0,\ldots,x_{k-1}) \) permutacji \( \pi \). Wtedy \( (\sigma(x_0),\ldots,\sigma(x_{k-1})) \) jest cyklem permutacji \( \rho \). Istotnie, dla \( i = 0,\ldots,k-1 \) mamy:

\( \rho(\sigma(x_i))=\sigma\pi\sigma^{-1}\sigma(x_i)=\sigma\pi(x_i)=\sigma(x_{i+1}), \)

i podobnie:

\( \rho(\sigma(x_{k-1})=\sigma\pi\sigma^{-1}\sigma(x_{k-1})=\sigma\pi(x_{k-1})=\sigma(x_0). \)

Każdy zatem cykl permutacji \( \pi \) wyznacza jednoznacznie cykl permutacji \( \rho \) o tej samej liczności. Tym samym \( \pi \) i \( \rho \) są tego samego typu.

Dla dowodu w drugą stronę załóżmy, że \( \pi \) i \( \rho \) mają ten sam typ. Wtedy możemy określić bijekcję przyporządkowującą każdemu cyklowi permutacji \( \pi \) pewien cykl \( \rho \) o tej samej długości. Po rozkładzie obu permutacji \( \pi,\rho \) na rozłączne cykle i nasza bijekcja między cyklami przyporzadkowuje cyklowi \( (x_0,\ldots,x_{k-1}) \) cykl \( (y_0,\ldots,y_{k-1}) \), definiujemy \( \sigma \in S_n \) kładąc \( \sigma(x_i)=y_i \). Łatwo sprawdzić, że wtedy \( \sigma\pi\sigma^{-1}=\rho \).

Transpozycja to permutacja w \( S_n \) (dla \( n\leq2 \)) typu \( [1^{n-2}2^1] \). Innymi słowy, transpozycja dokonuje tylko jednego przestawienia dwóch elementów ze zbioru \( n \)-elementowego.

Przykład

Dla permutacji \( \pi\in S_7 \) zadanej przez

\( \begin{array} {|c||c|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline \pi(n) & 0 & 1 & 5 & 3 & 4 & 2 & 6 \\ \hline \end{array} \)

mamy:

  • \( \pi=(0)(1)(25)(3)(4)(6)=(25), \)
  • \( \pi \) ma typ \( [1^52^1] \),
  • \( \pi \) jest transpozycją.

Waga transpozycji wynika z faktu, że dowolna permutacja jest złożeniem transpozycji. Ponieważ, dowolna permutacja jest rozkładalna na cykle wystarczy pokazać, że każdy cykl jest złożeniem transpozycji.

Obserwacja 6.4

Dowolny cykl z \( S_n \) jest złożeniem \( n-1 \) transpozycji.

Dowód

Cykl \( \pi=(x_0,\ldots,x_{n-1}) \) można przedstawić tabelką:

\( \begin{array} {|c||c|c|c|c|c|c|} \hline n & x_0 & x_1 & x_2 & \ldots & x_{n-2} & x_{n-1} \\ \hline \pi(n) & x_1 & x_2 & x_3 & \ldots & x_{n-1} & x_0 \\ \hline \end{array} \)

Zauważmy, że \( \pi \) jest następującym złożeniem transpozycji

\( (x_0,x_{n-1})(x_0,x_{n-2})\ldots(x_0,x_2)(x_0,x_1). \)

Rzeczywiście \( x_0 \) przejdzie:

  • w pierwszej transpozycji \( (x_0,x_1) \) w \( x_1 \),
  • a następne transpozycje już go nie przesuną.

Podobnie \( x_1 \) przejdzie

  • pierwszą transpozycją \( (x_0,x_1) \) w \( x_0 \),
  • drugą \( (x_0,x_2) \) w \( x_2 \),
  • a następne transpozycje już go nie przesuną.

Ogólnie, \( x_i \) (dla \( i\in{\{ {1,\ldots,n-2} \} } \))

  • pozostanie na swoim miejscu przez pierwsze \( i-1 \) transpozycji

\( (x_0,x_1),(x_0,x_2),\ldots,(x_0,x_{i-1}) \),

  • przejdzie \( i \)-tą transpozycją w \( x_0 \),
  • przejdzie \( (i+1) \)-szą transpozycją w \( x_{i+1} \),
  • po czym zostanie już nienaruszone.

Natomiast \( x_{n-1} \) zostanie przesunięte dopiero ostatnią transpozycją i przyjmie wartość \( x_0 \).

Wniosek 6.5

Dowolna permutacja jest złożeniem transpozycji. W szczególności każda permutacja typu \( [1^{\alpha_1}2^{\alpha_2}\ldots n^{\alpha_n}] \) ma rozkład na co najwyżej \( \alpha_2+2\alpha_3+\ldots(n-1)\alpha_n \) transpozycji.

Przykład

Dla permutacji \( \pi\in S_7 \) zadanej przez

\( \begin{array} {|c||c|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline \pi(n) & 2 & 3 & 5 & 4 & 6 & 0 & 1 \\ \hline \end{array} \)

mamy

  • \( \pi=(0,2,5)(1,3,4,6) \),
  • \( (1,3,4,6)=(1,6)(1,4)(1,3) \),
  • \( (0,2,5)=(0,5)(0,2) \),
  • \( \pi=(0,5)(0,2)(1,6)(1,4)(1,3)=(1,6)(1,4)(1,3)(0,5)(0,2) \).

Zauważmy, że składanie transpozycji na rozłącznych zbiorach dwuelementowych jest przemienne. Na ogół jednak, ponieważ transpozycje nie działają na zbiorach rozłącznych, to nie możemy ich dowolnie przestawiać. W naszym przykładzie transpozycje generujące dwa różne cykle są parami rozłączne, więc ich kolejność jest bez znaczenia. Między innymi dlatego istnieje wiele rozkładów na transpozycje. Ale nie tylko dlatego - mamy bowiem również \( \pi=(1,6)(2,5)(0,2)(3,6)(0,5)(4,6)(2,5) \).

Nie mamy zatem jednoznaczności rozkładu na transpozycje, tak jak to miało miejsce przy rozkładzie na cykle. Nawet liczba transpozycji nie musi być ta sama w różnych rozkładach na transpozycje. Zobaczymy jednak, że nie zmienia się parzystość liczby transpozycji w rozkładzie.

Obserwacja 6.6

Jeśli \( \pi,\tau \in S_n \) i \( \tau \) jest transpozycją, to

\( c(\tau\pi)=c(\pi)\pm 1=c(\pi\tau). \)

Dowód

Udowodnimy tylko pierwszą równość. Załóżmy, że \( \tau=(a,b) \) tzn., \( \tau(a)=b \), \( \tau(b)=a \) i \( \tau(x)=x \) dla wszystkich pozostałych elementów \( x \in\mathbb{Z}_n \). Rozumowanie dzielimy na dwa przypadki:

  • \( a \) i \( b \) są w tym samym cyklu \( (a,x,\ldots,y,b,w,\ldots,z) \) permutacji \( \pi \).

Wtedy \( \tau\pi=(a,x,\ldots,y)(b,w,\ldots,z)\ldots \), gdzie ostatni wielokropek oznacza pozostałe cykle permutacji \( \pi \). Zatem w tym przypadku mamy \( c(\tau\pi)=c(\pi)+1 \).

  • \( a \) i \( b \) są w różnych cyklach permutacji \( \pi=(a,x\ldots,y)(b,\ldots,z)\ldots \).

Wtedy \( \tau\pi=(a,x,\ldots,y,b,\ldots,z)\ldots \). Mamy więc \( c(\tau\pi)=c(\pi)-1 \).

Obserwacja 6.7

Jeśli permutacja jest przedstawialna jako złożenia \( r \) i \( r' \) transpozycji, to liczby \( r \) i \( r' \) albo są obie parzyste albo obie nieparzyste.

Dowód

Niech \( \tau_{r-1}\ldots\tau_0=\tau_{r'-1}'\ldots\tau_0' \) będą dwoma rozkładami tej samej permutacji \( \pi \in S_n \) na transpozycje. Na mocy Obserwacji 6.6 mamy:

\( c(\tau_{r-1}\ldots\tau_0) = c(\tau_{r-2}\ldots\tau_0) \pm 1 = c(\tau_{r-3}\ldots\tau_0) \pm 1 \pm 1 = \ldots = c(\tau_0) \underbrace{\pm 1 \pm 1 \ldots \pm 1}_{r-1 \ razy} \)

Niech \( t \) opisuje iloć dodawań jedynki w powyższej formule. Wtedy \( r-1-t \) to liczba odejmowań jedynki. Transpozycja \( \tau_0 \) ma \( 1 \) cykl \( 2 \)-elementowy i \( n-2 \) cykli \( 1 \)-elementowych, czyli \( c(\tau_0)=1+(n-2)=n-1 \). Zatem

\( c(\pi)=c(\tau_{r-1}\ldots\tau_0)=n-1+t-(r-1-t)=n-r+2t \)

dla pewnego \( t \). Analogicznie

\( c(\pi)=c(\tau'_{r'-1}\ldots\tau'_0)=n-1+t'-(r'-1-t')=n-r'+2t' \)

dla pewnego \( t' \). Porównując obydwa wyniki otrzymujemy

\( r-r'=2a-2a', \)

czyli różnica \( r-r' \) jest zawsze parzysta.

Obserwacja 6.7 pozwala zdefiniować parzystość permutacji.

Permutacja parzysta to permutacja będąca złożeniem parzystej liczby transpozycji.

Permutacja nieparzysta to permutacja będąca złożeniem nieparzystej liczby transpozycji.

Znak permutacji \( \pi \) to \( \mbox{sgn}(\pi)=(-1)^r \), gdzie \( r \) jest liczbą transpozycji, na które można rozłożyć \( \pi \).

Obserwacja 6.8

Dla dowolnych \( \pi,\sigma\in S_n \)

  • \( \mbox{sgn}(id_{\mathbb{Z}_n})=1 \),
  • \( \mbox{sgn}(\sigma\pi)=\mbox{sgn}(\pi)\cdot\mbox{sgn}(\sigma) \),
  • \( \mbox{sgn}(\pi)=\mbox{sgn}(\pi^{-1}) \),

Dowód

Identyczność jest złożeniem zera transpozycji. Drugi punkt wynika natychmiast z Obserwacji 6.6. Dla dowodu trzeciego odnotujmy tylko, że \( \mbox{sgn}(\pi)\cdot\mbox{sgn}(\pi^{-1}) =\mbox{sgn}(\pi\pi^{-1})=\mbox{sgn}(id_{\mathbb{Z}_n})=1 \).

Przykład

Dla relaksu rozważmy łamigłówkę logiczną rozgrywaną na kwadracie \( 3 \times 3 \). Wszystkie pola, poza prawym dolnym, wypełnione są kwadratowymi klockami z różnymi literami B,O,R,L,Y,M,E,P. Prawe dolne pole jest puste - oznaczamy go przez "". Celem gry jest ułożenie napisu "PROBLEMY_". Dopuszczalnym ruchem jest przesunięcie klocka sąsiadującego z pustym polem na to właśnie pole. Czy z pozycji "BORLYMEP_" można ułożyć napis "PROBLEMY_"?

Zauważmy, że pozycja startowa i końcowa mają puste pole "-" w tym samym miejscu. To oznacza, że wykonując roszadę bloków musimy wykonać tyle samo przesunięć do góry co w dół i tyle samo przesunięć w prawo co w lewo. To z kolei oznacza, że potencjalna ilość ruchów wiodących do rozwiązania musi być parzysta. Tłumacząc nasz problem na język permutacji odnotujmy, że:

  • mamy dokonać permutacji \( \pi\in S_9 \):

\( \begin{array} {ccccccccc} B & O & R & L & Y & M & E & P & \_ \\ \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \downarrow \\ P & R & O & B & L & E & M & Y & \_ \end{array} \)

  • każdy ruch zgodny z regułami gry to jakaś transpozycja wybranych klocków,

przy czym nie wszystkie transpozycje są dopuszczalne.

Zauważmy, że

  • rozwiązanie musi być wykonane przy pomocy parzystej liczby ruchów, zatem każda permutacja dokonująca żądanej rearanżacji klocków jest parzysta
  • \( \pi=(B,P,Y,L)(O,R)(M,E)(\_) \),
  • Wniosek 6.5 daje wtedy jednak, że \( \pi \) jest złożeniem \( 3+1+1=5 \) transpozycji, czyli \( \pi \) jest permutacją nieparzystą.

Ponieważ nie można złożyć nieparzystej permutacji z parzystej liczby transpozycji, nasza łamigłówka nie jest możliwa do rozwiązania.

Obserwacja 6.9

Dla \( n\geq2 \) w \( S_n \) jest dokładnie tyle samo permutacji parzystych co nieparzystych.

Dowód

Niech \( n\geq2 \) i \( \pi_0,\ldots,\pi_{k-1} \) będzie listą wszystkich parzystych permutacji w \( S_n \). Ponadto, rozważmy transpozycję \( \tau=(01)(2)\ldots(n) \). Wtedy oczywiście permutacje \( \tau\pi_0,\tau\pi_1,\ldots,\tau\pi_{k-1} \) są parami różne, gdyż jeśli \( \tau\pi_i=\tau\pi_j \) to \( \pi_i=\tau^{-1}\tau\pi=\tau^{-1}\tau\pi_j=\pi_j \). Ponadto dowolna \( \tau\pi \) jest nieparzysta, bo \( \mbox{sgn}(\tau\pi)=\mbox{sgn}(\tau)\mbox{sgn}(\pi)=(-1)\cdot1=-1. \) Pozostaje pokazać, że dowolna nieparzysta permutacja \( \rho \) jest na liście \( \tau\pi_0,\tau\pi_1,\ldots,\tau\pi_{k-1} \). Ponieważ \( \mbox{sgn}(\tau^{-1}\rho)=\mbox{sgn}(\tau^{-1})\mbox{sgn}(\rho)=(-1)\cdot(-1)=1, \) to \( \tau^{-1}\rho \) jest permutacją parzystą, a zatem jest postaci \( \pi_i \) dla pewnego \( i \). To zaś oznacza, że

\( \rho=\tau\tau^{-1}\rho=\tau\pi_i, \)

czyli \( \rho \) jest na liście \( \tau\pi_0,\tau\pi_1,\ldots,\tau\pi_{k-1} \). Uzyskana bijekcja \( \pi_i \mapsto \tau\pi_i \) dowodzi naszej obserwacji.

Podziały

Liczby Stirlinga


Liczba Stirlinga dla cykli \(\left[\begin{array} {c}n \\ k\end{array}\right ] \) (często nazywana liczbą Stirlinga pierwszego rodzaju) to liczba permutacji zbioru \( n \)-elementowego złożonych z dokładnie \( k \) cykli, czyli takich permutacji \( \pi \in S_n \), że \( c(\pi)=k \). Przyjmujemy, że \( \left[\begin{array} {c}0 \\ 0\end{array} \right]=1 \), a więc że jest jedna permutacja zbioru pustego bez cykli (funkcja pusta). Z powodów technicznych, w przekształceniach rachunkowych wygodnie jest mieć zdefiniowaną wartość \( \left[\begin{array} {c}n \\ k\end{array} \right] \) dla wszystkich \( k\in\mathbb{Z} \). Przyjmujemy, że \( \left[\begin{array} {c}n \\ k\end{array} \right]=0 \) dla \( k < 0 \).

Przykład

Lista permutacji \( \mathbb{Z}_4 \) złożonych z \( 2 \) cykli:

\( \begin{array} {ccc} (0,1,2)(3) & (0,2,3)(1) & (0,1)(2,3) \\ (0,2,1)(3) & (0,3,2)(1) & (0,2)(1,3) \\ (0,1,3)(2) & (1,2,3)(0) & (0,3)(1,2) \\ (0,3,1)(2) & (1,3,2)(0) \end{array} \)

  • Mamy \( 11 \) permutacji \( \mathbb{Z}_4 \) złożonych z dwóch cykli, zatem \( \left[\begin{array} {c}4 \\ 2\end{array} \right]=11 \).

Obserwacja 6.10

Dla \( n\in\mathbb{N} \)

  • \( \left[\begin{array} {c}n \\ 0\end{array} \right]=0 \), dla \( n>0 \)
  • \( \left[\begin{array} {c}n \\ 1\end{array} \right]=(n-1)! \),
  • \( \left[\begin{array} {c}n \\ n-1\end{array} \right]={n\choose2} \),
  • \( \left[\begin{array} {c}n \\ n\end{array} \right]=1 \),
  • \( \left[\begin{array} {c}n \\ k\end{array} \right]=0 \), dla \( k>n \)

Dowód

Pierwszy punkt jest natychmiastowa konsekwencją faktu, że nie można podzielić niepustego zbioru na \( 0 \) części (cykli).

Liczba \( \left[\begin{array} {c}n \\ 1\end{array} \right] \) opisuje permutacje o jednym cyklu. Każda taka permutacja jest zadana wzorcem \( (\underbrace{\bullet,\ldots,\bullet}_{n\ pozycji}) \). Wzorzec taki może być wypełniony \( n \)-elementami na \( n! \) sposobów. Ale ten sam cykl ma wiele opisów różniących się jedynie przesunięciem. Zatem każdy \( n \)-elementowy cykl może być zapisany według takiego wzorca na \( n \) sposobów, czyli liczba cykli na zbiorze \( n \)-elementowym to \( \frac{n!}{n}=(n-1)! \), co dowodzi punktu drugiego.

Liczba \( \left[\begin{array} {c}n \\ n-1\end{array} \right] \) opisuje permutacje o \( n-1 \) cyklach. Permutacja taka musi wiec być typu \( [1^{n-2}2^1] \), czyli jest transpozycją. Każda transpozycja jest jednoznacznie wyznaczona przez dwuelementowy zbiór elementów, które ze sobą zamienia. Zatem transpozycji jest dokładnie tyle co podzbiorów \( 2 \)-elementowych, czyli \( {n\choose2} \), co dowodzi punktu trzeciego.

Dla dowodu punktu czwartego zauważmy jedynie, że jedyną permutacją o \( n \) cyklach na zbiorze \( n \)-elementowym jest identyczność.

Równie łatwo jest stwierdzić, że zbiór \( n \)-elementowy nie może być podzielony na więcej niż \( n \) niepustych części (mających stanowić cykle).

Liczby Stirlinga dla cykli, podobnie jak współczynniki dwumianowe, można generować używając zależności rekurencyjnej. Na jej podstawie można zbudować Trójkąt Stirlinga dla cykli.

Obserwacja 6.11

Dla \( 0 < k\leq n \)

\( \left[\begin{array} {c}n \\ k\end{array} \right]=(n-1)\left[\begin{array} {c}n-1 \\ k\end{array} \right]+\left[\begin{array} {c}n-1 \\ k-1\end{array} \right]. \)

Dowód

Niech \( x \) będzie wyróżnionym i ustalonym elementem \( n \)-elementowego zbioru \( X \). Permutacje zbioru \( X \) o \( k \) cyklach można podzielić na dwa typy, w których:

  • \( x \) stanowi jednoelementowy cykl,
  • \( x \) jest w cyklu co najmniej \( 2 \)-elementowym.

W pierwszym przypadku pozostałe \( n-1 \) elementów zbioru \( X \) muszą uformować \( k-1 \) cykli, co jest możliwe na \( \left[\begin{array} {c}n-1 \\ k-1\end{array} \right] \) sposobów. W drugim przypadku, po usunięciu elementu \( x \) permutacje badanego typu wciąż będą mieć \( k \) cykli. Jest ich zatem tyle, co permutacji \( (n-1) \)-elementowego zbioru o \( k \) cyklach, czyli \(\left [\begin{array} {c}n-1 \\ k\end{array} \right] \). Element \( x \) może rozbudować każdą permutację zbioru \( X-{\{ {x} \} }n-1 \) sposobów (wchodząc do cyklu jako następnik jednego z \( n-1 \) elementów). Zatem permutacji drugiego typu jest dokładnie \( (n-1) \left[\begin{array} {c}n-1 \\ k\end{array} \right] \).

W Trójkącie Stirlinga dla cykli, \( n \)-ty wiersz zawiera liczby permutacji zbioru \( n \)-elementowego o kolejno \( 0,1,\ldots,n \) cyklach. Zatem suma wszystkich tych wartości to liczba wszystkich permutacji zbioru \( n \)-elementowego, czyli \( n! \). Dostajemy stąd natychmiast:

Obserwacja 6.12

Dla \( n\in\mathbb{N} \)

\( \displaystyle\sum_{i=0}^n\left[\begin{array} {c}n \\ i\end{array} \right]=n! \)

Ciekawy jest nastepujacy związek liczb Stirlinga dla cykli z liczbami harmonicznymi \( H_n \).

Obserwacja 6.13

Dla \( n\in\mathbb{N} \)

\( \displaystyle \sum_{i=0}^ni\left[\begin{array} {c}n \\ i\end{array} \right]=n!H_n. \)

Dowód

Dla \( n=0 \) tożsamość jest oczywista, a dla \( n>0 \) przybiera postać \( \displaystyle \sum_{i=1}^ni\left[\begin{array} {c}n \\ i\end{array} \right]=n!H_n \) Pokażemy że obydwie liczby z naszej obserwacji to sumaryczna liczba cykli we wszystkich permutacjach zbioru \( n \)-elementowego, tzn. \( \displaystyle \sum_{\sigma\in S_n} c(\sigma) \).

  • Permutacji o \( i \) cyklach jest dokładnie \( \left[\begin{array} {c}n \\ i\end{array} \right] \). W sumie permutacje o \( i \) cyklach mają więc \( i\cdot[\begin{array} {c}n \\ i\end{array} ] \) cykli, czyli \( \displaystyle \displaystyle \sum_{\sigma\in S_n} c(\sigma)= \sum_{i=1}^ni\left[\begin{array} {c}n \\ i\end{array} \right] \).
  • Zliczymy najpierw \( i \)-elementowe cykle zbudowane z elementów zbioru \( n \)-elementowego. Każdy taki cykl jest wyznaczony przez wypełnienie wzorca \( (\underbrace{\bullet,\ldots,\bullet}_{i\ pozycji}) \), ale z dokładnością do przesunięcia. Wypełnień jest oczywiście tyle, ile injekcji postaci \( \mathbb{Z}_i\longrightarrow\mathbb{Z}_n \),

czyli \( n\cdot(n-1\cdot\ldots\cdot(n-i+1))=n^{\underline{i}} \). Zatem zliczanych cykli \( i \)-elementowych jest dokładnie \( \frac{n^{\underline{i}}}{i} \) .

Każdy cykl \( i \)-elementowy występuje w dokładnie \( (n-i)! \) permutacjach zbioru \( n \)-elementowego, gdyż tyle jest permutacji pozostałych \( n-i \) elementów. Zatem sumaryczna liczba cykli we wszystkich permutacjach zbioru \( n \)-elementowego wynosi:

\( \displaystyle \sum_{\sigma\in S_n} c(\sigma) =\sum_{i=1}^n\frac{n^{\underline{i}}}{i}(n-i)! =\sum_{i=1}^n\frac{n!}{i}=n!H_n. \)

W liczbach Stirlinga \( \left[\begin{array} {c}n \\ k\end{array} \right] \) dla cykli wypełnialiśmy wzorce postaci:

\( \underbrace{(\bullet,\ldots,\bullet)(\bullet,\ldots,\bullet) \ldots (\bullet,\ldots,\bullet)}_{k \ cykli, \ w \ sumie \ o \ n \ miejscach} \)

w sposób injektywny i z dokładnością do:

  • kolejności cykli,
  • przesunięć cyklicznych w każdym z \( k \) cykli.

Jeśli zupełnie zaniedbamy kolejność elementów w cyklach, dostaniemy wzorzec:

\( \underbrace{{\{ {\bullet,\ldots,\bullet} \} }{\{ {\bullet,\ldots,\bullet} \} } \ldots {\{ {\bullet,\ldots,\bullet} \} }}_{k \ zbiorów, \ w \ sumie \ o \ n \ miejscach}, \)

czyli podział zbioru \( n \)-elementowego na \( k \) parami rozłącznych podzbiorów. W podziale, podzbiory takie nazywamy blokami. Przypomnijmy, że podział zbioru \( X \) na \( k \) bloków wyznacza relację równoważności na zbiorze \( X \) o \( k \) klasach równoważności.

Liczba Stirlinga dla podziałów \( \left\{\begin{array} {c}n \\ k\end{array} \right\} \) (często nazywana liczbą Stirlinga drugiego rodzaju) to liczba podziałów zbioru \( n \)-elementowego na dokładnie \( k \) bloki. Znów przyjmujemy, że \( \left\{\begin{array} {c}0 \\ 0\end{array} \right\}=1 \) oraz \( \left\{\begin{array} {c}n \\ k\end{array} \right\}=0 \) dla \( k < 0 \).

Przykład

Lista podziałów \( \mathbb{Z}_4 \) na dwa bloki:

\( \begin{array} {cc} \{0,1,2\}\{3\} & \{0,1 \}\{2,3\} \\ \{0,1,3\}\{2 \} & \{0,2 \} \{1,3 \} \\ \{0,2,3 \}\{1\} & \{0,3\}\{1,2\} \\ \{1,2,3\} \{ 0 \} \end{array} \)

  • Mamy \( 7 \) podziałów zbioru \( \mathbb{Z}_4 \) na dwa bloki,

zatem \( \left\{\begin{array} {c}4 \\ 2\end{array} \right\}=7 \).

Obserwacja 6.14

Dla \( n,k\in\mathbb{N} \)

  • \( \left\{\begin{array} {c}n \\ k\end{array} \right\} \leq \left[\begin{array} {c}n \\ k\end{array} \right] \),
  • \( \left\{\begin{array} {c}n \\ 0\end{array} \right\}=0 \), dla \( n>0 \),
  • \( \left\{\begin{array} {c}n \\ 1\end{array} \right\}=1 \), dla \( n>0 \),
  • \( \left\{\begin{array} {c}n \\ 2\end{array} \right\}=2^{n-1}-1 \), dla \( n>0 \),
  • \( \left\{\begin{array} {c}n \\ n-1\end{array} \right\}={n\choose2} \),
  • \( \left\{\begin{array} {c}n \\ n\end{array} \right\}=1 \),
  • \( \left\{\begin{array} {c}n \\ k\end{array} \right\}=0 \), dla \( k>n \).

Dowód

Pierwszy punkt jest oczywisty po zauważeniu, że w liczbach Stirlinga dla podziałów zliczamy te same obiekty co w liczbach Stirlinga dla cykli, ale po zaniedbaniu kolejności elementów.

Drugi punkt to stwierdzenie, że niepusty zbiór nie może zostać podzielony na \( 0 \) bloków.

Trzeci punkt orzeka, że jest tylko jeden podział niepustego zbioru na jeden blok - blok ten musi być całym dzielonym zbiorem.

Dla dowodu czwartego załóżmy, że \( \vert X\vert=n \) i niech \( x\in X \). Zauważmy, że podział na dwa bloki jest zdeterminowany jednym z tych bloków - drugi to po prostu dopełnienie pierwszego. Niech więc blokiem determinującym podział, będzie blok zawierający \( x \). Element \( x \) może stanowić blok z dowolnym podzbiorem pozostałego \( (n-1) \)-elementowego zbioru \( X-{\{ {x} \} } \) poza podzbiorem pełnym, gdyż wtedy drugi blok byłby pusty. Zatem jest dokładnie \( 2^{n-1}-1 \) możliwości wyboru bloku dla \( x \), i tym samym tyleż jest podziałów \( X \).

Dowody pozostałych trzech własności można przeprowadzić jak dla liczb Stirlinga dla cykli.

Liczby Stirlinga dla podziałów, podobnie jak współczynniki dwumianowe, czy liczby Stirlinga dla cykli można generować używając zależności rekurencyjnej. Na jej podstawie można zbudować Trójkąt Stirlinga dla podziałów.

Obserwacja 6.15

Dla \( 0 < k\leq n \)

\( \left\{\begin{array} {c}n \\ k\end{array}\right \} =k\left\{\begin{array} {c}n-1 \\ k\end{array}\right \}+\left\{\begin{array} {c}n-1 \\ k-1\end{array} \right\}. \)

Dowód

Niech, jak zwykle, \( \vert X\vert=n \) i niech \( x\in X \) będzie ustalonym elementem. Znów, podziały zbioru \( X \) na \( k \) bloków można podzielić na dwa typy:

  • \( {\{ {x} \} } \) stanowi blok jednoelementowy,
  • \( x \) jest w bloku co najmniej dwuelementowym.

Każdy podział pierwszego typu jest jednoznacznie wyznaczony przez \( (n-1) \)-elementowego zbioru \( X-{\{ {x} \} } \) na \( k-1 \) bloków. Jest ich więc dokładnie \( \left\{\begin{array} {c}n-1 \\ k-1\end{array} \right\} \). W drugim przypadku pozostałe elementy dzielone są wciąż na \( k \) bloków. Można taki podział wykonać na \( \left\{\begin{array} {c}n-1 \\ k\end{array} \right\} \) sposobów. Element \( x \) może rozszerzyć każdy taki podział zbioru math>X</math> do podziału zbioru \( X \) na \( k \) sposobów wchodząc do któregoś z \( k \) bloków. Zatem jest dokładnie \( k\left\{\begin{array} {c}n-1 \\ k\end{array} \right\} \) podziałów drugiego typu.

Obserwacja 6.15 pozwala na szybką konstrukcję Trójkąta Stirlinga dla podziałów.

Kilka wykładów wcześniej wskazaliśmy liczbę funkcji, liczbę injekcji i liczbę bijekcji między zbiorami skończonymi. Przemilczeliśmy liczbę surjekcji, nie mając jeszcze wtedy wystarczających narzędzi do ich zliczenia. Zauważmy jednak, że każda surjekcja \( X \longrightarrow Y \) wyznacza podział zbioru \( X \) na \( \vert Y\vert \) bloków. Nie dziwi więc następujący związek z liczbami Stirlinga dla podziałów.

Obserwacja 6.16

Dla skończonych zbiorów \( X,Y \) liczba surjekcji \( X\longrightarrow Y \) wynosi \( \vert Y\vert!\cdot\left\{\begin{array} {c}\vert X\vert \\ \vert Y\vert\end{array} \right\} \).

Dowód

Niech \( Y={\{ {y_0,\ldots,y_{m-1}} \} } \). Jak już zauważyliśmy, surjekcja postaci \( f:X \longrightarrow Y \) wyznacza pewien podział zbioru \( X \) dodatkowo poetykietowany elementami zbioru \( X \) na \( m=\vert Y\vert \) bloków \( f^{-1}({\{ {y_0} \} }), \ldots, f^{-1}({\{ {y_{m-1}} \} }) \). Nieetykietowanych podziałów jest oczywiście \( \left\{\begin{array} {c}\vert X\vert \\ \vert Y\vert\end{array} \right\} \). Ponieważ każdy podział może być poetykietowany na \( \vert Y\vert! \) sposobów, możemy zakończyć dowód.

Obserwacja 6.17

Dla \( n,k\in\mathbb{N} \)

\( \displaystyle \left\{\begin{array} {c}n \\ k+1\end{array} \right\}=\frac{1}{(k+1)!}\sum_{0 < i_0 < \ldots < i_{k-1} < n}{n\choose i_{k-1}}{i_{k-1}\choose i_{k-2}}\ldots{i_1\choose i_0}. \)

Dowód

Niech \( \vert X\vert=n \). Pojedynczy składnik \( {n\choose i_{k-1}}{i_{k-1}\choose i_{k-2}}\ldots{i_1\choose i_0} \) rozważanej sumy to liczba wyborów ciągu zbiorów \( X ⊋
A_{k-1} ⊋ \ldots ⊋ A_1 ⊋ A_{0} \), odpowiednio \( i_{k-1}>\ldots>i_1>i_0 \) elementowych. Rzeczywiście \( A_{i_{k-1}}⊊
X \) możemy wybrać na \( {n\choose i_{k-1}} \) sposobów, \( A_{i_k-2} ⊊
A_{i_k-1} \) na \( {i_{k-1}}\choose i_{k-2} \) sposobów itd. Każdy taki ciąg zbiorów odpowiada jednoznacznie ciągowi \( k+1 \) bloków \( \langle B_0,\ldots,B_k \rangle \), gdzie \( B_0=A_0, B_1=A_1-A_0,\ldots,B_{k-1}=A_{k-1}-A_{k-2},B_k=X-A_{k-1} \). W podziale nie jest jednak istotne uporządkowanie bloków \( B_0,\ldots,B_k \), co oznacza, że powinniśmy przejść od ciągu \( \langle B_0,\ldots,B_k \rangle \) do rodziny bloków \( {\{ {B_0,\ldots,B_k} \} } \), wydzielając tym samym każdy składnik sumy przez \( (k+1)! \). Tak wydzielona suma to nic innego jak liczba podziałów zbioru \( n \)-elementowego na \( k+1 \) bloków, czyli \( \left\{\begin{array} {c}n \\ k+1\end{array}\right \} \).

Przykład

\( \begin{align*} \left\{\begin{array} {c}n \\ 3\end{array} \right\} & =\frac{1}{3!}\sum_{0 < j < i < n}{n\choose i}{i\choose j} =\frac{1}{6}\sum_{0 < i < n}{n\choose i}\sum_{0 < j < i}{i\choose j} \\ & =\frac{1}{6}\sum_{0 < i < n}{n\choose i}(2^i-2) =\frac{1}{6}\sum_{0 < i < n}{n\choose i}2^i-\frac{1}{3}\sum_{0 < i < n}{n\choose i} \\ & =\frac{1}{6}(3^n-1-2^n)-\frac{1}{3}(2^n-2) =\frac{3^{n-1}+1}{2}-2^{n-1} \end{align*} \)

Liczby Bella

W Trójkącie Pascala \( n \)-ty wiersz sumuje się do
liczby podzbiorów zbioru \( n \)-elementowego, czyli do \( 2^n \). W Trójkąta Stirlinga dla cykli \( n \)-ty wiersz sumuje się do liczby permutacji zbioru \( n \)-elementowego, czyli do \( n! \). Zajmiemy się teraz sumą \( n \)-tego wiersza Trójkąta Stirlinga dla podziałów. Oczywiście suma taka to liczba wszystkich podziałów zbioru \( n \) elementowego, lub inaczej liczby wszystkich relacji równoważności na zbiorze \( n \)-elementowym.

Liczba Bella \( B_n \)

to liczba podziałów zbioru \( n \)-elementowego, czyli

\( \displaystyle B_n=\sum_{i=0}^n\left\{\begin{array} {c}n \\ i\end{array} \right\}. \)

Lista kilku pierwszych liczb Bella:

\( \begin{array} {|c||c|c|c|c|c|c|c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & \ldots \\ \hline B_n & 1 & 1 & 2 & 5 & 15 & 52 & 203 & 877 & 4140 & 21147 & 115975 & \ldots \\ \hline \end{array} \)

Liczby Bella spełniają piękną zależność rekurencyjną:

Obserwacja 6.18

\( \displaystyle B_{n+1}=\sum_{i=0}^n{n\choose i}B_i. \)

Dowód

Wybierzmy i ustalmy w \( (n+1) \)-elementowym zbiorze \( X \) pewien element \( x\in X \). Policzmy teraz ile jest podziałów zbioru \( X \) takich, że blok zawierający \( x \) ma dokładnie \( i+1 \) elementów. Oczywiście pozostałe \( i \) elementów tego bloku może zostać wybranych ze zbioru \( X-{x} \) na \( {n\choose i} \) sposobów. Każdy taki blok możemy rozbudować do podziału zbioru \( X \) poprzez podzielenie pozostałych \( n-i \) na bloki. Podział taki jest oczywiście możliwy na \( B_{n-i} \) sposobów, skąd sumując po wszystkich możliwych wartościach \( i \) otrzymujemy

\( \displaystyle B_{n+1}=\sum_{i=0}^n{n\choose i}B_{n-i}=\sum_{i=0}^n{n\choose i}B_i. \)

Bazy przestrzeni wielomianów

Przestrzeń wektorowa \( \mathbb{R}[x] \) wszystkich wielomianów jednej zmiennej rzeczywistej \( x \) ma naturalną bazę złożoną z jednomianów

\( 1,x,x^2,x^3,\ldots \)

W różnicowym odpowiedniku Twierdzenia Taylora widzieliśmy (bez dowodu), że każdy wielomian \( p(x) \) można przedstawić jako kombinację liniową \( \displaystyle p(x)=\sum_{i=0}^k\frac{(\Delta^i p)(0)}{i!}x^{\underline{i}} \) dolnych silni \( x^{\underline{i}} \). Pokażemy teraz, że rzeczywiście zarówno dolne silnie

\( 1,x^{\underline{1}},x^{\underline{2}},x^{\underline{3}},\ldots \)

jak i górne silnie

\( 1,x^{\overline{1}},x^{\overline{2}},x^{\overline{3}},\ldots \)

stanowią bazy dla przestrzeni wielomianów \( \mathbb{R}[x] \), oraz że współczynniki przejścia między tymi trzeba bazami są ściśle powiązane z liczbami Stirlinga.

W dalszych rozważaniach rezygnujemy z ograniczeń na indeksy sumowania. Zakładamy jedynie, że przebiegają one liczby całkowite pamiętając, że \( \left[\begin{array} {c}n \\ k\end{array}\right ] \) i \( \left\{\begin{array} {c}n \\ k\end{array} \right\} \) zerują się dla \( k < 0 \) oraz \( k>n \).

Obserwacja 6.19

Dla \( x\in\mathbb{R} \) oraz \( n\in\mathbb{N} \)

\( \displaystyle x^{\overline{n}}=\sum_i\left[\begin{array} {c}n \\ i\end{array} \right]x^i. \)

Dowód

Dla dowodu indukcyjnego zauważmy najpierw, że przy \( n=0 \) mamy \( x^{\overline{0}}=1=\left[\begin{array} {c}0 \\ 0\end{array} \right] \). W kroku indukcyjnym korzystamy tym razem z faktu, że \( x^{\overline{n}}=x\cdot x^{\overline{n-1}}+(n-1)x^{\overline{n-1}} \), dostając

\( \begin{align*} x^{\overline{n}} & =x\sum_i\left[\begin{array} {c}n-1 \\ i\end{array} \right]x^i+(n-1)\sum_i\left[\begin{array} {c}n-1 \\ i\end{array} \right]x^i \\ & =\sum_i\left[\begin{array} {c}n-1 \\ i-1\end{array} \right]x^i+\sum_i(n-1)\left[\begin{array} {c}n-1 \\ i\end{array} \right]x^i \\ & =\sum_i\left(\left[\begin{array} {c}n-1 \\ i-1\end{array} \right]+(n-1)\left[\begin{array} {c}n-1 \\ i\end{array} \right]\right)x^i \\ & =\sum_i\left[\begin{array} {c}n \\ i\end{array} \right]x^i. \end{align*} \)

Obserwacja 6.20

Dla \( x\in\mathbb{R} \) oraz \( n\in\mathbb{N} \)

\( \displaystyle x^n=\sum_i\left\{\begin{array} {c}n \\ i \end{array} \right\} x^\underline{i}. \)

Dowód

Zaprezentujemy dwa dowody. Pierwszy - indukcyjny - pracuje dla dowolnego \( x\in\mathbb{R} \), a drugi - kombinatoryczny - w oczywisty sposób jedynie dla \( x\in\mathbb{N} \).

Dla dowodu indukcyjnego zauważmy najpierw, że przy \( n=0 \) mamy \( x^0=1=\left\{\begin{array} {c}0 \\ 0\end{array} \right\} \). W kroku indukcyjnym korzystamy z faktu, że \( x\cdot x^{\underline{i}}=x^{\underline{i+1}}+ix^{\underline{i}} \) dostając:

\( \begin{align*} x^n=x\cdot x^{n-1} & =x\sum_i \left\{\begin{array} {c}n-1 \\ i\end{array} \right\}x^{\underline{i}} \\ & =\sum_i \left\{\begin{array} {c}n-1 \\ i\end{array} \right\}\left(x^{\underline{i+1}}+ix^{\underline{i}}\right) \\ & =\sum_i \left\{\begin{array} {c}n-1 \\ i-1\end{array} \right\}x^{\underline{i}}+\sum_i \left\{\begin{array} {c}n-1 \\ i\end{array} \right\}ix^{\underline{i}} \\ & =\sum_i \left(i\left\{\begin{array} {c}n-1 \\ i\end{array} \right\}+\left\{\begin{array} {c}n-1 \\ i-1\end{array} \right\}\right)x^{\underline{i}}. \end{align*} \)

Dla dowodu kombinatorycznego załóżmy, że \( x\in\mathbb{N}-{\{ {0} \} } \) i niech \( X \) będzie zbiorem \( x \)-elementowym. Oczywiście \( x^n \) to liczba funkcji postaci \( \mathbb{Z}_n \longrightarrow X \). Każda taka funkcja przyjmuje \( i=1,2,\ldots,x \) wartości. Policzmy więc ile funkcji \( \mathbb{Z}_n \longrightarrow X \) przyjmuje dokładnie \( i \) wartości. Ciąg \( i \) różnych wartości ze zbioru \( x \)-elementowego można wybrać na \( x(x-1)\cdot\ldots\cdot(x-i+1)=x^{\underline{i}} \) sposobów. Z każdym takim \( i \)-elementowym ciągiem możemy stowarzyszyć jakiś podział zbioru \( \mathbb{Z}_n \) na \( i \) bloków, tzn. kolejnym blokom tego podziału (uporządkowanym najpierw według najmniejszych elementów w blokach) przyporządkowujemy \( i \)-tą wartość wybranego ciągu. Tym sposobem mamy \( \left\{\begin{array} {c}n \\ i\end{array} \right\}n^{\underline{i}} \) funkcji \( \mathbb{Z}_n \longrightarrow X \) przyjmujących dokładnie \( i \) wartości. Sumując po wszystkich możliwych \( i \) otrzymujemy żądaną równość.

Wskazaliśmy współczynniki przejścia z bazy górnych silni w jednomiany oraz z jednomianów w dolne silnie. Nierówności

\( x^{\underline{n}} < x^n < x^{\overline{n}} \)

zachodzące dla \( x>n>1 \), sugerują, że niektóre współczynniki przejścia z górnych silni do jednomianów oraz z jednomianów do dolnych silni muszą być ujemne. Wskazując te współczynniki wykorzystamy prosty fakt:

\( \begin{align*} (-x)^{\overline{n}} & =(-x)(-x+1)\cdot\ldots\cdot(-x+n-1) \\ & =(-1)^nx(x-1)(x-2)\cdot\ldots\cdot(x-n+1) \\ & =(-1)^nx^{\underline{n}}. \end{align*} \)

Obserwacja 6.21

Dla \( x\in\mathbb{R} \) oraz \( n\in\mathbb{N} \)

\( \begin{align*} x^n & =\sum_i\left\{\begin{array} {c}n \\ i\end{array} \right\}(-1)^{n-i}x^{\overline{i}}, \\ x^{\underline{n}} & =\sum_i\left[\begin{array} {c}n \\ i\end{array} \right](-1)^{n-i}x^i. \end{align*} \)

Dowód

Udowodnimy jedynie pierwszą równość, pozostawiając analogiczny dowód dla drugiej jako ćwiczenie.

\( \begin{align*} x^n=(-1)^n(-x)^n & =(-1)^n\sum_i\left\{\begin{array} {c}n \\ i\end{array} \right\}(-x)^{\underline{i}} \\ & =(-1)^n\sum_i\left\{\begin{array} {c}n \\ i\end{array} \right\}(-1)^ix^{\overline{i}} \\ & =\sum_i\left\{\begin{array} {c}n \\ i\end{array} \right\}(-1)^{n-i}x^{\overline{i}}. \end{align*} \)

Używając trzech powyższych obserwacji zauważmy, że przechodząc od jednomianów do górnych silni i z powrotem, a także niezależnie, od jednomianów do dolnych silni i z powrotem, otrzymujemy następujące zależności:

Obserwacja 6.22

Dla \( m,n\in\mathbb{N} \)

\( \begin{align*} \sum_i (-1)^{m-i}\left\{\begin{array} {c}m \\ i\end{array} \right\}\left[\begin{array} {c}i \\ n\end{array} \right] & = \left\{ \begin{array} {ll} 0, & \mbox {dla} & m\neq n, \\ 1, & \mbox {dla} & m=n, \end{array} \right.\ \\ \sum_i (-1)^{m-i}\left[\begin{array} {c}m \\ i\end{array} \right]\left\{\begin{array} {c}i \\ n\end{array}\right\} & = \left\{ \begin{array} {ll} 0, & \mbox {dla} & m\neq n, \\ 1, & \mbox {dla} & m= n. \end{array} \right . \end{align*} \)

Klasyfikacja podziałów

Rozważaliśmy wiele różnych sposobów podziału obiektów na różne kategorie. Czasem kolejność kategorii odgrywała rolę, a czasem nie. Czasem kolejność obiektów danej kategorii odgrywała rolę, a czasem nie. Interesowała nas zawsze liczba konfiguracji podziałowych powstałych w wyniku takich podziałów obiektów na kategorie. Liczba ta zależy oczywiście od tego czy obiekty, bądź kategorie, są rozróżnialne.

Obiekty są rozróżnialne jeśli zamiana miejscami dwu obiektów z różnych kategorii daje nową konfigurację.

Kategorie są rozróżnialne jeśli wzajemna wymiana wszystkich obiektów między dwiema kategoriami prowadzi do nowej konfiguracji.

Zobaczymy, że im mniej rozróżnialności, tym zliczanie staje się trudniejsze.

Często poza całkowitą liczbą konfiguracji istotna jest także liczba konfiguracji z wyłącznie niepustymi kategoriami. Gdy więc \( n \) obiektów klasyfikujemy w \( k \) kategorii pytamy o liczbę konfiguracji (klasyfikacji) o co najwyżej \( k \) kategoriach oraz o dokładnie \( k \) kategoriach.

Większość wariantów klasyfikacji \( n \) obiektów na \( k \) kategorii już przeanalizowaliśmy. Podsumujmy zatem:

  • obiekty rozróżnialne, kategorie rozróżnialne:

Klasyfikacja rozróżnialnych obiektów na rozróżnialne kategorie to po prostu funkcja ze zbioru obiektów w zbiór kategorii. Liczba funkcji ze zbioru \( n \)-elementowego w zbiór \( k \)-elementowy wynosi \( k^n \).

Klasyfikacja na dokładnie \( k \) kategorie to funkcja surjektywna. Zgodnie z Obserwacją 6.16, liczba takich klasyfikacji to, \( k!\left\{\begin{array} {c}n \\ k\end{array}\right\} \).

  • obiekty rozróżnialne, kategorie nierozróżnialne:

Nierozróżnialność kategorii oznacza, że nie jest ważna nazwa kategorii (tzn. wartość funkcji dla danego obiektu), a jedynie jej zawartość. Mamy więc do czynienia z podziałem zbioru obiektów na co najwyżej \( k \) bloków. Liczba takich konfiguracji to suma liczb Stirlinga dla podziałów \( \displaystyle \sum_{i=1}^{k}\left\{\begin{array} {c}n \\ i\end{array}\right \} \).

Oczywiście gdy wszystkie kategorie są niepuste, to zbiór obiektów jest podzielony na dokładnie \( k \) bloków. Liczba takich konfiguracji to \( \left\{\begin{array} {c}n \\ k\end{array}\right \} \).

  • obiekty nierozróżnialne, kategorie rozróżnialne:

Nierozróżnialność obiektów skutkuje tym, że ważna jest jedynie ich liczba w danej kategorii. A zatem konfiguracja to podział liczby \( n \) na sumę \( n=x_0+\ldots+x_{k-1} \) liczb naturalnych \( x_i \). Liczba rozwiązań takiego równania została policzona w jednym z przykładów wykładu o współczynnikach dwumianowych i wynosi \( {n+k-1\choose k-1} \).

I znów, gdy kategorii, czyli składników w rozkładzie \( n=x_0+\ldots+x_{k-1} \), ma być dokładnie \( k \), zliczamy jedynie rozwiązania spełniające dodatkowo \( x_0,\ldots,x_{k-1}\geq 1 \). Zgodnie z innym przykładem analizowanym w wykładzie o współczynnikach dwumianowych liczba takich rozwiązań to \( {n-1\choose k-1} \).

  • obiekty nierozróżnialne, kategorie nierozróżnialne:

To jedyny jeszcze nie analizowany przez nas przypadek. Załóżmy najpierw, że wszystkie kategorie są niepuste. Ponieważ są one nierozróżnialne, możemy dodatkowo założyć, że w rozkładzie liczby \( n \) na sumę \( n=x_0+\ldots+x_{k-1} \) zachodzi \( x_0\leq x_1 \leq \ldots \leq x_{k-1} \). Liczba \( P(n,k) \) takich rozkładów będzie przedmiotem ostatniej części wykładu. Jednak już teraz możemy powiedzieć, że nie jest znana żadna zwarta postać tych liczb. Co więcej, nawet aby otrzymać ciekawe zależności rekurencyjne dla liczb podziałów, potrzebne jest nowe, silne narzędzie: funkcje tworzące.

Oczywiście, gdy dopuszczamy puste kategorie liczba konfiguracji jest sumą \( \displaystyle \sum_{i=1}^k P(n,k) \).

Podziały liczby

Podziały liczby


Podział liczby \( n \) na \( k \) składników to przedstawienie \( n \) w postaci sumy

\( a_0+\ldots+a_{k-1}=n, \)

gdzie \( a_0 \leq a_1 \leq \ldots \leq a_{k-1}\leq 1 \).

Liczbę podziałów \( n \) na \( k \) składników oznaczamy przez \( P(n,k) \).

Przykład

Lista podziałów \( 7 \) na \( 4 \) składniki:

\( 1+1+1+4,\qquad 1+1+2+3,\qquad 1+2+2+2. \)

  • \( P(7,4)=3 \).

Obserwacja 6.23

Dla \( n,k\in\mathbb{N}-{\{ {0} \} } \)

  • \( P(n,1)=1 \),
  • \( P(n,2)=\lfloor \frac{n}{2}\rfloor \),
  • \( P(n,n)=1 \),
  • \( P(n,k)=0 \), dla \( n < k \)
  • \( \frac{1}{k!}{n-1\choose k-1}\leq P(n,k)\leq{n-1\choose k-1} \).

Dowód

Uzasadnimy jedynie ostatni punkt. Dla dowodu ograniczenia górnego liczby \( P(n,k) \) zauważmy, że interesujące nas podziały liczby \( n \) są rozwiązaniami równania \( n=x_0+\ldots+x_{k-1} \), a tych, jak już wiemy, jest dokładnie \( {n-1\choose k-1} \).

Z drugiej strony dowolny podział liczby \( n \) generuje co najwyżej \( k! \) rozwiązań równania \( n=x_0+\ldots+x_{k-1} \) (generuje dokładnie \( k! \), jeśli składniki podziału są parami różne) i wszystkie rozwiązania mogą zostać w ten sposób osiągnięte. To oczywiście daje ograniczenie dolne.

Ograniczenie górne dla \( P(n,k) \) można poprawić:

Obserwacja 6.24

\( P(n,k) \leq \frac{1}{k!}{n+{k\choose2}-1\choose k-1}. \)

Dowód

Dla podziału \( n=a_0+\ldots+a_{k-1} \) definiujemy

\( b_i=a_i+(k-1-i),\qquad\mbox{ dla }{0}\leq{i}\leq{k-1}. \)

Zauważmy, że wszystkie liczby \( b_i \) są różne oraz

\( b_0+\ldots+b_{k-1}=n+\frac{k(k-1)}{2}. \)

A zatem podziały liczby \( n \) na \( k \) składników stoją w bijektywnej odpowiedniości z podziałami liczby \( n+{k\choose 2} \) na \( k \) parami różnych składników. Każdy podział \( n+{k\choose2} \) na \( k \) parami różnych składników generuje dokładnie \( k! \) rozwiązań równania

\( x_0+\ldots+x_{k-1}=n+{k\choose 2}, \)

gdzie \( x_i>0 \). Wiemy zaś, że to ostatnie równanie posiada co najwyżej \( {n+{k\choose2}-1\choose k-1} \) rozwiązań. A zatem ciągów \( \langle b_i \rangle \), a tym samym podziałów \( n \) na \( k \) składników, jest co najwyżej \( \frac{1}{k!}{n+{k\choose2}-1\choose k-1} \).

Ostatnia obserwacja pozwala na opisanie granicznego zachowania liczb \( P(n,k) \) przy ustalonym \( k \).

Wniosek 6.25

Dla dowolnego \( k \)

\( \displaystyle \lim_{n\to\infty}\frac{P(n,k)}{n^{k-1}}=\frac{1}{k!(k-1)!}. \)

Dość skutecznym narzędziem do badania podziałów liczb naturalnych są tzw. diagramy Ferrersa.

Diagram Ferrersa dla podziału \( n=a_0+\ldots+a_{k-1} \) składa się z \( k \) wierszy o odpowiednio \( a_{i-1} \) elementach.

\( 2+5+6+6+9=28. \)

\( 1+3+3+3=10. \)

Użyteczność diagramów Ferrersa ilustrują dowody kilku nastepnych obserwacji.

Obserwacja 6.26

Liczba \( P(n,k) \) jest równa liczbie podziałów liczby \( n \) (na dowolną liczbę składników) o największym składniku równym \( k \).

Dowód

Odwracając o \( 90 \) stopni diagram podziału liczby \( n \) na \( k \) składników otrzymamy diagram podziału liczby \( n \), którego największy składnik równy jest \( k \). Oczywiście jest to odwzorowanie bijektywne, gdyż odwracając z powrotem o \( 90 \) stopni otrzymamy ten wyjściowy diagram.

Obserwacja 6.27

Liczba \( P(n+k,k) \) jest równa liczbie podziałów \( n \) na co najwyżej \( k \) składników.

Dowód

Wycinając ostatnią kolumnę w diagramie podziału liczby \( n+k \) na \( k \) składników otrzymamy podział liczby \( n \) na co najwyżej \( k \) składników. Łatwo zauważyc, że jest to odwzorowanie bijektywne.

Funkcje tworzące

Przykład

Słynny matematyk Georg Pólya rozważał problem polegający na policzeniu wszystkich możliwych sposobów, na które można rozmienić 50 centów używając jednocentówek \( (1) \), pięciocentówek \( (5) \), dziesięciocentówek \( (10) \), ćwierćdolarówek \( (25) \), oraz półdolarówki \( (50) \). Rozważania te doprowadziły go do użycia analitycznych metod funkcji tworzących w zaproponowanym przez niego rozwiązaniu. W tym i następnym wykładzie poznamy te metody i zobaczymy jak mogą być pomocne w zliczaniu rożnych obiektów kombinatorycznych.

Wracając do problemu rozmieniania monet, wygodnie nam będzie posiadać jeszcze monetę \( [0] \), którą możemy interpretować jako brak monet. Wypiszmy teraz (nadużywając trochę notacji) nieskończoną sumę wszystkich możliwości rozmiany dowolnej kwoty za pomocą jednocentówek

\( A_1=[0] + (1) + (1) (1) + (1) (1)(1) + (1)(1)(1)(1)+\ldots \)

i analogicznie przeanalizujmy sumę dla pieciocentówek

\( A_5=[0] + (5) + (5)(5) + (5)(5)(5) + (5)(5)(5)(5) + \ldots \)

Wtedy zbiór par \( A_1 \times A_5 \) jest zbiorem wszystkich możliwości rozmiany kwoty mając do dyspozycji dowolnie wiele jednocentówek oraz pięciocentówek.

\( \begin{align*} B= A_1 \times A_5 & =([0]+ (1)+ (1)(1)+ (1)(1)(1)+ (1)(1)(1)(1)+\ldots) \\ & \times([0]+(5) + (5)(5) + (5)(5)(5) + (5)(5)(5)(5)+\ldots) \\ & =[0] + (1) + (5) + (1)(1) + (1)(5) + (5)(5) + (1)(1)(1) + \ldots \end{align*} \)

Sumy wszystkich możliwości rozmiany za pomocą dziesięciocentówek \( (10) \), ćwierćdolarówek \((25) \), oraz półdolarówek \((50) \) wyglądają następująco:

\( \begin{align*} A_{10} & = [0]+(10)+(10)(10)+(10)(10)(10)+(10)(10)(10)(10)+\ldots \\ A_{25} & = [0]+(25)+(25)(25)+(25)(25)(25)+(25)(25)(25)(25)+\ldots \\ A_{50} & = [0]+(50)+(50)(50)+(50)(50)(50)+(50)(50)(50)(50)+\ldots. \end{align*} \)

Dodając kolejno monety \((10) \), \((25) \), i na końcu \( (50) \) do możliwych rozmian uzyskujemy odpowiednio:

\( \begin{align*} C & =B\times([0]+(10)+(10)(10)+(10)(10)(10)+(10)(10)(10)(10)+\ldots) \\ D & =C\times([0]+(25)+(25)(25)+(25)(25)(25)+(25)(25)(25)(25)+\ldots) \\ E & =D\times([0]+(50)+(50)(50) + (50)(50)(50) + (50)(50)(50)(50) + \ldots) \\ & =[0]+(1)+(5)+(10)+(25)+(50)+(1)(1)+(1)(5)+(1)(10) + \ldots \end{align*} \)

Grupując teraz składniki sumy \( E \) w podsumy o tych samych wartościach dostajemy wyrażenie:

\( \begin{array} {rcl} E & = & \big((1)\big)+\big((1)(1)\big)+\big((1)(1)(1)\big)+\big((1)(1)(1)(1)\big) \\ & & +\big((1)(1)(1)(1)(1)+(5)\big) \\ & & +\big((1)(1)(1)(1)(1)(1)+(5)(1)\big)+\ldots \end{array} \)      (1)

Zliczając zaś tylko składniki w podsumie odpowiadającej wartości \( n \) centów, otrzymujemy liczbę sposobów, na które można rozmienić \( n \) centów przy użyciu monet \( (1) \), \( (5) \), \( (10) \), \( (25) \), oraz \( (50) \). Pomysłem pochodzącym od Pólya, było zastąpienie monety \( (1) \) przez zmienną \( x \), monety \((5) \) przez \( x\cdot x\cdot x\cdot x\cdot x=x^5 \) i analogicznie \( (10) \) przez \( x^{10} \), \((25) \) przez \( x^{25} \), oraz \( (50) \) przez \( x^{50} \). Uzyskujemy w ten sposób nieskończony szereg zmiennej \( x \):

\( \begin{align*} {E}(x) & =(1+x+x^2+x^3\ldots)\cdot(1+x^5+x^{10}+x^{15}\ldots)\cdot(1+x^{10}+x^{20}+x^{30}\ldots) \\ & \cdot(1+x^{25}+x^{50}+x^{75}\ldots)\cdot(1+x^{50}+x^{100}+x^{150}\ldots) \\ & =1+x+x^2+x^3+x^4+2x^5+2x^6+2x^7+2x^8+2x^9+4x^{10}+\ldots \end{align*} \)

Godne zauważenia jest, że liczba różnych możliwych sposobów rozmiany \( n \) centów (równa liczbie grup monet w odpowiednim nawiasie we wzorze (1)) jest równa współczynnikowi stojącemu przy jednomianie \( x^n \).

Funkcja tworząca \({G}(x) \) dla ciągu liczb rzeczywistych (lub zespolonych) \( (g_0,g_1,g_2,g_3,\ldots) \) to szereg funkcyjny zmiennej rzeczywistej (lub zespolonej) \( x \) postaci

\( \displaystyle {G}(x)=\sum_{n=0}^{\infty}{g_nx^n}=g_0+g_1x+g_2x^2+g_3x^3+g_4x^4+\ldots. \)

Na oznaczenie współczynnika \( n \)-tego wyrazu szeregu \({G}(x) \) używać będziemy oznaczenia \( {x^n} {G}(x)=g_n \).

Uwaga Jak traktowac funkcje tworzące

Na funkcje tworzące można spojrzeć dwoiście. Pierwszym sposobem jest potraktowanie \( {G}(x) \) jako szeregu liczb rzeczywistych (lub ogólniej zespolonych). Oczywistym pytaniem jest tu kwestia zbieżności szeregu \( \displaystyle{G}(x)=\sum_{n=0}^{\infty}{g_nx^n} \). Z wykładu Analiza Matematyczna wiemy, że szereg \( {G}(x) \) jest zbieżny, jeśli istnieje stała \( M\geq0 \) ograniczająca wszystkie skończone początkowe sumy, tzn.

\( \vert g_0\vert+\vert g_1x\vert+\vert g_2x^2\vert+\ldots+\vert g_nx^n\vert\leq M \)

zachodzi dla dowolnego \( n\geq0 \). Ponadto jeśli dla pewnej liczby \( x_0\in\mathbb{R} \) szereg \( {G}(x_0)=g_0+g_1x_0+g_2x_0^2+\ldots \) jest zbieżny, to i także szereg \( {G}(x_1)=g_0+g_1x_1+g_2x_1^2+\ldots \) jest zbieżny dla dowolnego \( x_1\in\mathbb{R} \) spełniającego \( \vert x_1\vert\leq\vert x_0\vert \). Możemy więc określić promień zbieżności szeregu jako taką liczbę \( r\in\mathbb{R}_*\cup{\{ {\infty} \}\ }= {0,+\infty} \), że jeśli \( \vert x\vert < r \), to \( {G}(x) \) jest zbieżny.

Szereg \({G}(x)=g_0+g_1x+g_2x^2+\ldots \) można więc potraktować jako funkcję

\( G:(-r,r)\longrightarrow\mathbb{R}, \)

o wartościach \( \displaystyle {G}(x)=\lim_{n\to\infty}{(g_0+g_1x+g_2x^2+\ldots+g_nx^n)}. \) Oczywiście \( {G}(0)=g_0 \), więc dla \( x=0 \) szereg \( {G}(x) \) jest zbieżny.

Drugim podejściem, bardziej użytecznym w praktycznych obliczeniach i przekształceniach jest spojrzenie na szereg \( {G}(x)=g_0+g_1x+g_2x^2+\ldots \) jako formę zapisu ciągu \( (g_0,g_1,g_2,\ldots) \), czyli jedynie jako ciąg symboli. Równości pomiędzy odpowiednimi wzorami służą rozwiązaniu problemów kombinatorycznych, tak więc traktujemy je jako równości dwu wyrażeń, a nie jako równość dwu funkcji rzeczywistych, pomimo że mają one uzasadnienia w języku analizy matematycznej.

Jak zobaczymy na wielu przykładach, funkcje tworzące są bardzo użytecznym narzędziem przy wyznaczaniu wartości elementów ciągu. Jeśli bowiem \( {G}(x)=g_0+g_1x+g_2x^2+\ldots \) jest funkcją tworzącą ciągu \( (g_0,g_1,g_2,g_3,\ldots) \), oraz w jakiś sposób będziemy w stanie poznać postać zwartą funkcji \( G(x) \), to rozwijając tę postać zwartą w szereg Taylora, poznamy kolejne współczynniki tego rozwinięcia. A współczynniki te, to właśnie kolejne wyrazy naszego ciągu.

Będziemy się zajmowali jedynie tymi funkcjami, dla których promień zbieżności \( r>0 \). Ponadto będziemy pomijać problem zbieżności oraz wartość \( r \) promienia zbieżności, skupiając się jedynie na przekształceniach wzorów. Poniżej zebrane zostały te własności, które często wykorzystywane są w takich przekształceniach.

Obserwacja 7.1

Dla dwu funkcji tworzących \( {F}(x)=f_0+f_1x+f_2x^2+\ldots \) oraz \( {G}(x)=g_0+g_1x+g_2x^2+\ldots \) mamy:

\( \begin{align*} {F}(x)= {G}{x} & \Leftrightarrow f_0=g_0,\ f_1=g_1,\ f_2=g_2,\ \ldots \\ & & \\ \alpha\cdot {F}(x)+\beta\cdot {G}{x} & = \sum_{n=0}^{\infty}{(\alpha\cdot f_n+\beta\cdot g_n)x^n} \\ & =(\alpha\cdot f_0+\beta\cdot g_0) + (\alpha\cdot f_1+\beta\cdot g_1)x + (\alpha\cdot f_2+\beta\cdot g_2)x^2 + \ldots \\ & & \\ {F}(x)\cdot {G}(x) & =\sum_{n=0}^{\infty}(\sum_{k=0}^n f_k g_{n-k}) x^n \\ & = f_0g_0 + (f_0g_1+f_1g_0)x \\ & + (f_0g_2+f_1g_1+f_2g_0)x^2 \\ & + (f_0g_3+f_1g_2+f_2g_1+f_3g_0)x^3+\ldots \\ \end{align*} \)

Wyrażenie \( {F}(x)\cdot {G}(x) \) nazywać będziemy splotem szeregów \( {F}(x) \) oraz \({G}(x) \).

Twierdzenie 7.2

Funkcja tworząca postaci

\( {G}(x)=g_0+g_1x+g_2x^2+g_3x^3+\ldots \)

ma odwrotną względem mnożenia (splotu), tzn. istnieje funkcja tworząca \( {U}(x) \) taka, że \( {U}(x) {G}(x)=1 \), wtedy i tylko wtedy, gdy \( g_0\neq0 \).

Następne własności są bardzo pomocne w dokonywanych przekształceniach funkcji tworzących.

Obserwacja 7.3

Dla dwu funkcji tworzących \({F}(x)=f_0+f_1x+f_2x^2+\ldots \) oraz \( {G}(x)=g_0+g_1x+g_2x^2+\ldots \) mamy:

\( \displaystyle x^m {G}(x) = 0+\ldots+0x^{m-1}+g_0x^m+g_1x^{m+1}+g_2x^{m+2}+\ldots \)      (2)

\( \displaystyle \frac{{G}(x)-\sum_{i=0}^{m-1}{g_ix^i}}{x^{m}} = g_m+g_{m+1}x+g_{m+2}x^{2}+g_{m+3}x^{3}+g_{m+4}x^{4}+\ldots \)      (3)

\( \displaystyle {G}(\alpha x) = g_0+g_1\alpha x+g_2\alpha^2x^2+g_3\alpha^3x^3+g_4\alpha^4x^4+\ldots \)      (4)

\( \displaystyle {G'}(x) = g_1+2g_2x+3g_3x^2+4g_4x^3+5g_5x^4+\ldots \)      (5)

\( \displaystyle \int {G}(x)dx = 0+g_0x+\frac{1}{2}g_1x^2+\frac{1}{3}g_2x^3+\frac{1}{4}g_3x^4+\ldots \)      (6)

\( \displaystyle \frac{ {G}(x)}{1-x} = g_0+(g_0+g_1)x+(g_0+g_1+g_2)x^2+\ldots \)      (7)

Funkcje tworzące w zliczaniu

Widzieliśmy już, że dla \( n\in \mathbb{N} \)

\( \displaystyle (1+x)^m ={m \choose 0}x^0 + {m \choose 1}x + {m \choose 2}x^2+\ldots+{m \choose m-1}x^{m-1}+{m \choose m}x^m =\sum_{n=0}^m {m \choose n}x^n. \)

Przyjrzyjmy się teraz rozwinięciu w szereg funkcji \( (1+x)^y \), gdzie \( y\in\mathbb{R} \) jest parametrem. Rozwinięcie takie okaże się bardzo przydatne w rozwiązywaniu wielu przykładów. Aby poznać ciąg odpowiadający tej funkcji wprowadźmy definicję.

Uogólniony symbol dwumianowy \( { y \choose n } \), gdzie \( y\in\mathbb{R} \) oraz \( n\in\mathbb{N} \) jest oznaczeniem na

\( { y \choose n }\ =\ \frac{y^{\underline{n}}}{n!}\ =\ \frac{y\cdot(y-1)\cdot\ldots\cdot(y-(n-1))}{1\cdot2\cdot\ldots\cdot(n-1)\cdot n}. \)

Uwaga

Oczywiście dla \( y\in\mathbb{N} \) spełniającego dodatkowo \( y\geq n \), uogólniony symbol dwumianowy \( { y \choose n } \) jest liczbą \( n \)-elementowych podzbiorów zbioru \( y \)-elementowego.

Twierdzenie 7.4

Dla liczby rzeczywistej \( y \) oraz liczby naturalnej \( n \) zachodzi

\( \displaystyle (1+x)^y=\sum_{n=0}^{\infty}{ y \choose n }x^n. \)

Wniosek 7.5

Dla liczby naturalnej \( m \) zachodzi

\( \displaystyle \frac{1}{(1-x)^{m+1}}=\sum_{n=0}^{\infty}{ m+n \choose n }x^n. \)

Dowód

Dowód zostawiony jest jako ćwiczenie

Przykład

Policzmy sumę

\( \displaystyle \sum_{k=0}^nk^2=1+4+9+\ldots+n^2. \)

Zacznijmy od znalezienia zwartej postaci funkcji tworzącej \({G}(x)=\sum_{n=0}^{\infty}n^2x^n \). Korzystając z Wniosku 7.5 otrzymujemy:

\( \displaystyle \frac{1}{1-x} = \sum_{n=0}^{\infty}{n \choose n}x^n=\sum_{n=0}^{\infty}x^n, \)      (8)

\( \displaystyle \frac{1}{(1-x)^2} = \sum_{n=0}^{\infty}{n+1 \choose n }x^n\ =\ \sum_{n=0}^{\infty}nx^n+\sum_{n=0}^{\infty}x^n. \)      (9)

Po przekształceniu równości (9) uzyskuje się

\( \displaystyle \sum_{n=0}^{\infty}nx^n= \frac{1}{(1-x)^2} -\frac{1}{1-x}. \)      (10)

Powołując się ponownie na Wniosek 7.5 otrzymujemy

\( \displaystyle \frac{1}{(1-x)^3} =\sum_{n=0}^{\infty}{ n+2 \choose n}x^n =\frac{1}{2}\sum_{n=0}^{\infty}n^2x^n+\frac{3}{2}\sum_{n=0}^{\infty}nx^n+\sum_{n=0}^{\infty}x^n, \)

co w połączeniu z równościami (9) oraz (10) daje zwartą postać funkcji tworzącej \( {G}(x) \) dla ciągu \( 1,4,9,\ldots,n^2,\ldots \):

\( \displaystyle {G}(x)=\sum_{n=0}^{\infty}n^2x^n =\frac{2}{(1-x)^3}-\frac{3}{(1-x)^2}+\frac{1}{1-x}. \)

Naszym zadaniem było jednakże policzenie funkcji tworzącej \( H(x) \) dla ciągu \( 1,1+4,1+4+9,\ldots,1+4+9+\ldots+n^2,\ldots \), tzn. ciągu sum początkowych wyrazów ciągu \( 1,4,9,\ldots,n^2,\ldots \). Aby uzyskać \( {H}(x) \) wystarczy więc skorzystać ze wzoru (7) i podzielić \({G}(x) \) przez \( 1-x \). Tak więc poszukiwanym rozwiązaniem są współczynniki funkcji tworzącej

\( {H}(x)=\frac{{G}(x)}{1-x} =\frac{2}{(1-x)^4}-\frac{3}{(1-x)^3}+\frac{1}{(1-x)^2}. \)

Korzystając po raz kolejny z Wniosku 7.5 otrzymujemy

\( \begin{align*}{H}(x) & =2\sum_{n=0}^{\infty}{n+3 \choose n}x^n-3\sum_{n=0}^{\infty}{n+2 \choose n}x^n+\sum_{n=0}^{\infty}{n+1 \choose n}x^n \\ & =\sum_{n=0}^{\infty}(\frac{1}{3}n^3+\frac{1}{2}n^2+\frac{1}{6}n)x^n. \end{align*} \)

W konsekwencji zachodzi równość

\( \displaystyle \sum_{k=1}^nk^2={x^n}{H}(x)=\frac{2n^3+3n+n}{6}. \)

Przykład

Wracamy do przykładu z monetami. Występowały tam funkcje tworzące postaci

\({A_k}(x) = 1+x^k+x^{2k}+x^{3k}+\ldots, \)

dla \( k=1,5,10,25 \) i \( 50 \). Z równości (7) wiemy, że

\( 1+x^k+x^{2k}+x^{3k}+\ldots, =\frac{1}{1-x^k} \)

tak więc:

\( \begin{align*}{A}(x)= {A_1}(x) & = \frac{1}{1-x}, \\ {B}(x)= {A}(x)\cdot {A_5}(x) & =\frac{{A}(x)}{1-x^5}, \\ {C}(x)={B}(x)\cdot {A_{10}}(x) & =\frac{{B}(x)}{1-x^{10}}, \\ {D}(x)={C}(x)\cdot {A_{25}}(x) & =\frac{{C}(x)}{1-x^{25}}, \\ {E}(x)= {D}(x)\cdot {A_{50}}(x) & =\frac{{D}(x)}{1-x^{50}}, \end{align*} \)

skąd natychmiast:

\( \begin{align*}{A}(x) & =1+x{A}(x), \\ {B}(x) & ={A}(x)+x^5{B}(x), \\ {C}(x) & ={B}(x)+x^{10}{C}(x), \\ {C}(x) & ={D}(x)+x^{25}{C}(x), \\ {D}(x) & ={E}(x)+x^{50}{D}(x). \end{align*} \)

Równości te dają zależności między współczynnikami:

\( a_n=1,\quad b_n=a_n+b_{n-5},\quad c_n=b_n+c_{n-10},\quad d_n=c_n+d_{n-25},\quad \)\( \quad e_n=d_n+e_{n-50}. \)

Wykorzystując te zależności rekurencyjne możemy wypełnić następującą tabelę:

\( \begin{array}{|c||c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline n & 0 & 5 & 10 & 15 & 2 & 25 & 30 & 35 & 40 & 45 & 50 & 55 & 60 & 65 & 70 & 75 & 80 & 85 & 90 & 95 & 100 \\ \hline\hline a_n & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ \hline b_n & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 \\ \hline c_n & 1 & 2 & 4 & 6 & 9 & 12 & 16 & 10 & 25 & 30 & 36 & 42 & 49 & 56 & 64 & 72 & 81 & & 100 & & 121 \\ \hline d_n & 1 & & & & & 13 & & & & & 49 & & & & & 121 & & & & & 242 \\ \hline e_n & 1 & & & & & & & & & & 50 & & & & & & & & & & 292 \\ \hline \end{array} \)

Pół dolara można rozmienić na \( 50 \) sposobów. Z kolei rozmieniać jednego dolara można na aż \( 292 \) sposoby. Do problemu tego wrócimy jeszcze w następnym wykładzie.

Funkcje tworzące w rozwiązywaniu zależności rekurencyjnych

Przykład

Rozważmy ciąg Fibonacci'ego, tzn. ciąg \( (f_0,f_1,f_2,f_3,\ldots) \) zdefiniowany w następujący sposób:

\( \begin{align*} f_0 & =0, \\ f_1 & =1, \\ f_n & =f_{n-1}+f_{n-2}\quad\textrm{dla}\ n\geq 2. \end{align*} \)

Znamy już postać zwartą jego wyrazów. Tym razem zobaczymy jak można ją otrzymać używając funkcji tworzących. Zależności rekurencyjne dla \( f_n \) przekładają się natychmiast na następujące równanie, jakie musi spełniać funkcja tworząca \({F}(x) \) dla ciągu Fibonacci'ego

\( \displaystyle {F}(x) =\sum_{n=0}^{\infty}f_nx^n =x+\sum_{n=2}^{\infty}(f_{n-1}+f_{n-2})x^n=x+x{F}(x)+x^2{F}(x). \)

Przekształcając powyższe równanie otrzymujemy:

\( {F}(x)=\frac{x}{1-x-x^2}. \)      (11)

Celem, który chcemy osiągnąć to wykorzystanie funkcji \( \frac{x}{1-x-x^2} \) do przedstawienia współczynników \( f_n \) w postaci zwartej. Pierwszym krokiem będzie rozłożenie ułamka w równaniu (11) na sumę ułamków o mianownikach będących funkcjami liniowymi

\({F}(x)=\frac{x}{1-x-x^2} =\frac{x}{(1-z_0 x)(1-z_1 x)} =\frac{1}{\sqrt{5}}(\frac{1}{(1-z_0 x)}-\frac{1}{(1-z_1 x)}), \)

gdzie \( z_0=\frac{1+\sqrt{5}}{2} \) jest złotą liczbą oraz \( z_1=\frac{1-\sqrt{5}}{2} \) liczbą do niej sprzężoną. Korzystając z równania (7) otrzymujemy teraz

\( \displaystyle {F}(x) =\frac{1}{\sqrt{5}}(\sum_{n=0}^{\infty}{{z_0}^nx^n}-\sum_{n=0}^{\infty}{{z_1}^nx^n}) =\frac{1}{\sqrt{5}}\sum_{n=0}^{\infty}{({z_0}^n-{z_1}^n)x^n}. \)

Tak więc dostajemy szybko znaną nam już postać zwartą \( f_n=\frac{1}{\sqrt{5}}({z_0}^n-{z_1}^n) \).

Podczas rozwiązywania przykładu związanego z liczbami Fibonacci'ego natrafiliśmy na problem polegający na przedstawieniu w postaci szeregu wyrażenia \( \frac{x}{1-x-x^2} \). Przyjrzymy się dokładniej tego typu wyrażeniom.

Stopień wielomianu \( deg{{P}(x)}=n \), jeśli \( {P}(x)=p_0+p_1x+\ldots+p_nx^n \).

Funkcja wymierna \({R}(x) \) to funkcja postaci \( \frac{{P}(x)}{{Q}(x)} \), gdzie \( {P}(x) \) oraz \( {Q}(x)\neq0 \) są wielomianami skończonego stopnia.

Obserwacja 7.6

Niech \( A(x) \) oraz \( {B}(x) \) będą wielomianami \( deg{{A}(x)}\geq deg{{B}(x)} \). Wtedy istnieją wielomiany \( {Q}(x) \) oraz \({R}(x) \) takie, że

\( {A}(x)={Q}(x){B}(x)+{R}(x), \)

gdzie \( deg{{R}(x)} < deg{{A}(x)}=deg{{Q}(x)}+deg{{B}(x)} \).

Przykład

Niech

\( {A}(x)=3x^5+5x^4+2x^3+x^2+2\quad\textrm{oraz}\quad{B}(x)=x^3+2x^2-1. \)

Wtedy wielomiany

\( {Q}(x)=3x^2-x+3\quad\textrm{oraz}\quad{R}(x)=x+2 \)

spełniają

\( \begin{align*}{A}(x) & =3x^5+5x^4+2x^3+x^2+2 \\ & =(3x^2-x+3)\cdot(x^3+2x^2-1)+x+2 \\ & ={Q}(x){B}(x)+{R}(x). \end{align*} \)

Ponadto \( deg{{A}(x)}=5=2+3=deg{{Q}(x)}+deg{{B}(x)} \).

Wniosek 7.7

Niech \( {P}(x) \) oraz \( {Q}(x) \) będą wielomianami takimi, że \( deg{{P}(x)}\geq deg{{Q}(x)} \). Wtedy funkcję wymierną \( {R}(x)={P}(x)/ {Q}(x), \) można przedstawić w postaci

\( {R}(x)=\frac{{P}(x)}{{Q}(x)}={A}(x)+\frac{{B}(x)}{{Q}(x)}, \)

dla pewnych wielomianów \({A}(x) \) oraz \( {B}(x) \)

spełniających \( deg{{B}(x)} < deg{{Q}(x)} \).

Będziemy więc skupiali się jedynie nad takimi funkcjami wymiernymi \({R}(x)={P}(x)/{Q}(x), \) dla których \( deg{{P}(x)} < deg{{Q}(x)} \).

Twierdzenie 7.8

Niech \( {P}(x) \) oraz \({Q}(x) \) będą wielomianami takimi, że

  • \( deg{{P}(x)} < deg{{Q}(x)} \),
  • \({Q}(x)={S}(x){T}(x) \), gdzie oba wielomiany \( {S}(x),{T}(x) \) są stopnia co najmniej \( 2 \),
  • \( q_0\neq0 \).

Wtedy istnieją wielomiany \( {A}(x) \) oraz \( {B}(x) \) takie, że \( deg{{A}(x)} < deg{{S}(x)} \) i \( deg{{B}(x)} < deg{{T}(x)} \) oraz

\( \frac{{P}(x)}{{Q}(x)} =\frac{{A}(x)}{{S}(x)}+\frac{{B}(x)}{{T}(x)}. \)

Uwaga

Twierdzenie 7.8 pozwala na rozbijanie skomplikowanych funkcji wymiernych na sumę prostszych.

Wniosek [Metoda rozwijania funkcji wymiernej w szereg] Rozważmy funkcję wymierną w postaci

\( {R}(x)=\frac{{P}(x)}{{Q}(x)}, \)

gdzie \( deg{{P}(x)} < deg{{Q}(x)} \), oraz \( q_0\neq0 \). Załóżmy ponadto, że wielomian \( {Q}(x) \) rozkłada się na następujący iloczyn czynników liniowych

\({Q}(x) =q_0(1-\rho_1x)^{m_1}\cdot(1-\rho_2x)^{m_2}\cdot\ldots\cdot(1-\rho_kx)^{m_k}. \)

Warto wspomnieć, że dalecy nie każdy wielomian ma taki rozkład. Na przykład \( 1+x^2 \) jest nierozkładalny i nieliniowy. Wykorzystując parokrotnie Twierdzenie 7.8 otrzymujemy wielomiany \( {P_1}(x),\ldots,{P_k}(x) \) takie, że

\( {R}(x) =\frac{{P}(x)}{{Q}(x)}=\frac{{P_1}(x)}{(1-\rho_1x)^{m_1}}+\frac{{P_2}(x)}{(1-\rho_2x)^{m_2}}+\ldots+\frac{{P_k}(x)}{(1-\rho_kx)^{m_k}}, \)

gdzie \( deg{{P_i}(x)} < m_i \). Na mocy Obserwacji 7.6 możemy sprowadzić wielomian \( {P_i}(x) \) do

\( \begin{align*}{P_i}(x) & ={P_i^1}(x)(1-\rho_ix)+\gamma_{m_i} \\ & ={P_i^2}(x)(1-\rho_ix)^2+\gamma_{m_i-1}(1-\rho_ix)+\gamma_{m_i} \\ & \vdots \\ & =\gamma_1(1-\rho_ix)^{m_i-1}+\ldots+\gamma_{m_i-1}(1-\rho_ix)+\gamma_{m_i}, \end{align*} \)

gdzie \( m_i\geq deg{{P_i}(x)}>deg{{P_i^1}(x)}>deg{{P_i^2}(x)}>\ldots \). W konsekwencji otrzymamy

\( \displaystyle {R}(x)\ =\ \sum_{i=1}^k{(\frac{\gamma_{i,1}}{1-\rho_ix}+\frac{\gamma_{i,2}}{(1-\rho_ix)^2}+\ldots+\frac{\gamma_{i,m_i}}{(1-\rho_ix)^{m_i}})}. \)

Mnożąc teraz obie strony przez

\( {Q}(x)/q_0=(1-\rho_1x)^{m_1}\cdot(1-\rho_2x)^{m_2}\cdot\ldots\cdot(1-\rho_kx)^{m_k} \)

i porównując współczynniki przy odpowiadających potęgach \( x^i \) uzyskujemy pewien układ równań, rozwiązanie którego da nam poszukiwane współczynniki \( \gamma_{i,j} \). Z drugiej strony, z Wniosku 7.5 wynika, że

\( \displaystyle \frac{1}{(1-\rho x)^{m+1}} =\sum_{n=1}^{\infty}{ { m+n \choose m } \rho^n x^n} \)

i w konsekwencji:

\( \displaystyle [x^n]{R}(x)\ =\ \sum_{i=1}^k{\left(\gamma_{i,1}+ \gamma_{i,2}{n+1\choose 1}+ \ldots+ \gamma_{i,m_i}{n+m_i-1\choose m_i - 1}\right) }\rho_i^n. \)      (12)

Przykład

Opisaną wyżej metodę ogólną zilustrujemy na przykładzie funkcji

\( {R}(x)=\frac{x^2}{1-x-x^2+x^3}. \)

Wielomian \( 1-x-x^2+x^3 \) ma jeden podwójny pierwiastek \( x=1 \) oraz jeden pojedynczy \( x=-1 \). Poznana metoda rozwijania funkcji wymiernej w szereg daje więc

\( {R}(x) =\frac{x^2}{(1-x)^2\cdot(1+x)}=\frac{\alpha}{1-x}+\frac{\beta}{(1-x)^2}+\frac{\gamma}{1+x}. \)

Mnożąc obie strony przez \( (1-x)^2\cdot(1+x) \) otrzymujemy:

\( x^2=\alpha(1-x^2)+\beta(1+x)+\gamma(1-2x+x^2). \)

Dwa wielomiany są równe, gdy współczynniki przy odpowiadających potęgach są sobie równe. Wartości \( \alpha, \beta, \gamma \) można więc wyliczyć z układu równań

\(\left \{ \begin{array} {l} \alpha & +\ \beta & +\ \gamma & = & 0 \\ \alpha & & -\ 2\gamma & = & 0 \\ & -\ \beta & +\ \gamma & = & 1. \end{array} \right. \)

Rozwiązaniem powyższego układu są wartości \( \alpha=-\frac{1}{4},\ \beta=\frac{1}{2},\ \gamma=-\frac{1}{4}. \) W konsekwencji otrzymujemy szereg

\( \begin{align*}{R}(x) & =\sum_{n=0}^{\infty}(-\frac{1}{4}+\frac{1}{2}(n+1) - \frac{1}{4}(-1)^n)x^n \\ & =x^2+x^3+2x^4+2x^5+3x^6+3x^7+4x^8+\ldots. \end{align*} \)

Jeżeli mianownik \( {Q}(x) \) funkcji wymiernej \( {R}(x)=\frac{{P}(x)}{{Q}(x)} \) posiada jedynie pierwiastki jednokrotne, to następne twierdzenie znacznie przyspiesza rozkład \( {R}(x) \) na sumę.

Twierdzenie 7.9

Jeśli \({R}(x)={P}(x)/{Q}(x) \), gdzie \( {Q}(x)=q_0\cdot(1-\rho_1x)\cdot\ldots\cdot(1-\rho_1x) \) i liczby \( \rho_1,\ldots,\rho_l \) są parami różne, to w przypadku gdy \({P}(x) \) jest wielomianem stopnia mniejszego niż \( l \), zachodzi

\( {x^n}{R}(x) =a_1\rho_1^n+\ldots+a_l\rho_l^n, \quad\textrm{dla}\ a_k=\frac{-\rho_k\cdot{P}(1/\rho_k)}{{Q'}(1/\rho_k)}. \)

Przykład

Mianownik \( {Q}(x) \) funkcji wymiernej

\( {R}(x)=\frac{{P}(x)}{{Q}(x)}=\frac{2x}{1-5x-2x^2+24x^3}. \)

ma trzy różne pierwiastki i można \( {R}(x) \) przedstawić jako

\({R}(x)=\frac{2x}{(1+2x)(1-3x)(1-4x)}. \)

Na mocy Twierdzenia 7.9 otrzymujemy więc, że

\({x^n}{R}(x)=-\frac{2}{15}(-2)^n-\frac{6}{5}3^n+\frac{4}{3}4^n. \)

Jak widzieliśmy na przykładzie ciągu Fibonacci'ego, funkcje tworzące mogą być bardzo pomocne przy szukaniu postaci zwartej pewnych ciągów zadanych rekurencyjnie.

Jednorodne, liniowe równanie rekurencyjneto równanie postaci

\(\left \{ \begin{array} {l} r_0 & = & c_0, \\ & \cdots & \\ r_{k-1} & = & c_{k-1}, \\ r_n & = & a_1r_{n-1}+a_2r_{n-2}+\ldots+a_kr_{n-k}\quad\textrm{dla}\ n\geq k, \end{array} \right . \)

gdzie \( c_0,\ldots,c_{k-1},a_1,\ldots,a_k \) są liczbami rzeczywistymi (niezależnymi od parametru rekurencyjnego \( n \)).

Rozważmy najpierw przypadek, gdy \( k=2 \), tzn. równanie postaci

\( \left \{ \begin{array} {l} r_0 & = & c_0, \\ r_1 & = & c_1, \\ r_n & = & a_1r_{n-1}+a_2r_{n-2}\quad\textrm{dla}\ n\geq 2. \end{array} \right . \)      (13)

Przykładem takiego równania była zależność opisująca ciąg Fibonacci'ego. Zastosowanie ostatniej równości z (13) do funkcji tworzącej ciągu \( (r_0,r_1,r_2,\ldots) \) daje:

\( \begin{align*}{R}(x) & =r_0+r_1x+r_2x^2+r_3x^3+\ldots+r_nx^n+\ldots \\ & =c_0+c_1x+(a_1r_1+a_2r_0)x^2+\ldots+(a_1r_{n-1}+a_2r_{n-2})x^n+\ldots \\ & =c_0+(c_1-a_1c_0)x+a_1x{R}(x)+a_2x^2{R}(x), \end{align*} \)

tak więc

\( {R}(x)\ =\ \frac{c_0+(c_1-a_1c_0)x}{1-a_1x-a_2x^2} \)

Dla funkcji \({A}(x)=1-a_1x-a_2x^2=(1-\rho_1x)(1-\rho_2x) \) mogą zajść trzy przypadki:

  • \( \rho_1 \neq \rho_2 \) są różnymi liczbami rzeczywistymi. Wtedy

\( r_n\ =\ \alpha\rho_1^n+\beta\rho_2^n, \)

gdzie \( \alpha \) oraz \( \beta \) są liczbami rzeczywistymi.

  • \( \rho_1 = \rho_2 \). Wtedy

\( r_n\ =\ (\alpha n+\beta)\rho_1^n, \)

gdzie \( \alpha \) oraz \( \beta \) są liczbami rzeczywistymi.

  • \( \bigtriangledown \) Wartości \( \rho_1 \) oraz \( \rho_2 \) są różnymi liczbami zespolonymi. W tym wypadku całe rozumowanie przeprowadzone wcześniej dla liczb rzeczywistych pozostaje w mocy, tyle że dokonywane jest teraz na liczbach zespolonych. Dostajemy więc

\( r_n\ =\ \alpha\rho_1^n+\beta\rho_2^n. \)

gdzie \( \alpha \) oraz \( \beta \) są pewnymi liczbami zespolonymi. Przypadek pierwszy jest więc szczególną sytuacją obecnego przypadku. Może być jednak rozważany bez znajomości liczb zespolonych.

Wracamy teraz do ogólnego, jednorodnego liniowego równania rekurencyjnego. Analogicznie do przypadku, gdy \( k=2 \), otrzymujemy że

\( {R}(x)\ =\ \frac{{P}(x)}{1-a_1x-a_2x^2-\ldots-a_kx^k}, \)

gdzie \( {P}(x) \) jest wielomianem co najwyżej stopnia \( k-1 \), zależnym od wartości \( c_0,\ldots,c_{k-1},a_1,\ldots,a_k \). Korzystając z ogólnej metody rozwijania funkcji wymiernej w szereg, możemy odzyskać wyrazy ciągu \( r_n \), jako współczynniki \( [x^n]{R}(x) \) zgodnie z równaniem (12).

Przykład

Równanie rekurencyjne ma następującą postać

\(\left \{ \begin{array} {l} r_0 & = & 0, \\ r_1 & = & 0, \\ r_2 & = & 1, \\ r_n & = & r_{n-1}+r_{n-2}-r_{n-3}\quad\textrm{dla}\ n\geq 3. \end{array}\right . \)

Ostatnia zależność prowadzi do funkcji tworzącej \( {R}(x) \) spełniającej

\({R}(x)=x^2 + x{R}(x) + x^2{R}(x) - x^3{R}(x). \)

Po dokonaniu prostego wyliczenia dostajemy:

\( {R}(x)=\frac{x^2}{1-x-x^2+x^3}. \)

W przykładzie omawianym przy okazji metody rozwijania funkcji wymiernej w szereg, wyliczyliśmy współczynniki \( [x^n]{R}(x) \), a zatem mamy:

\( r_n=-\frac{1}{4}+\frac{1}{2}(n+1) - \frac{1}{4}(-1)^n\quad\textrm{dla dowolnego}\ n=0,1,2,3,\ldots. \)

Funkcje tworzące w zliczaniu obiektów kombinatorycznych

Obiekty kombinatoryczne często są zadane w sposób rekurencyjny. Tak zadawaliśmy np. drzewa binarne. Nawet, gdy obiekty nie są zadane w sposób rekurencyjny, to ich liczba (uzależniona np. od rozmiaru lub innego parametru) spełnia pewne zależności rekurencyjne. Często rozwikłanie takich zależności i wyprowadzenie wzoru na postać zwartą jest skomplikowane. W tym wykładzie zobaczymy jak w wielu przypadkach funkcje tworzące mogą być pomocne w zliczaniu różnych obiektów kombinatorycznych.

Zliczanie drzew

Drzewo binarne to dowolny obiekt powstały zgodnie z regułami:

  • \( \perp \) jest drzewem binarnym,
  • jeśli \( T_0 \) i \( T_1 \) są drzewami binarnymi to \( T_0\wedge T_1 \) też jest drzewem binarnym.

Węzeł wewnętrzny drzewa binarnego jest zdefiniowany rekurencyjnie:

  • drzewo \( \perp \) nie ma węzłów wewnętrznych,
  • węzłami wewnętrznymi drzewa \( T_0\wedge T_1 \) są wszystkie węzły wewnętrzne drzew \( T_0 \) i \( T_1 \) a także nowy węzeł łączący drzewa \( T_0 \) i \( T_1 \).

Liczba Catalana \( c_n \) to liczba drzew binarnych o \( n \) węzłach wewnętrznych.

Przykład

Drzewa binarne są modelem dla tzw. wyrażeń nawiasowych, czyli termów z jednym działaniem binarnym i jedną zmienną \( x \). Wyrażenia takie są zdefiniowane poprzez:

  • zmienna \( x \) jest wyrażeniem nawiasowym,
  • jeśli \( t_0 \) i \( t_1 \) są wyrażeniami nawiasowymi, to \( (t_0 t_1) \) też jest wyrażeniem nawiasowym.

Węzły wewnętrzne wyrażenia nawiasowego, to podtermy nie będące zmiennymi.

Obserwacja 8.1

Liczby Catalana \( c_n \) spełniają zależność rekurencyjną:

\( \left \{ \begin{array} {l} {rcl} c_0 & = & 1, \\ c_n & = & c_0 c_{n-1}+c_1 c_{n-2}+\ldots+ c_{n-1} c_0,\quad\textrm{dla}\ n\geq 1. \end{array} \right . \)

Dowód

Pojedynczy wierzchołek jest jedynym pełnym drzewem binarnym bez węzłów wewnętrznych, a więc \( c_0=1 \). Każde drzewo o co najmniej jednym wierzchołku wewnętrznym rozkłada się jako \( T_l\wedge T_r \), dla pewnych jednoznacznie wyznaczonych poddrzew \( T_l,T_r \). Poddrzewo \( T_l \) nazywamy lewym, a \( T_r \) prawym podrzewem drzewa \( T_l\wedge T_r \).

Niech teraz

  • \({T}_n \) będzie rodziną wszystkich drzew binarnych o \( n \) węzłach wewnętrznych, oraz
  • \( {T}_{n_l,n_r} \) będzie rodziną wszystkich drzew, których lewe i prawe poddrzewo mają odpowiednio \( n_l \) oraz \( n_r \) węzłów wewnętrznych.

Zachodzi więc:

\( \vert{T}_{n_l,n_r}\vert=\vert {T}_{n_l}\times {T}_{n_r}\vert=\vert {T}_{n_l}\vert\cdot\vert {T}_{n_r}\vert=c_{n_l}\cdot c_{n_r}. \)

Ponadto, jeśli drzewo o \( n \) wierzchołkach wewnętrznych posiada lewe poddrzewo o \( n_l \) wierzchołkach wewnętrznych oraz prawe poddrzewo o \( n_r \) węzłów wewnętrznych to \( n=n_l+n_r+1 \). Zatem rodzina wszystkich drzew o \( n \) wewnętrznych wierzchołkach rozbija się na rozłączną sumę

\( {T}_n={T}_{0,n-1}\cup{T}_{1,n-2}\cup\ldots\cup{T}_{n-1,0}. \)

W konsekwencji otrzymujemy:

\( c_n=c_0 c_{n-1}+c_1 c_{n-2}+\ldots+ c_{n-1} c_0. \)

Wniosek 8.2

Funkcja tworząca \( {C}(x)=c_0+c_1x+c_2x^2+\ldots \) dla ciągu liczb Catalana spełnia

\( \displaystyle {C}(x)=\frac{1-\sqrt{1-4x}}{2x}. \)

Dowód

Używając zależności rekurencyjnej z Obserwacji 8.1 otrzymujemy:

\( \begin{align*} {C}(x) & =\sum_{n=0}^{\infty}c_nx^n \\ & =1+\sum_{n=1}^{\infty}(c_0 c_{n-1}+c_1 c_{n-2}+\ldots+ c_{n-1} c_0)x^n \\ & =1+x {C}(x) {C}(x), \end{align*} \)

skąd natychmiast:

\( {C}(x)=\frac{1\pm\sqrt{1-4x}}{2x}. \)

Warunek \( {C}(0)=c_0=1 \) eliminuje rozwiązanie \( {C}(x)\cdot 2x = 1+\sqrt{1-4x} \), a zatem

\( {C}(x)=\frac{1-\sqrt{1-4x}}{2x}. \)

Twierdzenie 8.3

Liczby Catalana wyrażają się wzorem

\( c_n=\frac{1}{n+1}{2n \choose n}. \)

Dowód

Twierdzenie o rozwinięciu funkcji \( (1+x)^y \) w szereg daje

\( \displaystyle \sqrt{1-4x}\ =\ \sum_{n=0}^{\infty}{1/2 \choose n}(-4x)^n. \)

Podstawiając powyższe rozwinięcie \( \sqrt{1-4x} \) do wzoru na \({C}(x) \) otrzymanego we Wniosku 8.2 po dokonaniu kilku prostych przekształceń otrzymujemy:

\( \displaystyle {C}(x) =\frac{1-\sqrt{1-4x}}{2x} =\sum_{n=0}^{\infty}\frac{(1-1/2)\cdot\ldots\cdot(n-1/2)}{(n+1)!}4^nx^n, \)

czyli

\( c_n = \frac{(1-1/2)\cdot\ldots\cdot(n-1/2)}{(n+1)!}4^n \)

Iloczyn \( (1-1/2)\cdot\ldots\cdot(n-1/2) \) po wymnożeniu przez \( 2^n \) przyjmuje postać

\( \displaystyle \prod_{k=1}^n(2k-1)=1\cdot3\cdot\ldots\cdot(2n-3)\cdot(2n-1). \)

Mnożąc więc teraz ten iloczyn \( 2^nn! \) otrzymujemy:

\( \displaystyle 2^n n!\prod_{k=1}^n(2k-1) =1\cdot2\cdot3\cdot\ldots\cdot(2n-2)\cdot(2n-1)\cdot2n=(2n)!. \)

Tym samym dostajemy

\( c_n=\frac{1}{n+1}{2n \choose n}. \)

Używając ostatniego Twierdzenia, można określic asymptotyczne zachowanie liczb Catalana.

Wniosek 8.4

Asymptotyczne zachowanie liczb Catalana dane jest przez

\( \displaystyle c_n\sim\frac{4^{n+1}}{4(n+1)\sqrt{\pi n}}, \)

tzn.

\( \displaystyle \lim_{n\mapsto \infty} \frac{c_n\cdot 4^{n+1}}{4(n+1)\sqrt{\pi n}}=1. \)

W praktyce często pojawia się konieczność zliczania drzew z uwagi na ich wysokość. Odpowiada to zliczaniu termów z uwagi na zagłębienie.

Wysokość drzewa określona jest rekurencyjnie jako:

  • \( \mbox{\sf h}(\perp)=0 \),
  • \( \mbox{\sf h}(T_0\wedge T_1)=\max(\mbox{\sf h}(T_0),\mbox{\sf h}(T_1) )+1 \).

Obserwacja 8.5

Liczba \( t_h \) drzew binarnych o wysokości co najwyżej \( h \) wyraża się równaniem rekurencyjnym

\( \left \{ \begin{array} {l} {rcl} t_0 & = & 1, \\ t_h & = & t_{h-1}^2+1\ \textrm{dla}\ h>1. \end{array} \right . \)

Dowód

Niech \( {T}_h \) będzie rodziną pełnych drzew binarnych o wysokości co najwyżej \( h \). Wtedy \( t_h=\vert {T}_h\vert \). Oczywiście \( {T}_0={\{ {\perp} \}\ } \), a więc \( t_0=1 \). Jedynym drzewem w \( {T}_h \), które nie jest rozkładalne na lewe i prawe poddrzewo jest drzewo \( \perp \). Każde więc drzewo \( T_0\in {T}_h-{\{ {\perp} \}\ } \) jest postaci \( T_0=T_l\wedge T_r \), gdzie poddrzewa \( T_l \) oraz \( T_r \) są wysokości co najwyżej \( h-1 \), tzn. \( T_l,T_r\in {T}_{h-1} \). Dowolne więc drzewo z \( {T}_h \) wyznacza jednoznacznie parę drzew z \( {T}_{h-1} \). Odwzorowanie to jest bijekcją, więc

\( \vert {T}_h\vert=\vert {T}_{h-1}\vert\cdot\vert {T}_{h-1}\vert+1, \)

skąd natychmiast dostajemy naszą zależność rekurencyjną.

Wniosek 8.6

Dla \( h\geq 1 \) mamy:

\( 2^{2^{h-1}}\leq t_h \leq 2^{2^{h}-1}, \)

Dowód

Dowód przeprowadzimy indukcyjnie ze względu na \( h \). Dla \( h=1 \) mamy \( t_1=t_0^2+1= 2 \), oraz \( 2^{2^{h-1}}= 2=2^{2^{h}-1} \) Niech więc \( h>1 \) i załóżmy dla indukcji, że

\( 2^{2^{h-2}}\leq t_{h-1}\leq 2^{2^{h-1}-1} \)

Wtedy:

\( \left(2^{2^{h-2}}\right)^2+1 \leq t_{h-1}^2+1 \leq \left(2^{2^{h-1}-1}\right)^2+1 \)

skąd natychmiast:

\( 2^{2^{h-1}}\leq \left(2^{2^{h-2}}\right)^2+1 \leq t_{h} \leq \left(2^{2^{h-1}-1}\right)^2+1 =2^{2^{h}-2}+1 =\frac{1}{4}2^{2^{h}}+1 \leq 2^{2^{h}-1} \)

Zliczanie podziałów liczby na sumy

Przypomnijmy, że przez \( P(n,k) \) oznaczyliśmy liczbę podziałów liczby \( n \) na dokładnie \( k \) składników. Wtedy \( \displaystyle p_n = \sum_{k=1}^n P(n,k) \) oznacza liczbę wszystkich możliwych podziałów liczby \( n \) na sumę.

Przykład

Policzmy wszystkie sposoby przedstawienia liczby \( 6 \) za pomocą sumy dodatnich liczb naturalnych.

\( 6=a_0+a_1+\ldots+a_{k-1}, \)

gdzie \( k \) oraz \( \displaystyle a_0\leq a_1 \leq \ldots \leq a_{k-1} \) są dodatnimi liczbami naturalnymi. Oto one

\( \begin{array} {rclp{2cm}rcl} 6 & = & 1+1+1+1+1+1 & & 6 & = & 2+2+2 \\ 6 & = & 1+1+1+1+2 & & 6 & = & 1+5 \\ 6 & = & 1+1+1+3 & & 6 & = & 2+4 \\ 6 & = & 1+1+2+2 & & 6 & = & 3+3 \\ 6 & = & 1+1+4 & & 6 & = & 6 \\ 6 & = & 1+2+3 & & & & \end{array} \)

tzn. \( p_6 =11 \).

Funkcja tworząca podziału liczby na sumy to szereg

\( {P}(x)=p_0+p_1x+p_2x^2+p_3x^3+\ldots \)

Ponadto funkcja tworząca podziału liczby na sumy złożone wyłącznie z liczb \( k_1, k_2, \ldots, k_m \) oznaczać będziemy przez

\( {P_{k_1,k_2,\ldots, k_m}}(x)=p'_0+p'_1x+p'_2x^2+p'_3x^3+\ldots, \)

gdzie \( p'_n \) to liczba podziałów liczby \( n \) na sumę \( n=a_0+a_1+\ldots+a_{k-1}, \) gdzie \( k\in\mathbb{N}-{\{ {0} \}\ } \) oraz \( a_0,a_1, \ldots, a_{k-1}\in{\{ {k_1, k_2, \ldots, k_m} \}\ } \).

Przykład

Pierwszy przykład w wykładzie o funkcjach tworzących dotyczył możliwości rozmiany kwoty za pomocą jednocentówek, pięciocentówek, dziesięciocentówek, ćwierćdolarówek oraz półdolarówek. Rozważaliśmy więc tam funkcję tworzącą \( {P_{1,5,10,25,50}}(x) \).

Obserwacja 8.7

\( {P_k}(x)=1+x^k+x^{2k}+x^{3k}+\ldots=\frac{1}{1-x^k}. \)

Dowód

Niech \( p_{k,n} \) będzie liczbą rozkładów liczby \( n \) na sumę złożoną wyłącznie ze składników równych \( k \). Oczywiście jeśli \( k \) dzieli \( n \), to istnieje dokładnie jedna suma \( n=k+k+\dots+k \). Jeśli natomiast \( n \) nie jest podzielne przez \( k \), to taki rozkład nie istnieje, tak więc

\( p_{k,n}=\lbrace\begin{array} {ll} 1, & \textrm{jeśli}\ n=ak\ \textrm{dla}\ a=0,1,2,\ldots \\ 0, & \textrm{w przeciwnym wypadku.} \end{array} . \)

Otrzymujemy w ten sposób

\( \begin{align*} {P_k}(x) & =p_{k,0}+p_{k,1}x+p_{k,2}x^2+\ldots \\ & =1+x^k+x^{2k}+x^{3k}+\ldots, \end{align*} \)

która to funkcja zwija się do

\( {P_k}(x)\ =\ \frac{1}{1-x^k}. \)

Obserwacja 8.8

\( {P_{k_1,k_2,\ldots, k_m}}(x)\ =\ {P_{k_1}}(x)\cdot {P_{k_2}}(x)\cdot\ldots\cdot {P_{k_m}}(x) =\ \frac{1}{1-x^{k_1}}\cdot\frac{1}{1-x^{k_2}}\cdot\ldots\cdot\frac{1}{1-x^{k_m}}. \)

Dowód

Załóżmy, że splot

\( (1+x^{k_1}+x^{2k_1}+\ldots)\cdot (1+x^{k_2}+x^{2k_2}+\ldots)\cdot\ \cdot(1+x^{k_m}+x^{2k_m}+\ldots) \)

jest przedstawiony jako szereg \( p'_0+p'_1x+p'_2x^2+p'_3x^3+\ldots \). Wtedy oczywiście \( p'_nx^n \) jest sumą wszystkich jednomianów postaci \( x^{j_1k_{l_1}}\cdot x^{j_2k_{l_2}}\cdot\ldots\cdot x^{j_sk_{l_s}} \), dla których \( x^n=x^{j_1k_{l_1}}\cdot x^{j_2k_{l_2}}\cdot\ldots\cdot x^{j_sk_{l_s}} \). Współczynnik \( p'_n \) więc jest liczbą wszystkich ciągów \( s,j_1,\ldots,j_s,l_1,\ldots,l_s \) takich, że

\( \begin{align*} n & =j_1k_{l_1}+j_2k_{l_ 2}+\ldots+j_sk_{l_s} \\ & =(k_{l_1}+\ldots+k_{l_1})+(k_{l_2}+\ldots+k_{l_2})+\ldots+(k_{l_s}+\ldots+k_{l_s}), \end{align*} \)

tzn. \( p'_n \) jest liczbą rozkładów liczby \( n \) na sumy o składnikach ze zbioru \( {\{ {k_1, k_2,\ldots,k_n} \}\ } \), a zatem \( p'_n \) jest \( n \)-tym współczynnikiem funkcji tworzącej \( {P_{k_1,k_2,\ldots, k_m}}(x) \).

Przykład

Niech \( {P_{1,2,3,4}}(x)=p''_0+p''_1x+p''_2x^2+\ldots \). Współczynnik \( p''_6 \) to liczba iloczynów postaci \( x^{j_1k_{l_1}}\cdot x^{j_2k_{l_2}}\cdot\ldots\cdot x^{j_sk_{l_s}} \) równych \( x^6 \), a zarazem liczba podziałów liczby \( 6 \) na sumy złożone ze składników \( 1,2,3 \) oraz \( 4 \). Każdemu iloczynowi odpowiada jeden podział. Na przykład \( x^{1\cdot4}\cdot x^{2\cdot1} \), gdzie \( x^{1\cdot4} \) pochodzi z \( {P_1}(x) \) oraz \( x^{2\cdot1} \) pochodzi z \( {P_2}(x) \), odpowiada sumie \( 6=1+1+1+1+2 \). Poniżej zaznaczono w funkcji tworzącej \( {P_{1,2,3,4}}(x) \) jednomiany \( \mathbf{x^{(1+1+1+1)}} \) oraz \( \mathbf{x^2} \)

\( \begin{array} {l} {P_{1,2,3,4}}(x)\ =\ 1+x+2x^2+3x^3+4x^4+6x^5+7x^6+\ldots \\ = \ (1 +x^1 +x^{(1+1)} +x^{(1+1+1)} +\mathbf{{x^{(1+1+1+1)}}} +x^{(1+1+1+1+1)} +x^{(1+1+1+1+1+1)} +\ldots) \\ = \cdot(1 +\mathbf{{x^2}} +x^{(2+2)} +x^{(2+2+2)} +x^{(2+2+2+2)} +x^{(2+2+2+2+2)} +\ldots) \\ = \cdot(1 +x^3 +x^{(3+3)} +x^{(3+3+3)} +x^{(3+3+3+3)} +x^{(3+3+3+3+3)} +\ldots) \\ = \cdot(1 +x^4 +x^{(4+4)} +x^{(4+4+4)} +x^{(4+4+4+4)} +x^{(4+4+4+4+4)} +\ldots) \end{array} \)

Odpowiadają one zaznaczonemu rozkładowi na liście wszystkich rozkładów liczby \( 6 \):

\( \begin{array} {lp{2cm}l} 6\ =\ 1+1+1+1+1+1, & & 6\ =\ 1+2+3, \\ \mathbf{\underline{6\ =\ 1+1+1+1+2}}, & & 6\ =\ 2+2+2, \\ 6\ =\ 1+1+1+3, & & 6\ =\ 3+3. \\ 6\ =\ 1+1+2+2, & & \end{array} \)

Przykład

W funkcji tworzącej

\( {P_{1,5,10,25,50}}(x)=p'''_0+p'''_1x+p'''_2x^2+\ldots. \)

współczynnik \( p'''_n \) jest liczbą podziałów liczby \( n \) na sumy postaci

\( n=1+\ldots+1+5+\ldots+5+10+\ldots+10+25+\ldots+25+50+\ldots+50, \)

czyli liczbą sposobów na jakie można rozmienić \( n \) centów przy użyciu jednocentówek, pięciocentówek, dziesięciocentówek, ćwierćdolarówek oraz półdolarówek. Otrzymaliśmy więc rozwiązanie przykładu o rozmienianiu monet. Funkcja tworząca jest w poznanej już postaci równej

\( {P_{1,5,10,25,50}}(x)=\frac{1}{1-x}\cdot\frac{1}{1-x^5}\cdot\frac{1}{1-x^{10}}\cdot\frac{1}{1-x^{25}}\cdot\frac{1}{1-x^{50}}. \)

Widzieliśmy już, że ogólnie

\( {P_{k_1k_2\ldots k_m}}(x)\ =\ \frac{1}{1-x^{k_1}}\cdot\frac{1}{1-x^{k_2}}\cdot\ldots\cdot\frac{1}{1-x^{k_m}}. \)

Twierdzenie 8.9[L. Euler]

Funkcja tworząca podziału liczby na sumy jest przedstawialna jako

\( \displaystyle {P}(x)=\prod_{k=1}^{\infty}\frac{1}{1-x^k} =\frac{1}{1-x}\cdot\frac{1}{1-x^2}\cdot\ldots\cdot\frac{1}{1-x^n}\cdot\ldots \)

Dowód

Niech \( {P_{(m)}}(x)= {P_{1,2,\ldots,m}}(x) \) rozwija się w szereg \( \displaystyle \sum_{n=0}^\infty p_{(m)n}x^n \), a formalny nieskończony splot

\( \displaystyle \prod_{k=1}^{\infty} {P_k}(x) = \prod_{k=1}^{\infty}\frac{1}{1-x^k} = \prod_{k=1}^{\infty}(1+x^k+x^{2k}+x^{3k}+\ldots) \)

zwija się do szeregu formalnego

\( {F}(x)=f_0+f_1x+f_2x^2+f_3x^3+\ldots \)

Oczywiście przy liczeniu \( f_n \) z czynników \( (1+x^k+x^{2k}+x^{3k}+\ldots) \), gdzie \( k>n \), jedynie jednomian \( 1 \) odgrywa rolę, gdyż jednomiany \( x^{lk} \) z \( l\geq1 \) dają zbyt duże potęgi. A zatem \( f_n=p_{(n)n} \). Ponieważ żaden składnik w rozkładzie \( n=a_0+a_1+\ldots+a_s \) nie może przekraczać \( n \), mamy \( p_n=p_{(n)n} \), skąd natychmiast \( f_n=p_n \), co kończy dowód.

Funkcje tworzące dla liczb Stirlinga oraz liczb Bella

Twierdzenie 8.10

Funkcja tworząca

\( {s_n}(x)=\left[\begin{array} {c}n \\ 0\end{array} \right]+\left[\begin{array} {c}n \\ 1\end{array} \right]x+\left[\begin{array} {c}n \\ 2\end{array}\right ]x^2+\left[\begin{array} {c}n \\ 3\end{array} \right]x^3+\ldots, \)

dla cyklowych liczb Stirlinga \( [\begin{array} {c}n \\ m\end{array} ] \) ma postać zwartą

\( {s_n}(x)=x^{\overline{n}}=x\cdot(x+1)\cdot(x+n-1). \)

Dowód

Cyklowe liczby Stirlinga spełniają następującą zależność rekurencyjną

\( \begin{array} {rcll} \left[\begin{array} {c}n \\ 0\end{array} \right] & = & 0, & \textrm{dla}\ n>0, \\ \left [\begin{array} {c}n \\ k\end{array} \right] & = & 0, & \textrm{dla}\ k < n, \\ \left[\begin{array} {c}k \\ k\end{array}\right ] & = & 1, & \textrm{dla}\ k\geq0, \\ \left[\begin{array} {c}n \\ k\end{array} \right] & = & (n-1)\left[\begin{array} {c}n-1 \\ k\end{array} \right]+\left[\begin{array} {c}n-1 \\ k-1\end{array} \right], & \textrm{dla}\ 0>k>n. \end{array} \)

Po podstawieniu tych zależności w rozwinięciu funkcji tworzącej \( {s_k}(x) \) otrzymujemy

\( {s_n}(x)=(n-1) {s_{n-1}}(x)+x {s_{n-1}}(x)=(x+n-1) {s_{n-1}}(x). \)

Iterując powyższą równość otrzymujemy:

\( {s_n}{x}=(z+n-1)\cdot(z+n-2)\cdot\ldots\cdot(x+1)\cdot x= x^{\overline{n}}, \)

co kończy dowód.

Twierdzenie 8.11

Funkcja tworząca

\( \displaystyle {S_k}(x)=\left\{\begin{array}{c}k \\ k\end{array} \right\} +\left\{\begin{array}{c}k+1 \\ k\end{array}\right \}x+\left\{\begin{array}{c}k+2 \\ k\end{array}\right \}x^2+\left\{\begin{array}{c}k+3 \\ k\end{array}\right \}x^3+\ldots \)

dla podziałowych liczb Stirlinga \( \left\{\begin{array}{c}n \\ m\end{array} \right\} \) ma postać zwartą

\( {S_k}(x)=\frac{1}{(1-x)\cdot(1-2x)\cdot\ldots\cdot(1-kx)}. \)

Dowód

Podziałowe liczby Stirlinga spełniają następującą zależność rekurencyjną

\( \begin{array} {rcll} \left\{\begin{array}{c}n \\ 0\end{array} \right\} & = & 0, & \textrm{dla}\ n>0, \\ \left\{\begin{array}{c}k \\ k\end{array} \right\} & = & 1, & \textrm{dla}\ k\geq0, \\ \left\{\begin{array}{c}n+k \\ k\end{array} \right\} & = & k\left\{\begin{array}{c}n+k-1 \\ k\end{array} \right\}+\left\{\begin{array}{c}n+k-1 \\ k-1\end{array} \right\}, & \textrm{dla}\ n>1,\ k>0. \end{array} \)

Po podstawieniu tych zależności w rozwinięciu funkcji tworzącej \( {S_k}(x) \) otrzymujemy:

\( {S_k}(x)=kx {S_k}(x)+ {S_{k-1}}(x), \)

skąd natychmiast:

\( {S_k}(x)=\frac{1}{1-kx} {S_{k-1}}(x). \)

Iterując powyższą równość otrzymujemy:

\( {S_k}(x)=\frac{1}{(1-kx)\cdot(1-(k-1)x)\cdot\ldots\cdot(1-x)}, \)

co kończy dowód.

Czasem, dla liczenia współczynników funkcji tworzącej wygodnie użyć jest rachunku różniczkowego i rozwinięcia funkcji w szereg Taylora. Dlatego dla ciągu \( (g_0,g_1,g_2,g_3,\ldots) \) obok funkcji tworzącej

\( \displaystyle {G}(x)=\sum_{n=0}^{\infty}{g_nx^n}=g_0+g_1x+g_2x^2+g_3x^3+g_4x^4+\ldots. \)

rozważa się też tzw. wykładniczą funkcję tworzącą, tzn. wyrażenie postaci

\( \displaystyle \sum_{n=0}^{\infty}{\frac{g_n}{n!}x^n} =\frac{g_0}{0!}+\frac{g_1}{1!}x+\frac{g_2}{2!}x^2+\frac{g_3}{3!}x^3+\frac{g_4}{4!}x^4+\ldots. \)

Twierdzenie 8.12

Wykładnicza funkcja tworząca

\( \displaystyle {B}(x)=\sum_{n=0}^{\infty}\frac{B_n}{n!}x^n=\frac{B_0}{0!}+\frac{B_1}{1!}x+\frac{B_2}{2!}x^2+\frac{B_3}{3!}x^3+\ldots \)

dla liczb Bell'a \( B_0,B_1,B_2,B_3,\ldots \) ma postać zwartą

\( {B}(x)=e^{(e^x-1)}. \)

Dowód

Liczby Bella spełniają następującą zależność rekurencyjną

\( \begin{array} {rcl} B_0 & = & 1, \\ B_{n+1} & = B_0+{n \choose 1}B_1+{n \choose 2}B_2+\ldots+{n \choose n}B_n,\quad\textrm{dla}\ n>0. \end{array} \)

Pochodna szeregu \( \displaystyle {B}(x)=\sum_{n=0}^{\infty}\frac{B_n}{n!}x^n \) to

\( \displaystyle {B'}(x) =\sum_{n=1}^{\infty} \frac{n B_n}{n!}x^{n-1} = \sum_{n=0}^{\infty}\frac{B_n}{n!}x^{n}. \)

Dzieląc obustronnie przez \( n! \) zależność rekurencyjną dla liczb Bella otrzymujemy

\( \frac{1}{n!}\cdot B_{n+1} = \frac{1}{0!}\cdot \frac{1}{n!}\cdot B_0+\frac{1}{1!}\cdot \frac{1}{(n-1)!}\cdot B_1+\ldots+\frac{1}{n!}\cdot\frac{1}{0!} \cdot B_n \)

Prawa strona tej równości jest współczynnikiem przy \( x^n \) splotu funkcji \( e^x \) z \( {B}(x) \). Otrzymujemy więc równość

\( {B'}(x)=e^x {B}(x), \)      (2)

której rozwiązaniem przyjmującym wartość \( {B}(0)=B_0=1 \) jest

\( {B}(x)=e^{(e^x-1)}. \)

Faktycznie, po podstawieniu rozwiązania do równości (2) uzyskujemy:

\( {B'}(x)=(e^{(e^x-1)})'=e^xe^{(e^x-1)}=e^x {B}(x). \)

Asymptotyka

Widzieliśmy już, że wskazanie postaci zwartej dla ciągu zadanego równaniem rekurencyjnym jest często zadaniem niełatwym. Do tej pory nie jest znana zwarta postać wielu równań. Na szczęście często jesteśmy w sytuacji, w której zadowoli nas przybliżenie odpowiedzi. Wróćmy do rozważanej wielokrotnie sumy kolejnych kwadratów \( \displaystyle \sum_{i=0}^ni^2 \). Fakt, że jest to wielomian \( 3 \)-go stopnia zmiennej \( n \), to już wartościowa informacja, często zupełnie wystarczająca. Spotkaliśmy się już nie raz z oszacowaniami poprzez zwykłe nierówności. To podejście często wymaga użycia narzędzi z analizy matematycznej, w szczególności znajdowania ekstremum funkcji.

Przykład

Silnię liczby naturalnej można trywialnie oszacować przez \( n!=1\cdot\ldots\cdot n\leq n^n \). Przyjrzyjmy się delikatniejszemu oszacowaniu wskazującemu także dolne ograniczenie na \( n! \).
Najpierw zauważmy, że

\( \displaystyle (n!)^2=(1\cdot\ldots\cdot n)(n\cdot\ldots\cdot1)=\prod_{i=1}^ni(n+1-i). \)

Potraktujmy \( i(n+1-i)=\frac{1}{4}(n+1)^2-(i-\frac{1}{2}(n+1))^2 \) jako wielomian drugiego stopnia zmiennej \( i \). Łatwo zauważyć, że dla \( i\in[1,\ldots,n] \) przybiera on najmniejszą wartość w punkcie \( i=1 \), a największą w punkcie \( i=\frac{1}{2}(n+1) \). Zatem dla \( i\in{\{ {1,\ldots,n} \}\ } \) mamy \( n\leq i(n+1-i)\leq\frac{1}{4}(n+1)^2 \) i dalej

\( n^n\leq(n!)^2\leq(\frac{1}{4}(n+1)^2)^n, \)

czyli

\( n^{\frac{n}{2}}\leq n!\leq(\frac{n+1}{2})^n. \)

Nierówności w oszacowaniach bywają niepotrzebnie krępujące. Zaś wyniki w ten sposób otrzymane, często skupiają naszą uwagę na zbędnych i czasem nieinteresujących detalach. Często bowiem wystarczają nam przybliżone, asymptotyczne oszacowania ciągów lub ogólniej funkcji. Opisują one zachowanie funkcji wraz ze wzrostem argumentu. Podczas przekształceń rachunkowych celowo ograniczamy naszą wiedzę o funkcji, dzięki czemu łatwiej jest rachować i otrzymać zadowalającą postać przybliżającą.

W oszacowaniach asymptotycznych posługujemy się ogólnie przyjętymi symbolami opisującymi asymptotyczne zachowanie jednej funkcji wobec drugiej. Najpowszechniej używany jest symbol \( O \) przydatny w analizie górnej granicy asymptotycznej. Po raz pierwszy tego symbolu użył niemiecki teorio-liczbowiec Paul Bachmann w 1894. Prace Edmunda Landau'a (także niemieckiego teorio-liczbowca) spopularyzowały tę notację, stąd czasami \( O \) jest nazywany symbolem Landau'a. Notację asymptotyczną wprowadzimy jedynie dla funkcji zdefiniowanych na zbiorze \( \mathbb{N} \) (lub jego podzbiorach postaci \( \mathbb{N}-\mathbb{Z}_k \)) o wartościach w \( \mathbb{R} \).

Notacja asymptotyczna

Funkcja asymptotycznie niewiększa od funkcji \( g(n) \) to taka funkcja \( f: \mathbb{N} \longrightarrow \mathbb{R} \), dla której istnieją \( c>0 \) i \( n_0\in\mathbb{N} \), że \( \vert f(n)\vert\leq c\cdot\vert g(n)\vert \) dla wszystkich \( n\geq n_0 \).
Będziemy też często mówić, że \( \vert f(n)\vert\leq c\cdot\vert g(n)\vert \) zachodzi dla prawie wszystkich liczb naturalnych \( n \).
Zbiór funkcji asymptotycznie niewiększych niż \( g(n) \) oznaczamy przez \( O(g(n)) \).

Ponieważ \( O(g(n)) \) jest zbiorem funkcji, poprawnie powinniśmy zapisywać \( f(n)\in O(g(n)) \), gdy \( f \) spełnia warunek podany w definicji. Jednak przyjęło się zapisywać \( f(n)=O(g(n)) \). Jest to pewne nadużycie symbolu równości \( = \). Jednak tradycja, a jak się niebawem okaże, również i wygoda użycia, są wystarczającym usprawiedliwieniem dla tego nadużycia. W związku z tym napis \( f(n)=O(g(n)) \) czytamy "\( f(n) \) jest \( O \)-duże od \( g(n) \)".

Przykład

  • \( O(1) \), to zbiór funkcji ograniczonych.

Istotnie warunek \( \vert f(n)\vert\leq c \) zachodzący dla prawie wszystkich \( n \) łatwo jest, poprzez zamianę stałej \( c \) na inną \( c' \), sprowadzić do warunku \( \vert f(n)\vert\leq c' \) zachodzącego już dla wszystkich \( n\in\mathbb{N} \), jako że skończenie wiele wartości \( \vert f(n)\vert \) dla początkowych \( n \) daje się ograniczyć przez stałą.

    • każda funkcja stała jest \( O(1) \) np. \( f(n)=1000 \) jest \( O(1) \), bo \( \vert f(n)\vert=1000\leq1000 \) dla dowolnego \( n \),
    • \( (-1)^n=O(1) \), bo \( \vert (-1)^n\vert\leq 1 \) dla dowolnego \( n \),
    • \( \frac{1}{n}=O(1) \), bo \( \frac{1}{n}\leq 1 \) dla dowolnego \( n\geq 1 \),
    • \( \frac{\log{n}}{n}=O(1) \), bo \( \log{n} < n \) dla \( n\geq 1 \), zatem \( \frac{\log{n}}{n}\leq 1 \) dla \( n\geq 1 \).
  • \( O(n) \) to zbiór funkcji ograniczonych przez funkcję liniową:
    • wszystkie funkcje \( O(1) \) są też \( O(n) \),
    • \( 10n+25=O(n) \), bo \( \vert 10n+25\vert\leq 11n \) dla \( n\geq 25 \),
    • \( 2n+3\log{n}-100=O(n) \), bo \( \vert 2n+3\log{n}-100\vert\leq 3n \) dla dowolnego \( n \).
  • \( O(n^2) \)
    • \( 3n^2+10n-1=O(n^2) \),
    • \( \frac{n(n+1)}{2}=O(n^2) \),
    • \( 3\log{n}+2=O(n^2) \) (funkcja ta jest także \( O(n) \) i \( O(\log{n}) \)).
  • \( O(2^n) \)
    • \( 3\cdot2^n+n=O(2^n) \), bo \( n\leq 2^n \), a zatem \( 3\cdot2^n+n\leq 4\cdot2^n \) dla dowolnego \( n \).

Więcej przykładów i ogólniejszych obserwacji poznamy po prezentacji pozostałych pojęć i symboli notacji asymptotycznej.

Funkcja asymptotycznie niemniejsza od funkcji \( g(n) \) to taka funkcja \( f: \mathbb{N} \longrightarrow \mathbb{R} \), dla której istnieją \( c>0 \) i \( n_0\in\mathbb{N} \), że \( c\cdot\vert g(n)\vert\leq \vert f(n)\vert \) dla wszystkich \( n\geq n_0 \).
Zbiór funkcji asymptotycznie niemniejszych niż \( g(n) \) oznaczamy przez \( \Omega(g(n)) \).

Funkcja asymptotycznie podobna do funkcji \( g(n) \) to taka funkcja \( f: \mathbb{N} \longrightarrow \mathbb{R} \), dla której istnieją \( c_0,c_1>0 \) i \( n_0\in\mathbb{N} \), że \( c_0\cdot\vert g(n)\vert\leq\vert f(n)\vert\leq c_1\cdot\vert g(n)\vert \) dla wszystkich \( n\geq n_0 \).
Zbiór funkcji asymptotycznie podobnych do \( g(n) \) oznaczamy przez \( \Theta(g(n)) \). A zatem \( \Theta(g(n))= O(g(n)) \cap \Omega(g(n)) \).

Pozostałe dwa symbole: \( o,\omega \) są rzadziej stosowane w informatyce. Wyznaczają one funkcje asymptotycznie, ściśle mniejsze [większe] od podanej funkcji.

Funkcja asymptotycznie mniejsza od funkcji \( g(n) \) to taka funkcja \( f: \mathbb{N} \longrightarrow \mathbb{R} \), że dla każdego \( c>0 \) istnieje \( n_0\in\mathbb{N} \), przy którym \( \vert f(n)\vert < c\cdot\vert g(n)\vert \) dla wszystkich \( n\geq n_0 \).
Zbiór funkcji asymptotycznie mniejszych niż \( g(n) \) oznaczamy przez \( o(g(n)) \). A zatem \( f(n)= o(g(n)) \) wtedy i tylko wtedy, gdy \( \displaystyle \lim_{n \to \infty} \frac{f(n)}{g(n)}=0 \).

Funkcja asymptotycznie większa od funkcji \( g(n) \) to taka funkcja \( f: \mathbb{N} \longrightarrow \mathbb{R} \), że dla każdego \( c>0 \) istnieje \( n_0\in\mathbb{N} \), przy którym \( c\cdot\vert g(n)\vert < \vert f(n)\vert \) dla wszystkich \( n\geq n_0 \).
Zbiór funkcji asymptotycznie większych niż \( g(n) \) oznaczamy przez \( \omega(g(n)) \). A zatem \( f(n)=\omega(g(n)) \) wtedy i tylko wtedy, gdy \( \displaystyle \lim_{n \to \infty} \frac{g(n)}{f(n)}=0 \).

Oto kilka prostych faktów wiążących kolejne symbole asymptotyczne. Pozostawiamy je bez dowodu.

Obserwacja 9.1

Dla funkcji \( f,g: \mathbb{N} \longrightarrow \mathbb{R} \) mamy:

  • jeśli \( f(n)=O(g(n)) \), \( g(n)=O(h(n)) \), to \( f(n)=O(h(n)) \),
  • jeśli \( f(n)=\Omega(g(n)) \), \( g(n)=\Omega(h(n)) \), to \( f(n)=\Omega(h(n)) \),
  • jeśli \( f(n)=o(g(n)) \), \( g(n)=o(h(n)) \), to \( f(n)=o(h(n)) \),
  • jeśli \( f(n)=\omega(g(n)) \), \( g(n)=\omega(h(n)) \), to \( f(n)=\omega(h(n)) \),
  • \( f(n)=\Theta(g(n)) \) wtedy i tylko wtedy, gdy \( g(n)=\Theta(f(n)) \),
  • \( f(n)=O(g(n)) \) wtedy i tylko wtedy, gdy \( g(n)=\Omega(f(n)) \),
  • \( f(n)=o(g(n)) \) wtedy i tylko wtedy, gdy \( g(n)=\omega(f(n)) \).

Symbole asymptotyczne mogą pojawić się w złożonych wyrażeniach arytmetycznych. Dla przykładu wspomnijmy jeszcze raz sumę kolejnych kwadratów: \( \displaystyle \sum_{i=0}^n i^2=\frac{1}{3}n^3+\frac{1}{2}n^2+\frac{1}{6}n \). Możemy teraz napisać \( \displaystyle \sum_{i=0}^ni^2=O(n^3) \), ale także \( \displaystyle \sum_{i=0}^ni^2=\frac{1}{3}n^2+O(n^2) \), co formalnie oznacza \( \displaystyle \sum_{i=0}^ni^2-\frac{1}{3}n^3\in O(n^2) \). Co więcej okazuje się, że symbol \( = \) może pełnić nie tylko rolę \( \in \), ale czasami także rolę \( \subseteq \). Na przykład wyrażenie

\( \frac{1}{3}n^3+O(n^2)=O(n^3), \)

ma po obu stronach"równości" zbiory funkcji, przy czym po lewej stronie są to wszystkie funkcje postaci \( \frac{1}{3}n^3+f(n) \) dla \( f(n)=O(n^2) \). W tej sytuacji znak \( = \) powinien być formalnie rozumiany jako inkluzja \( \subseteq \).

Nadużywając znaku "równości" musimy jednak uważać i pamiętać, że w konwencji asymptotycznej taki nadużyty znak \( = \) nie jest relacją symetryczną. Rzeczywiście, \( O(n^3)\neq\frac{1}{3}n^3+O(n^2) \), gdyż np. funkcja \( n^3\in O(n^3) \), ale \( n^3\notin\frac{1}{3}n^3+O(n^2) \). Jednak pożytki płynące z takiego "przeciążenia" znaku równości sprawiedliwiają te nadużycia. W następnej Obserwacji w taki właśnie sposób sformułujemy (bez oczywistego dowodu) kilka własności notacji \( O \). Z nich mozna łatwo otrzymać analogiczne własności dla \( \Omega \) i \( \Theta \).

Obserwacja 9.2

Dla funkcji \( \displaystyle f,g,f_1,f_2,g_1,g_2: \mathbb{N} \mathbb{R} \) mamy:

  • \( \displaystyle f(n)=O(f(n)) \),
  • \( \displaystyle f(n)=O(O(g(n))) \) wtedy i tylko wtedy, gdy \( \displaystyle f(n)=O(g(n)) \),
  • \( \displaystyle f(n)=O\vert (g(n)) \vert \) wtedy i tylko wtedy, gdy \( \displaystyle f(n)= O(g(n)) \),
  • \( \displaystyle f(n)=c\cdot O(g(n)) \) wtedy i tylko wtedy, gdy \( \displaystyle f(n)=O(g(n)) \),
  • jeśli \( \displaystyle f_1(n)= O(g_1(n)) \) i \( \displaystyle f_2(n)=O(g_2(n)) \), to \( \displaystyle f_1(n)+f_2(n)=O(g_1(n))+O(g_2(n)) \),
  • jeśli \( \displaystyle f_1(n)= O(g_1(n)) \) i \( \displaystyle f_2 (n)=O(g_2(n)) \), to \( \displaystyle f_1(n)\cdot f_2(n)=O(g_1(n)g_2(n)) \).

Przykład

Pokażemy, że wielomiany \( \displaystyle k \)-tego stopnia są \( \displaystyle \Theta(n^k) \).

Zauważmy najpierw, że jeśli \( \displaystyle k < l \) to \( \displaystyle O(n^k)=O(n^l) \), czyli jeśli \( \displaystyle f(n)\in O(n^k) \) to \( \displaystyle f(n)\in O(n^l) \). Rozważmy zatem dowolny wielomian \( \displaystyle k \)-tego stopnia \( \displaystyle p(n)=a_kn^k+\ldots+a_1n+a_0 \), gdzie \( \displaystyle a_k\neq0 \). Wtedy

\( \begin{array} {rlll} \vert p(n) \vert & =\vert a_kn^k+\ldots+a_1n+a_0 \vert & & \\ & \leq \vert a_k \vert n^k+\ldots+\vert a_1 \vert n+\vert a_0 \vert & \\ & =a_k\cdot O(n^k)+\ldots+a_1\cdot O(n)+a_0\cdot O(1) & \textrm{bo}\quad n^i=O(n^i) \\ & =O(n^k)+\ldots+O(n)+O(1) & \textrm{bo}\quad c\cdot O(n^i) = O(n^i) \\ & =O(n^k)+\ldots+O(n^k)+O(n^k) & \textrm{bo}\quad O(n^i)=O(n^k), \textrm{dla}\quad i\leq k \\ & =O(n^k), & \textrm{bo}\quad O(n^k)+O(n^k)= O(n^k) \end{array} \)

co dowodzi, że \( \displaystyle p(n)=O(n^k) \).

Dla dowodu \( \displaystyle p(n)=\Omega(n^k) \), niech \( \displaystyle a=\max(\vert a_{0} \vert,\vert a_{1} \vert,\ldots,\vert a_{k-1} \vert) \). Wtedy

\( \displaystyle \vert a_k \vert n^k\geq 2kan^{k-1}\geq 2(\vert a_{k-1} \vert n^{k-1}+\vert a_{k-2} \vert n^{k-2}+\ldots+\vert a_0 \vert) \)

dla \( \displaystyle n\geq \frac{2ka}{\vert a_k \vert} \). Mamy zatem

\( \displaystyle \begin{align*} \vert p(n) \vert & =\vert a_kn^k+a_{k-1}n^{k-1}+\ldots+a_0 \vert \geq\vert a_k \vert n^k-(\vert a_{k-1} \vert n^{k-1}+\ldots+\vert a_0 \vert) \\ & \geq\vert a_k \vert n^k-kan^{k-1}\geq\frac{\vert a_k \vert n^k}{2}, \end{align*} \)

co dowodzi \( \displaystyle p(n)=\Omega(n^k) \).

Przykład

Często pojawiają się logarytmy o różnych podstawach. Najczęściej są to \( \displaystyle \lg{n},\ln{n},\log{n} \). Z asymptotycznego punktu widzenia wszystkie te funkcje są podobne tzn. np. \( \displaystyle \ln{n}=\Theta(\lg{n}) \) i \( \displaystyle \log{n}=\Theta(\lg{n}) \), lub ogólniej:

\( \displaystyle \log_a{n}=\Theta(\log_b{n}),\quad \textrm{dla}\quad a,b>1. \)

Rzeczywiście, jest to po prostu wzór na zamianę podstaw logarytmu,

\( \displaystyle \log_a{n}=\frac{1}{\log_b{a}}\cdot\log_b{n}, \)

gdzie ta sama stała \( \displaystyle \frac{1}{\log_b{a}} \) jest dobra do dolnego i górnego ograniczenia.

Przykład

Dla wielomianów \( \displaystyle f(n),g(n) \) rząd ich wielkości wyznaczony jest przez stopień:

\( \displaystyle f = O(g) \) wtedy i tylko wtedy, gdy \( \displaystyle \deg(f)\leq \deg(g) \).

Ustala to hierarchię rzędów funkcji:

\( \displaystyle n, n^2, n^3, n^4, \ldots, n^d, n^{d+1}, \ldots \)

Również dla "stopni" będącymi dowolnymi liczbami dodatnimi mamy:

\( \displaystyle n^a = O(n^b) \) wtedy i tylko wtedy, gdy \( \displaystyle a \leq b \)

Na przykład:

  • \( \displaystyle \sqrt{n} \in O(n) \),
  • \( \displaystyle \sqrt[3]{n} \in O(\sqrt{n}) \).

Przykład

Mamy \( \displaystyle n \in O(2^n) \). Istotnie łatwo dowieść indukcyjnie, że \( \displaystyle n \leq 2^n \).

Podobnie \( \displaystyle n^2 \in O(2^n) \). Wiemy już, że każda funkcja liniowa jest w \( \displaystyle O(2^n) \), istnieje więc stała \( \displaystyle c \) taka, że od pewnego miejsca \( \displaystyle 2n+1 \leq c\cdot 2^n \).
Pokażemy, że wtedy też \( \displaystyle n^2 \leq c\cdot 2^n \). Indukcyjnie

\( \displaystyle (n+1)^2 = n^2 +2n +1 \leq c \cdot 2^n +(2n +1) \leq c \cdot 2^n + c \cdot 2^n = c \cdot 2^{n+1} \)

Analogicznie, wiedząc już, że każda funkcja kwadratowa jest w \( \displaystyle O(2^n) \), czyli że dla pewnej stałej \( \displaystyle c \) od pewnego miejsca mamy { \( \displaystyle 3n^2 +3n +1 \leq c \cdot 2^n \)}, możemy pokazać indukcyjnie, że \( \displaystyle n^3 \leq c \cdot 2^n \). Istotnie

\( \displaystyle (n+1)^3 = n^3 + 3n^2 +3n +1 \leq c \cdot 2^n + c \cdot 2^n = c \cdot 2^{n+1}. \)

Ogólnie, dla dowolnego stopnia \( \displaystyle d \) mamy \( \displaystyle n^d \in O(a^n) \), o ile tylko \( \displaystyle a>1 \).

Przykład

Oczywiście \( \displaystyle 2^n \leq 3^n \), więc \( \displaystyle 2^n \in O(3^n) \).
Ale \( \displaystyle 3^n \not\in O(2^n) \). Gdyby bowiem \( \displaystyle 3^n \leq c \cdot 2^n \) to

\( \displaystyle (\frac{3}{2})^n = \frac{3^n}{2^n} \leq c, \)

podczas gdy funkcja wykładnicza \( \displaystyle (\frac{3}{2})^n \) rośnie do nieskończoności. Nie może zatem być ograniczona przez żadną stałą \( \displaystyle c \).
Ogólnie dla \( \displaystyle a,b >1 \), mamy \( \displaystyle a^n \in O(b^n) \) wtedy i tylko wtedy, gdy \( \displaystyle a\leq b \).

Przykład

Mamy \( \displaystyle 2^n \in O(n!) \) oraz \( \displaystyle n! \in O(n^n) \).
Istotnie \( \displaystyle 2^n \leq 2 \cdot 1 \cdot 2 \cdot 3 \cdot \ldots \cdot n = 2 \cdot n! \), bo każdy czynnik (poza pierwszym) w \( \displaystyle n! \) jest równy co najmniej \( \displaystyle 2 \). Pokazuje to, że \( \displaystyle 2^n \in O(n!) \).

Podobnie \( \displaystyle n! = 1 \cdot 2 \cdot 3 \cdot \ldots \cdot n \leq n \cdot n \cdot n \cdot \ldots \cdot n = n^n \), bo każdy czynnik w \( \displaystyle n! \) jest nie większy niż \( \displaystyle n \).

Jako ćwiczenie pozostawiamy dowód następnej obserwacji.

Obserwacja 9.3

Oto ciąg funkcji, z których każda jest \( \displaystyle O \) od następnej, ale nie od poprzedniej:

\( \displaystyle \frac{1}{n^n}, \frac{1}{n!}, \ldots, \frac{1}{3^n}, \frac{1}{2^n}, \ldots, \frac{1}{n^3}, \frac{1}{n^2}, \frac{1}{n \lg n}, \frac{1}{n}, \frac{\lg{n}}{n}, \frac{1}{\sqrt{n}}, \frac{1}{\sqrt[3]{n}}, \ldots, \frac{1}{\lg{n}}, \frac{1}{\lg\lg n}, 1 \)

i dalej

\( \displaystyle 1, \lg\lg{n}, \lg{n}, \ldots, \sqrt[3]{n}, \sqrt{n}, \frac{n}{\lg{n}}, n, n\lg{n}, n\sqrt{n}, n^2, n^3, \ldots, n^{\lg{n}}, 2^n, 3^n, n!, n^n, 2^{2^n}. \)

W istocie, gdy \( \displaystyle g(n) \) występuje w tym ciagu wczesniej niż \( \displaystyle f(n) \), to

  • \( \displaystyle g(n)=O(f(n)) \),
  • \( \displaystyle f(n)=o(g(n)) \).

Przykład

Nie każde dwie funkcje są porównywalne asymptotycznie. Na przykład dla funkcji

\( \displaystyle f(n)= \left\{ \begin{array} {cl} n, & \textrm{dla} \quad n \quad \textrm{parzystych} \\ n^3, & \textrm{dla}\quad n\quad \textrm{nieparzystych} \end{array} \right . \)

i \( \displaystyle g(n)=n^2 \) mamy \( \displaystyle f(n)\neq\Omega(g(n)) \) i \( \displaystyle f(n)\neq O(g(n)) \).

Twierdzenie o rekursji uniwersalnej

Podstawowym zastosowaniem notacji asymptotycznej w informatyce jest szacowanie długości działania programów, w szczególności procedur rekurencyjnych, których złożoność łatwo opisać równaniem rekurencyjnym. Niech \( \displaystyle T(n) \) będzie funkcją opisującą złożoność czasową pewnego programu, czyli zwracającą liczbę wykonywanych operacji dla danych wielkości \( \displaystyle n \). Zazwyczaj nie jesteśmy zainteresowani dokładną liczbą wykonywanych operacji, a jedynie dobrym oszacowaniem z góry i czasem z dołu. Dlatego zamiast szukać postaci zwartej rozwiązania rekurencyjnego, co na ogół jest zadaniem beznadziejnym, dopuszczamy użycie notacji asymptotycznej i szukamy pewnej "dobrze znanej" funkcji \( \displaystyle g(n) \) takiej, że \( \displaystyle T(n)=\Theta(g(n)) \). Znając \( \displaystyle g(n) \) wiemy w jaki sposób rośnie długość działania programu wraz z wzrostem wielkości danych.

Równania, o których mówimy często są postaci \( \displaystyle T(n)=a\cdot T( \lfloor\frac{n}{b}\rfloor )+f(n) \), czyli aby rozwiązać problem dla danych wielkości \( \displaystyle n \), rozwiązujemy \( \displaystyle a \) podproblemów wielkości \( \displaystyle \lfloor\frac{n}{b}\rfloor \) i składamy z nich rozwiązanie całości w dodatkowym czasie \( \displaystyle f(n) \). Twierdzenie o rekurencji uniwersalnej wskazuje funkcję asymptotycznie podobną do \( \displaystyle T(n) \) w bardzo wielu przypadkach.

Twierdzenie 9.4 [o rekurencji uniwersalnej]

Dla funkcji \( \displaystyle T(n) \) zadanej przez

\( \displaystyle T(n)= \left\{\begin{array} {ll} \Theta(1), & \textrm{dla}\quad n\in \{0,1\} \\ a\cdot T( \lfloor\frac{n}{b}\rfloor )+f(n), & \textrm{dla}\quad n>1 \end{array} \right. \)

zachodzi:

  • jeśli \( \displaystyle f(n)=O(n^{\log_b{a}-}) \) dla pewnego \( \displaystyle >0 \), to \( \displaystyle T(n)=\Theta(n^{\log_b{a}}) \),
  • jeśli \( \displaystyle f(n)=\Theta(n^{\log_b{a}}) \), to \( \displaystyle T(n)=\Theta(n^{\log_b{a}}\lg{n}) \),
  • jeśli \( \displaystyle f(n)=\Omega(n^{\log_b{a}+}) \) dla pewnego \( \displaystyle >0 \) oraz \( \displaystyle a f(\frac{n}{b})\leq c f(n) \) dla pewnego \( \displaystyle c < 1 \) i prawie wszystkich \( \displaystyle n \), to \( \displaystyle T(n)=\Theta(f(n)) \).

Zanim podamy dowód Twierdzenia 9.4, poczynimy kilka uwag i prześledzimy kilka przykładów.

W praktyce na ogół pomijamy opis początkowych wartości funkcji \( \displaystyle T(n) \) domyślnie przyjmując, że są one \( \displaystyle \Theta(1) \). Nie będziemy też używać podłóg w wyrażeniach typu \( \displaystyle T(\frac{n}{b}) \), traktując występujące tu dzielenie jako całkowito-liczbowe. Twierdzenie o rekurencji uniwersalnej jest silnym i praktycznym narzędziem. Jednak trzeba podkreślić, że nie szacuje ono rozwiązań wszystkich równań typu \( \displaystyle T(n)=aT\left( \frac{n}{b} \right)+f(n) \). Taka niemożność oszacowania może mieć miejsce z jednego z trzech powodów, przy czym drugi z nich jest istotny i zdarza się w praktyce:

  • W każdym z trzech przypadków opisanym w twierdzeniu, porównujemy funkcje \( \displaystyle n^{\log_b{a}} \) i \( \displaystyle f(n) \). Może się zdarzyć (jak widzieliśmy w jednym z przykładów), iż \( \displaystyle n^{\log_b{a}} \) i \( \displaystyle f(n) \) są asymptotycznie nieporównywalne i wobec tego nie będzie można zastosować żadnego z tych trzech przypadków. Na szczęście w praktyce takie funkcje raczej zdarzają się niezmiernie rzadko.
  • Po drugie, w przypadku pierwszym (i trzecim), tak naprawdę, porównujemy \( \displaystyle f(n) \) z funkcją istotnie mniejszą (wiekszą) od \( \displaystyle n^{\log_b{a}} \), tzn. z funkcją \( \displaystyle n^{\log_b{a}\pm\epsilon} \) dla pewnego \( \displaystyle \epsilon \). Ten warunek już może przeszkadzać w praktyce. Dla przykładu \( \displaystyle n\lg{n}\in\Omega(n) \), ale \( \displaystyle n\lg{n}\notin\Omega(n^{1+\epsilon}) \) dla dowolnego \( \displaystyle \epsilon>0 \). Pełny przykład takiego równania przedstawimy poniżej.
  • Po trzecie, w ostatnim warunku dla \( \displaystyle f(n)\in\Omega(n^{\log_b{a}+\epsilon}) \) dla dowolnego \( \displaystyle \epsilon>0 \) wymagamy dodatkowo, żeby \( \displaystyle af(\frac{n}{b})\leq c f(n) \) dla pewnego \( \displaystyle c < 1 \) i dla wszystkich \( \displaystyle n\geq n_0 \) dla pewnego \( \displaystyle n _0 \). Znów, na szczęście, w większości spotykanych sytuacji ten warunek "regularności" jest spełniony. Jednak zawsze trzeba go sprawdzić.

Przykład

Dla funkcji zadanej przez:

\( \displaystyle T(n)=16T\left( \frac{n}{4} \right)+n\lg{n}, \)

dostajemy kolejno:

  • \( \displaystyle a=16 \), \( \displaystyle b=4 \), \( \displaystyle f(n)=n\lg{n} \),
  • \( \displaystyle n^{\log_4{16}}=n^2 \), \( \displaystyle f(n)=O(n^{2-\epsilon}) \), np. dla \( \displaystyle \epsilon=0.5 \),
  • zatem z pierwszego punktu Twierdzenia 9.4 mamy \( \displaystyle T(n)=\Theta(n^2) \).

Podobnie dla funkcji

\( \displaystyle T(n)=2T\left( \frac{n}{2}\right )+5n-15, \)

mamy:

  • \( \displaystyle a=2 \), \( \displaystyle b=2 \), \( \displaystyle f(n)=5n-15 \),
  • \( \displaystyle n^{\log_2{2}}=n \), \( \displaystyle f(n)=\Theta(n) \),
  • zatem z drugiego punktu Twierdzenia 9.4 mamy \( \displaystyle T(n)=\Theta(n\lg{n}) \).

Niech teraz

\( \displaystyle T(n)=2T\left( \frac{n}{3}\right )+n\lg{n}. \)

Wtedy

  • \( \displaystyle a=2 \), \( \displaystyle b=3 \), \( \displaystyle f(n)=n\lg{n} \),
  • \( \displaystyle n^{\log_3{2}}\approx n^{0.6309} \), \( \displaystyle f(n)\in\Omega(n^{\log_3{2}-\epsilon}) \) dla \( \displaystyle \epsilon=0.1 \),
  • \( \displaystyle af(\frac{n}{b})\leq 2\cdot \frac{n}{3}\lg{\frac{n}{3}}\leq \frac{2}{3}n\lg{n}=\frac{2}{3}f(n) \),
  • zatem z trzeciego punktu Twierdzenia 9.4 mamy \( \displaystyle T(n)=\Theta(n\lg{n}) \).

Z kolei dla funkcji spełniającej

\( \displaystyle T(n)=2T\left( \frac{n}{2} \right)+n\lg{n}, \)

dostajemy

  • \( \displaystyle a=2 \), \( \displaystyle b=2 \), \( \displaystyle f(n)=n\lg{n} \),
  • \( \displaystyle n^{\log_2{2}}=n \),
  • \( \displaystyle n\lg{n}\in\Omega(n) \) ale dla dowolnego \( \displaystyle \epsilon>0 \), \( \displaystyle n\lg{n}\notin\Omega(n^{1+\epsilon}) \),
  • i ... nie można zaaplikować Twierdzenia 9.4.

Po tych uwagach i przykładach podamy dowód Twierdzenia o rekurencji uniwersalnej.

Dowód

Rozumowanie nasze przeprowadzimy tylko w przypadku, gdy liczba \( \displaystyle b \) występująca w rekurencyjnym równaniu zadającym funkcję \( \displaystyle T(n) \) jest potęgą liczby naturalnej, czyli dla liczb postaci \( \displaystyle 1,b,b^2,\ldots \). Rozszerzenie tego rozumowania na cały zbiór \( \displaystyle \mathbb{N} \) jest dość techniczne i wymaga szacowania podłóg. Ponadto, symboli asymptotycznych będziemy używać tylko dla \( \displaystyle n\in\lbrace 1,b,b^2,\ldots \rbrace \). To nieformalne nadużycie nie ogranicza poprawności rozumowania -- wymaga wszakże rozszerzenia notacji asymptotycznej na funkcje postaci \( \displaystyle f: \mathbb{R} \mathbb{R} \).

Rozwijając rekurencyjną formułę \( \displaystyle T(n) \) dla \( \displaystyle n=b^k \) otrzymujemy:

\( \displaystyle \begin{align*} T(n) & =T(b^k)=f(b^k)+aT(b^{k-1})=f(n)+af(b^{k-1})+a^2T(b^{k-2})=\ldots \\ & =f(b^k)+af(b^{k-1})+a^2f(b^{k-2})+\ldots+a^{k-1}f(b)+a^kT(1). \end{align*} \)

Ponieważ \( \displaystyle a^k=a^{\log_b{n}}=a^{\frac{\log_a{n}}{\log_a{b}}}=n^{\log_b{a}} \) możemy kontynuować:

\( \displaystyle \begin{align*} T(n) & =f(b^k)+af(b^{k-1})+a^2f(b^{k-2})+\ldots+a^{k-1}f(b)+a^kT(1). \\ & =\Theta(n^{\log_b{n}})+\sum_{i=0}^{k-1}a^if(b^{k-i}). \end{align*} \)

Dalsze szacowanie rozbijamy na \( \displaystyle 3 \) przypadki zgodnie z warunkami na zachowanie funkcji \( \displaystyle f(n) \) wobec \( \displaystyle n^{\log_b{a}} \):

  • \( \displaystyle f(n)=O(n^{\log_b{a}-\epsilon}) \),

\( \displaystyle \begin{align*} T(n) & =\Theta(n^{\log_b{n}})+\sum_{i=0}^{k-1}a^if(b^{k-i}) \\ & =\Theta(n^{\log_b{a}})+\sum_{i=0}^{k-1}a^i\cdot O((b^{k-i})^{\log_b{a}-\epsilon}) \\ & =\Theta(n^{\log_b{a}})+O \left ( b^{k(\log_b{a}-\epsilon)}\sum_{i=0}^{k-1} \left ( \frac{a}{b^{\log_b{a}-\epsilon}} \right)^i \right) \\ & =\Theta(n^{\log_b{a}})+n^{\log_b{a}-\epsilon}\cdot O\left( \sum_{i=0}^{k-1}\left( \frac{ab^{\epsilon}}{a} \right)^i \right) \\ & =\Theta(n^{\log_b{a}})+n^{\log_b{a}-\epsilon}\cdot O\left( \sum_{i=0}^{k-1}b^{i\epsilon}\right ) \\ & =\Theta(n^{\log_b{a}})+n^{\log_b{a}-\epsilon}\cdot O\left( \frac{b^{k\epsilon}-1}{b^\epsilon-1} \right) \\ & =\Theta(n^{\log_b{a}})+n^{\log_b{a}-\epsilon}\cdot O\left( \frac{n^{\epsilon}-1}{b^\epsilon-1} \right). \end{align*} \)

Ponieważ \( \displaystyle b \) i \( \displaystyle \epsilon \) są stałymi, ostatni składnik redukuje się do \( \displaystyle n^{\log_b{a}-\epsilon}\cdot O(n^{\epsilon})=O(n^{\log_b{a}}) \). Zatem

\( \displaystyle T(n)=\Theta(n^{\log_b{a}})+O(n^{\log_b{a}})=\Theta(n^{\log_b{a}}). \)

  • \( \displaystyle f(n)=\Theta(n^{\log_b{a}}) \),

\( \displaystyle \begin{align*} T(n) & =\Theta(n^{\log_b{a}})+\sum_{i=0}^{k-1}a^if(b^{k-i}) \\ & =\Theta(n^{\log_b{a}})+\Theta\left( \sum_{i=0}^{k-1}\frac{a^ib^{k\lg_b{a}}}{b^{i\log_b{a}}}\right ) \\ & =\Theta\left(n^{\log_b{a}})+\Theta( n^{\log_b{a}}\sum_{i=0}^{k-1}1 \right) \\ & =\Theta(n^{\log_b{a}})+\Theta( n^{\log_b{a}}\log_b{n} ) \\ & =\Theta( n^{\log_b{a}}\lg{n} ). \end{align*} \)

  • \( \displaystyle af(\frac{n}{b})\leq cf(n) \) dla pewnego \( \displaystyle c \) i prawie wszystkich \( \displaystyle n \)

oraz \( \displaystyle f(n)=\Omega(n^{\log_b{a}}) \).

Z założeń tego przypadku mamy \( \displaystyle a^if(b^{k-i})\leq c^if(n) \). Zatem

\( \displaystyle \begin{align*} T(n) & =\Theta(n^{\log_b{a}})+\sum_{i=0}^{k-1}a^if(b^{k-i}) \\ & \leq\Theta(n^{\log_b{a}})+\sum_{i=0}^{k-1}c^if(n) \\ & \leq\Theta(n^{\log_b{a}})+f(n)\sum_{i=0}^{\infty}c^i \\ & =\Theta(n^{\log_b{a}})+f(n)\frac{1}{1-c} \\ & =\Theta(n^{\log_b{a}})+\Theta{f(n)} \\ & =\Theta({f(n)}). \end{align*} \)

Metoda przybliżeń

W pewnych sytuacjach łatwiejsze do uzyskania, ale słabsze oszacowanie zastosowane w odpowiedni sposób może prowadzić do lepszego końcowego szacowania zachowania asymptotycznego. Poznamy tę metodę w kilku kolejnych przykładach.

Przykład

Dla ciągu zadanego przez

\( \displaystyle \begin{align*} a_0 & =1, \\ a_{n+1} & =\frac{1}{n^3}\sum_{i=0}^{n-1}a_i, \end{align*} \)

najpierw dowodzimy indukcyjnie, że \( \displaystyle 0 < a_n\leq 1 \), czyli \( \displaystyle a_n=O(1) \). Podstawiając uzyskane oszacowanie do równania rekurencyjnego otrzymujemy:

\( \displaystyle a_n=\frac{1}{n^3}\sum_{i=0}^{n}a_i=\frac{1}{n^3}\cdot \sum_{i=0}^n O(1)=\frac{1}{n^3}\cdot O\left( \sum_{i=0}^n1 \right)=\frac{1}{n^3}\cdot O(n)=O\left( \frac{1}{n^2} \right). \)

Operację tę możemy powtórzyć uzyskując jeszcze lepsze oszacowanie

\( \displaystyle \begin{align*} a_n & =\frac{1}{n^3}\sum_{i=0}^na_i=\frac{1}{n^3}\left( a_0+\sum_{i=1}^na_i \right)=\frac{1}{n^3}+\frac{1}{n^3}\sum_{i=1}^{n}O\left( \frac{1}{n^2}\right )= \frac{1}{n^3}+\frac{1}{n^3}O(1) \\ & =O\left( \frac{1}{n^3} \right). \end{align*} \)

Wykorzystaliśmy tu fakt, iż szereg \( \displaystyle \sum_{i=0}^{\infty}\frac{1}{i^2} \) jest zbieżny. Zauważmy też, że następne powtórzenie podobnej procedury szacującej już nam nic nie da.

\( \displaystyle a_n=\frac{1}{n^3}\sum_{i=0}^na_i=\frac{1}{n^3}+\frac{1}{n^3}\sum_{i=1}^nO\left( \frac{1}{n^3}\right )=\frac{1}{n^3}+\frac{1}{n^3}\cdot O\left( \frac{1}{n^2} \right)=O\left( \frac{1}{n^3} \right). \)

Przykład

Niech ciąg \( \displaystyle b_n \) spełnia

\( \displaystyle b_n\cdot\ln{b_n}=n. \)

Z monotoniczności funkcji \( \displaystyle n\ln{n} \) dostajemy, że \( \displaystyle 0 < b_n < n \). Podstawiając to oszacowanie za drugie wystąpienie \( \displaystyle b_n \) w równaniu otrzymujemy:

\( \displaystyle n=b_n\cdot\ln{b_n} < b_n\ln{n}, \)

czyli \( \displaystyle b_n>\frac{n}{\ln{n}} \). Podstawiając powtórnie dostajemy:

\( \displaystyle n=b_n\ln{b_n}>b_n\cdot\ln{\frac{n}{\ln{n}}}, \)

czyli \( \displaystyle b_n < \frac{n}{\ln{n}-\ln{\ln{n}}} \). Uzyskaliśmy zatem, że \( \displaystyle b_n=\Theta \left( \frac{n}{\ln{n}} \right) \).

Na zakończenie tego wykładu poznamy jeszcze jeden symbol asymptotyczny. Jest on podobny do \( \displaystyle \Theta \) lecz znacznie precyzyjniejszy.

Funkcje asymptotycznie równe to takie funkcje \( \displaystyle f(n) \) i \( \displaystyle g(n) \), że

\( \displaystyle \lim_{n \to \infty}\frac{f(n)}{g(n)}=1. \)

Fakt, że funkcje \( \displaystyle f(n) \) i \( \displaystyle g(n) \) są asymptotycznie równe zapisujemy jako \( \displaystyle f(n)\sim g(n) \).

Jednym z najbardziej znanych przybliżeń asymptotycznych jest tzw. Wzór Stirlinga przybliżający zachowanie silni.

Twierdzenie 9.5 [wzór Stirlinga]

\( \displaystyle n!\sim \sqrt{2\pi n}( \frac{n}{e} )^n. \)

Wzór ten został odkryty przez Abrahama de Moivre w postaci

\( \displaystyle n!\sim c \cdot n^{n+1/2} e^{-n}, \)

dla pewnej stałej \( \displaystyle c \). Wkładem Jamesa Stirlinga było pokazanie, że stałą tą jest \( \displaystyle c=\sqrt{2\pi} \). Dowód tego oszacowania wykracza poza metody tego kursu. W oszacowaniach przez nierówności przydatna jest następująca wersja wzoru Stirlinga:

\( \displaystyle \sqrt{2\pi n}\left( \frac{n}{e} \right)^ne^{-(12n+1)}\leq n!\leq \sqrt{2\pi n}\left( \frac{n}{e} \right)^{n}e^{-12n} \)

Innym ważnym przybliżeniem asymptotycznym jest wzór na liczbę podziałów liczby naturalnej \( \displaystyle n \) na sumy dodatnich liczb naturalnych, tzn. asymptotyczne przybliżenie funkcji \( \displaystyle p_n = \sum_{k=1}^n P(n,k) \) .

Twierdzenie 9.6

\( \displaystyle p_n \sim \frac{e^{\pi\sqrt{\frac{2n}{3}}}}{4n\sqrt{3}} \)

Podamy też asymptotyczne przybliżenie na liczbę liczb pierwszych nie większych niż \( \displaystyle n \).

Twierdzenie 9.7

Jeśli \( \displaystyle \pi(n) \) oznacza liczbę liczb pierwszych w zbiorze \( \displaystyle \lbrace 1,2,3,\ldots,n \rbrace \), to

\( \displaystyle \pi(n) \sim \frac{n}{\ln n} \)

Teoria liczb

Wstęp


Teoria liczb jest dziedziną matematyki, zajmującą się badaniem własności liczb – początkowo tylko naturalnych. Obecnie należałoby powiedzieć: głównie naturalnych. Jej początki sięgają starożytności. Zajmowali się nią Pitagoras, Euklides, Eratostenes, Diofantos i wielu innych. Bujny rozwój teorii liczb datuje się mniej więcej od czasów działalności Pierre'a Fermata (1601-1665), autora wypowiedzi słynnego Wielkiego Twierdzenia Fermata. Do dwudziestego wieku powszechną była opinia, iż teoria ta nie ma żadnego zastosowania. Jednak dzięki wielkiemu rozwojowi kryptografii - nauki zajmującej się układaniem i łamaniem szyfrów - pogląd ten musiał zostać zweryfikowany.

W dwu kolejnych wykładach poznamy podstawowe pojęcia i klasyczne twierdzenia teorii liczb - niektóre pochodzące jeszcze z czasów starożytnych. Zainteresowanych zachęcamy do rozszerzenia swej wiedzy w kursie Matematyka Dyskretna 2, gdzie przedstawiony jest system kryptograficzny RSA, oparty na tych podstawowych faktach z teorii liczb.

Uwaga

W wykładach poświęconych teorii liczb wszystkie liczby są całkowite, chyba że wyraźnie jest powiedziane inaczej.

Uwaga

W wykładach dotyczących teorii liczb poznamy też kilka algorytmów operujących na liczbach naturalnych. Rozważając ich złożoność musimy poczynić kilka założeń o złożoności podstawowych operacji arytmetycznych. Długość liczby \( n \) to liczba bitów \( n \), czyli liczba cyfr w zapisie binarnym (dwójkowym). Wynosi ona \( \lfloor \lg{n}\rfloor+1 \), ale nam wystarcza wiedzieć, że jest ona \( O(\lg{n}) \). Przyjmujemy, że złożoność dodawania liczb \( a \) i \( b \) jest proporcjonalna do sumy ich długości, dokładniej że jest \( O(\lg{a}+\lg{b}) \) oraz że złożoność mnożenia liczb \( a \) i \( b \) jest \( O(\lg{a}\lg{b}) \) (choć znane są szybsze algorytmy).

Podstawowe pojęcia

Dowolną liczbę wymierną \( a \) można wydzielić przez dowolną niezerową liczbę wymierną \( b \) i wynik tego działania jest liczbą wymierną. Ograniczając sie jednak zbioru \( \mathbb{Z} \) liczb całkowitych, nie każde dzielenie jest wykonalne: \( 15:3=5 \), \( -22:2=-11 \) ale \( 31:3= \)?. Rozważamy więc dzielenie liczb całkowitych z resztą.

Dzielenie liczb całkowitych z resztą.

Niech \( b>0 \), wtedy dla każdej liczby całkowitej \( a \) istnieją jednoznacznie wyznaczone: iloraz \( q \) i reszta \( r \) spełniające:

\( a=bq+r\qquad\textrm{i}\qquad 0\leq r < b. \)

Resztę \( r \) z dzielenia \( a \) przez \( b \) zapisujemy też jako: \( a \ {\sf mod}\ b \).

Przykład

\( 47 \ {\sf mod}\ 9 =2 \), \( 1823 \ {\sf mod}\ 2 =1 \), \( 32 \ {\sf mod}\ 43 =32 \), \( 111 \ {\sf mod}\ 13 =7 \), \( -3 \ {\sf mod}\ 7 =4 \). W pewnych sytuacjach reszta równa jest \( 0 \), np. \( -22=-2\cdot 11+0 \).

\( b \) dzieli \( a \) (lub \( a \) jest podzielne przez \( b \), co zapisujemy \( b|a \), jeśli istnieje \( q \) takie, że \( b=aq \). W takim wypadku mówimy też, że \( b \) jest dzielnikiem \( a \) lub, że \( a \) jest wielokrotnością \( b \). Innymi słowy, jeśli \( b \) dzieli \( a \) to reszta z dzielenia \( a \) przez \( b \) równa jest \( 0 \) tzn. \( a\ {\sf mod} \ b =0 \).

Obserwacja 10.1

Dla dowolnych \( a,b,c \) zachodzi:

  • jeśli \( a|b \) to \( a|bc \),
  • jeśli \( a|b \) i \( b|c \) to \( a|c \),
  • jeśli \( a|b \), \( a|c \) to \( a|(b+c) \).

Dowód

Z założenia pierwszego punktu wiemy, iż istnieje \( d \) takie, że \( ad=b \). Mnożąc obie strony równości przez \( c \) dostajemy \( adc=bc \). A więc istnieje \( d'=dc \) takie, że \( ad'=bc \), co z kolei oznacza, że \( a|bc \).

Z założenia drugiego punktu wiemy, iż istnieją \( d,e\in\mathbb{Z} \) takie, że \( ad=b \) i \( be=c \). Łatwo zauważamy, że dla \( d'=de \) mamy \( ad'=c \), czyli \( a|c \).

Z założenia trzeciego punktu istnieją \( d,e \) takie, że \( ad=b \) i \( ae=c \). Dodając stronami ostatnie równości otrzymujemy \( a(d+e)=b+c \), czyli \( a|b+c \).

Największy wspólny dzielnik liczb \( a \) i \( b \) (zapisywany przez \( {\sf NWD}\ (a,b) \), gdzie chociaż jedna z liczb \( a,b \) jest różna od \( 0 \), to największa liczba \( d \) taka, że \( d|a \) i \( d|b \). Oczywiście, \( 1 \leq\ {\sf NWD}\ (a,b) \leq \min (|,|) \).

Przykład

\( {\sf NWD}\ (30,75)=15 \), \( {\sf NWD}\ (10,3)=1 \), \( {\sf NWD}\ (2,8)=2 \).

Algorytm Euklidesa

Algorytm Euklidesa to algorytm wyznaczania największego wspólnego dzielnika dwu dodatnich liczb całkowitych. Warto tu wspomnieć, iż jest to jeden z najstarszych znanych algorytmów. Euklides zamieścił go ok. 300 roku p.n.e. w Elementach - jednym z najsłynniejszych dzieł naukowych ludzkości. Jednak sam algorytm prawie na pewno znał już Eudoksos z Knidos ok. 50 lat wcześniej.

  1. Wczytaj liczby \( a,b>0 \).
  2. Oblicz \( r \) jako resztę z dzielenia \( a \) przez \( b \).
  3. Zastąp \( a \) przez \( b \), zaś \( b \) przez \( r \).
  4. Jeżeli \( b=0 \) to zwróć \( a \) w przeciwnym wypadku przejdź do (2).

Przykład

Przebieg obliczenia \( {\sf NWD}\ (1029,1071) \):

\( \begin{array} {llll} a=1029 & b=1071 & 1029=0\cdot 1071+1029 & r=1029 \\ a=1071 & b=1029 & 1071=1\cdot 1029+42 & r=42 \\ a=1029 & b=42 & 1029=24\cdot 42+21 & r=21 \\ a=42 & b=21 & 42=2\cdot 21+0 & r=0 \\ a=21 & b=0 & & \end{array} \)

Zgodnie z instrukcją (4) algorytm zwraca \( a=21 \).

Dowód

Dla dowódu poprawności algorytmu Euklidesa ustalmy dwie liczy naturalne \( a,b>0 \). Jeśli \( a < b \) to podany algorytm odwróci ich porządek przy pierwszym wykonaniu kroku (3), gdyż w tym przypadku \( a \ {\sf mod} \ b =a \). Zauważmy, że w każdym następnym kroku \( a>b>r \), ponieważ reszta z dzielenia \( a \) przez \( b \) leży w zbiorze \( {\{ {0,\ldots,b-1} \} } \). A zatem kolejne reszty będą tworzyć ciąg ściśle malejący, który w końcu osiągnie \( 0 \), czyli algorytm Euklidesa po pewnej skończonej ilości kroków się zatrzyma.

Pozostaje sprawdzić, czy algorytm Euklidesa zwraca właściwą odpowiedź. Niech \( r=a \ {\sf mod} \ b \) tzn. \( r=a-bq \) dla pewnego \( q \). Wszystkie dzielniki \( a \) i \( b \) dzielą prawą stronę ostatniej równości, a więc dzielą też \( r \), co implikuje \( {\sf NWD}\ (a,b)={\sf NWD}\ (b,r) \). Dowodzi to, iż wszystkie pary rozważane przez algorytm mają te same dzielniki, a więc ten sam \( {\sf NWD } \).

Rozszerzenie algorytmu Euklidesa.

Poza znajdowaniem NWD dwóch podanych liczb \( a,b>0 \) algorytm Euklidesa można zastosować do wskazania dwu dodatkowych liczb \( x,y\in\mathbb{Z} \) takich, że

\( ax+by={\sf NWD}\ (a,b). \)

Już sam fakt, że istnieją takie liczby \( x,y \) to obserwacja, która leży u podstaw wielu kolejnych twierdzeń. Ponadto rozszerzony algorytm Euklidesa jest intensywnie stosowany do rozwiązywania równań, w przekształceniach kryptograficznych.

Dowód

Załóżmy, że \( a>b \). Niech \( r_0=a \), \( r_1=b \), natomiast \( r_2\ldots,r_n,r_{n+1} \) będą kolejnymi resztami wygenerowanymi przez algorytm Euklidesa, przy czym \( r_{n+1}=0 \). Wtedy wiemy, że \( r_n={\sf NWD}\ (a,b) \) oraz

\( \begin{align*} {} r_{n-1} & =q_{n-1}\cdot r_n, \\ r_{n-2} & =q_{n-2}\cdot r_{n-1} + r_n, \\ r_{n-3} & =q_{n-3}\cdot r_{n-2} + r_{n-1}, \\ & \vdots & \\ r_1 & =q_1\cdot r_2+r_3, \\ r_0 & =q_0\cdot r_1+r_2, \end{align*} \)

dla pewnych \( q_0,q_1,\ldots,q_{n-1} \). Mamy zatem \( r_{n-2}-q_{n-2}\cdot r_{n-1}={\sf NWD}\ (a,b) \). Załóżmy indukcyjnie, dla \( 0 < i\leq n-2 \), że istnieją \( x,y\in\mathbb{Z} \) takie, że \( r_{i}\cdot x+r_{i+1}\cdot y={\sf NWD}\ (a,b) \). Ponieważ \( r_{i+1}=r_{i-1}+q_{i-1}\cdot r_i \) otrzymujemy:

\( \begin{align*} {\sf NWD}\ (a,b) & =r_{i}\cdot x+r_{i+1}\cdot y \\ & =r_{i}\cdot x + (r_{i-1}+q_{i-1}\cdot r_i)\cdot y \\ & =r_{i-1}\cdot y+r_{i}\cdot(x+q_{i-1}\cdot y). \end{align*} \)

A więc możemy zejść z liczbą \( i \) do \( i=0 \), co daje pożądane przedstawienie \( {\sf NWD}\ (a,b) \) jako \( r_0\cdot x + r_1\cdot y =ax+by \).

Czas działania.

Niech \( r_0,r_1,\ldots,r_{n+1} \) będą zdefiniowane, jak w dowodzie powyżej. Załóżmy dodatkowo, iż \( a>b \) (jeśli nie, to zaczynamy analizować po pierwszym kroku algorytmu). Pokażemy, że

\( r_{j+2} < \frac{1}{2}r_j. \)

Jeśli \( r_{j+1}\leq \frac{1}{2}r_j \), to natychmiast mamy \( r_{j+2} < r_{j+1}\leq\frac{1}{2} r_j \). Załóżmy więc, że \( r_{j+1}>\frac{1}{2}r_j \). W tym przypadku podczas dzielenia \( r_j \) przez \( r_{j+1} \) zachodzi \( r_j=1\cdot r_{j+1}+r_{j+2} \), czyli \( r_{j+2}=r_j-r_{j+1} < \frac{1}{2}r_j \).

Ponieważ po każdych, kolejnych dwu krokach rozmiar \( r_j \) spada co najmniej dwukrotnie, kroków jest \( O(\lg{a}) \). W każdym kroku przeprowadzane jest dzielenie liczb długości \( O(\lg{a}) \), a więc \( O(\lg^2{a}) \) operacji bitowych. To oznacza, iż do policzenia \( {\sf NWD}\ (a,b) \) (\( a\geq b \)) algorytmem Euklidesa wystarcza \( O(\lg^3{a}) \) operacji bitowych.

Aby policzyć współczynniki \( x \), \( y \) takie, że \( ax+by={\sf NWD}\ (a,b) \), zgodnie z przedstawionym dowodem, należy przedstawić \({\sf NWD}\ (a,b) \) jako kombinację \( r_{n-1} \) i \( r_{n-2} \), a później pozbyć się kolejnych \( r_i \) (poczynając od \( r_{n-1} \)) wprowadzając \( r_{i-2} \). Mamy więc \( O(\lg{a}) \) kroków i w każdym kroku przeprowadzamy mnożenie i dodawanie lub odejmowanie liczb o długości co najwyżej \( O(\lg{a}) \).

Przykład

Działanie rozszerzonego algorytmu Euklidesa dla \( a=1547 \) i \( b=560 \).

\( \begin{align*} 1547 & =2\cdot560+427 \\ 560 & =1\cdot427+133 \\ 427 & =3\cdot133+28 \\ 133 & =4\cdot28+21 \\ 28 & =1\cdot21+7 \\ 21 & =3\cdot7+0. \end{align*} \)

A więc \( {\sf NWD}\ (1547,560)=7 \). Aby wyrazić \( 7 \) jako kombinację danych wejściowych liczymy:

\( \begin{align*} 7 & =\textbf{28}-1\cdot\textbf{21}=28-1\cdot(133-4\cdot28) \\ & =-1\cdot\textbf{133}+5\cdot\textbf{28}=-1\cdot133+5\cdot(427-3\cdot133) \\ & =5\cdot\textbf{427}-16\cdot\textbf{133}=5\cdot427-16\cdot(560-1\cdot427) \\ & =-16\cdot\textbf{560}+21\cdot\textbf{427}=-16\cdot560+21\cdot(1547-2\cdot560) \\ & =21\cdot\textbf{1547}-58\cdot\textbf{560}. \end{align*} \)

Liczby pierwsze

Każda liczba \( b>1 \) ma przynajmniej dwa dodatnie dzielniki: \( 1 \) oraz \( b \).
Liczba pierwsza to liczba naturalna \( p \) posiadająca dokładnie dwa różne dzielniki. W szczególności \( p>1 \).

Przykład

Oto lista wszystkich liczb pierwszych mniejszych od \( 100 \):

\( 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97. \)

Liczba złożona to liczba naturalna \( a \), która nie jest pierwsza, a więc ma jakiś dodatni dzielnik różny od \( 1 \) i \( a \).

Liczby względnie pierwsze to takie liczby \( a \) i \( b \), dla których \( {\sf NWD}\ (a,b)=1 \), co zapisujemy inaczej jako \( a\perp b \).

Przykład

  • \( 10\perp 3 \) bo \( {\sf NWD}\ (10,3)=1 \),
  • \( 12\not\perp 3 \) bo \( {\sf NWD}\ (12,3)=3 \),
  • \( 7\perp 15 \) bo \( {\sf NWD}\ (7,15)=1 \).

Wspomniane Elementy Euklidesa zawierają słynny lemat:

Lemat 10.2 [Lemat Euklidesa]

Jeśli \( n|ab \) i \( n\perp a \), to \( n|b \).

Dowód

Ponieważ \( {\sf NWD}\ (a,n)=1 \), to istnieją \( x,y \) takie, że \( xa+yn=1 \). Mnożąc obie strony równości przez \( b \) otrzymujemy:

\( xab+ynb=b. \)

Z założenia wiemy, iż \( n \) dzieli lewą stronę powyższej równości. Musi zatem dzielić też prawą.

Obserwacja 10.3 [Rozkład na iloczyn liczb pierwszych]

Każdą liczbę \( n>1 \) można przedstawić jako iloczyn liczb pierwszych.

Dowód

Intuicyjnie, wystarczy rozkładać liczby złożone w iloczynie, aż wszystkie będą liczbami pierwszymi, na przykład

\( 168=28\cdot6=(4\cdot7)\cdot(2\cdot3)=(2\cdot2)\cdot7\cdot2\cdot3. \)

Dla formalnego dowodu załóżmy niewprost, iż istnieje liczba naturalna większa od \( 1 \), nierozkładalna na iloczyn liczb pierwszych. Korzystając z Zasady Minimum, weźmy najmniejszą taką liczbę \( n \). Musi to być liczba złożona, gdyż dowolna liczba pierwsza jest jednoelementowym iloczynem liczb pierwszych. A zatem \( n \) jest złożona i istnieją \( a,b>1 \) takie, że \( n=ab \). Ale wtedy \( a \) oraz \( b \) są mniejsze od \( n \), więc z minimalności \( n \), rozkładają się na iloczyn liczb pierwszych. Ale wtedy także \( n=ab \) byłoby iloczynem liczb pierwszych, co przeczy temu, że \( n \) jest nierozkładalna i kończy dowód.

Nietrywialnym faktem jest, że każda liczba \( n>1 \) jest jednoznacznie rozkładalna na iloczyn liczb pierwszych (z dokładnością do kolejności liczb w iloczynie). Fakt ten powszechnie znany jest jako Fundamentalne Twierdzenie Arytmetyki. Dowód tego twierdzenia w dużej części był już w Elementach Euklidesa, jednak pierwszy, pełny i poprawny dowód przedstawił Carl Friedrich Gauss.

Twierdzenie 10.4 [Fundamentalne Twierdzenie Arytmetyki]

Każda liczba naturalna \( n>1 \) ma jednoznaczny (z dokładnością do kolejności liczb w iloczynie) rozkład na iloczyn liczb pierwszych.

Dowód

Podamy dwa dowody tego twierdzenia.

Najpierw przedstawimy dowód pochodzący od Euklidesa. Niech \( n>1 \) będzie najmniejszą liczbą naturalną posiadającą dwa różne rozkłady na liczby pierwsze: \( p_1\ldots p_k=n=q_1\ldots q_m \), gdzie \( p_1\leq\ldots\leq p_k \) oraz \( q_1\leq\ldots\leq q_m \). Żadna z liczb \( p_i \) nie może pojawić wśród \( q_1,\ldots,q_m \) (i na odwrót), gdyż wydzielając obie strony przez \( p_i \), otrzymalibyśmy mniejszą liczbę z dwoma różnymi rozkładami. Liczba pierwsza \( p_1 \) dzieli pierwszy iloczyn, a więc też dzieli i drugi:

\( p_1|q_1\ldots q_m. \)

Zauważmy, że

\( p_1\perp q_1, \)

gdyż są to dwie, różne liczby pierwsze. Na mocy Lematu Euklidesa otrzymujemy, iż \( p_1|q_2\ldots q_m \). Kolejno możemy wyeliminować pozostałe liczby \( q_i \) z prawego iloczynu dochodząc do \( p_1|1 \), oczywistej sprzeczności.

A oto alternatywny dowód. Niech \( n \) będzie najmniejszą liczbą naturalną większą od \( 1 \) posiadającą dwa różne rozkłady na liczby pierwsze: \( p_1\ldots p_k=n=q_1\ldots q_m \), gdzie \( p_1\leq\ldots\leq p_k \) oraz \( q_1\leq\ldots\leq q_m \). Tak, jak poprzednio dostajemy, że żadna liczba pierwsza nie może być jednocześnie w obu rozkładach. Bez straty ogólności niech \( p_1 < q_1 \). Wtedy istnieje \( d,r\in\mathbb{Z} \) takie, że

\( q_1/p_1=d+r/p_1, \)

gdzie \( 0 < r < p_1 < q_1 \) (\( r \) nie może być równe \( 0 \), gdyż oznaczałoby to iż \( p_1|q_1 \)). Wymnażając obie strony równości przez \( q_2\ldots q_m \) otrzymujemy

\( p_2\ldots p_k=dq_2\ldots q_m+rq_2\ldots q_m/p_1. \)

Drugi składnik w prawej stronie tej równości musi być zatem liczbą naturalną. Oznaczając ją przez \( x \) mamy więc

\( xp_1=rq_2\ldots q_m. \)

Wartość obu stron powyższej równości jest mniejsza od \( n \), gdyż \( r < q_1 \). Ponieważ \( r < p_1 \), to po rozłożeniu liczby \( x \) na czynniki pierwsze dostaniemy dwa różne rozkłady liczby mniejszej od \( n \), co przeczy założeniu o minimalności \( n \).

Fundamentalne Twierdzenie Arytmetyki eksponuje znaczenie liczb pierwszych. Okazuje się, że są to podstawowe bloki, z których można zbudować w unikalny sposób dowolną liczbę naturalną większą od \( 1 \).

Przykład

\( 1925=5^2\cdot7\cdot11 \), \( 2006=2\cdot17\cdot59 \), \( 108=2^2\cdot3^3 \), \( 2048=2^{11} \).

Problem faktoryzacji.

Obecnie nie jest znany żaden efektywny algorytm faktoryzujący liczby naturalne, tzn. znajdujący rozkład na iloczyn liczb pierwszych. Oczekiwana trudność tego problemu jest sercem wielu współczesnych systemów kryptograficznych (np. RSA). Nie wszystkie liczby są równie trudne w rozkładzie. Póki co, (w połowie 2006 roku) najtrudniejsze wydają się liczby, które są iloczynami dwu liczb pierwszych podobnej długości.

Przykład

Aby choć trochę zrozumieć trudność problemu faktoryzacji proponujemy znaleźć nietrywialny dzielnik liczby złożonej \( 10721 \). Na stronie WWW firmy RSA podane są znacznie większe liczby, za rozkład których RSA skłonna jest płacić nawet 200 tys. USD.

Znajomość rozkładu liczby na czynniki pierwsze pozwala określić, w sposób systematyczny, wszystkie jej dzielniki.

Obserwacja 10.5

Jeśli \( n=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k} \) jest rozkładem liczby \( n \) na iloczyn liczb pierwszych, to każdy jej dzielnik \( d|n \) jest postaci \( d=p_{1}^{\beta_{1}}\ldots p_{k}^{\beta_{k}} \), dla pewnych \( 0\leq\beta_i\leq\alpha_i \).

Dowód

Załóżmy, dla dowodu niewprost, że w rozkładzie liczby \( d \) występuje liczba pierwsza, powiedzmy \( p \), która nie występuje w rozkładzie \( n=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k} \). Oczywiście \( p|n \), bo \( d|n \). Ponieważ \( p \) i \( p_1 \) są dwiema różnymi liczbami pierwszymi, to na mocy Lematu Euklidesa otrzymujemy \( p|p_2^{\alpha_2}\ldots p_k^{\alpha_k} \). W podobny sposób możemy wyeliminować kolejno liczby \( p_2,\ldots,p_k \) dochodząc do sprzeczności, że \( p|1 \). A więc rozkład liczby \( d \) zawiera wyłącznie liczby pierwsze z rozkładu liczby\( n \), czyli \( d=p_1^{\beta_1}\ldots p_k^{\beta_k} \), przy czym oczywiście wszystkie \( \beta_i \) są nieujemne, ale niektóre mogą być zerowe. Pozostaje pokazać, że \( \beta_i\leq\alpha_i \). Załóżmy, że \( \beta_{i}>\alpha_{i} \) dla pewnego \( i \). Wtedy

\( \frac{d}{p_i^{\alpha_{i}}} \mbox{ \ dzieli \ } \frac{n}{p_i^{\alpha_{i}}}, \)

przy czym liczba \( \frac{d}{p_i^{\alpha_{i}}} \) ma w swoim rozkładzie czynnik \( p_{i} \), a liczba \( \frac{n}{p_i^{\alpha_{i}}} \) nie ma. To jednak stoi w sprzeczności z ustanowionym wcześniej faktem, że wszystkie czynniki rozkładu każdego dzielnika jakiejkolwiek liczby naturalnej występują w rozkładzie tego dzielnika.

Ponieważ ciągów liczb naturalnych \( (\beta_1,\ldots,\beta_k) \) spełniających \( 0\leq\beta_i\leq\alpha_i \) jest dokładnie \( (\alpha_1+1)\cdot(\alpha_2+1)\cdot\ldots\cdot(\alpha_k+1) \) z Obserwacji 10.5 dostajemy natychmiast:

Wniosek 10.6

Jeśli \( n=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k} \) jest rozkładem liczby \( n \) na iloczyn liczb pierwszych, to liczba \( n \) ma dokładnie \( (\alpha_1+1)\cdot(\alpha_2+1)\cdot\ldots\cdot(\alpha_k+1) \) dodatnich dzielników.

Przykład

Innym natychmiastowym wnioskiem z Obserwacji 10.5 jest:

Wniosek 10.7

Dla \( a,b,c\in\mathbb{N} \) jeśli \( a|c \), \( b|c \) i \( a\perp b \), to \( ab|c \).

Mając dany rozkład liczb \( a \) i \( b \) możemy błyskawicznie policzyć \( {\sf NWD}\ (a,b) \).

Obserwacja 10.8

Jeśli \( a,b>0 \), \( a=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k} \) i \( b=p_1^{\beta_1}p_2^{\beta_2}\ldots p_k^{\beta_k} \), gdzie \( \alpha_i, \beta_i \geq 0 \), to

\( {\sf NWD}\ (a,b)=p_1^{\min(\alpha_1,\beta_1)}\cdot \ldots\cdot p_k^{\min(\alpha_k,\beta_k)}. \)

Dowód

Każdy wspólny dzielnik \( d|a,b \) jest postaci \( d=p_1^{\gamma_1}p_2^{\gamma_2}\ldots p_k^{\gamma_k} \), przy czym \( \gamma_i\leq\alpha_i \) oraz \( \gamma_i\leq\beta_i \). Oczywiście wśród liczb tej postaci, liczba \( p_1^{\min(\alpha_1,\beta_1)}\cdot \ldots\cdot p_k^{\min(\alpha_k,\beta_k)} \) jest największa.

Oczywiście mając rozkłady liczb \( a,b \) na czynniki pierwsze łatwo jest już policzyć \( {\sf NWD}\ (a,b) \). Jak jednak odnotowaliśmy uzyskanie takich rozkładów nie jest łatwe. Dzięki algorytmowi Euklidesa potrafimy jednak (efektywnie) znaleźć NWD dwóch liczb bez znajomości ich rozkładu.

Ważnym dualnym pojęciem do NWD jest pojęcie najmniejszej wspólnej wielokrotności dwu liczb.

Najmniejsza wspólna wielokrotność dwu liczb \( a,b>0 \) (oznaczana przez \( {\sf NWW}\ (a,b) \)) to najmniejsza liczba dodatnia \( w \) taka, że \( a|w \) i \( b|w \).

Znając rozkłady dwu liczb możemy, analogicznie do NWD , wyznaczyć ich NWW.

Obserwacja 10.9

Jeśli \( a,b>0 \), \( a=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k} \) i \( b=p_1^{\beta_1}p_2^{\beta_2}\ldots p_k^{\beta_k} \), gdzie \( \alpha_i, \beta_i \geq 0 \), to

\( {\sf NWW}\ (a,b)=p_1^{\max(\alpha_1,\beta_1)}\cdot \ldots\cdot p_k^{\max(\alpha_k,\beta_k)}. \)

Na podstawie ostatnich dwu obserwacji dostajemy natychmiast:

Wniosek 10.10

\( {\sf NWD} \ (a,b) \cdot {\sf NWW} \ (a,b)=ab. \)

Wniosek ten można wykorzystać do szybkiego liczenia NWD dwu liczb bez znajomości ich rozkładów na czynniki pierwsze. Wyznaczywszy najpierw algorytmem Euklidesa wartość \( {\sf NWD}\ (a,b) \), wystarczy potem podzielić

\( {\sf NWW}\ (a,b)= \frac{a\cdot b}{ {\sf NWD}\ (a,b)}. \)

Jak dużo jest liczb pierwszych?

Już Euklides odnotował, że "jest więcej liczb pierwszych niż w każdym danym zbiorze liczb pierwszych", tzn.:

Twierdzenie 10.11

Liczb pierwszych jest nieskończenie wiele.

Dowód

Podamy dwa dowody tego twierdzenia pochodzące odpowiednio od Euklidesa i Eulera.

Załóżmy niewprost za Euklidesem, że liczb pierwszych jest skończenie wiele i są to: \( p_1,\ldots,p_k \). Rozważmy liczbę \( n=p_1p_2\ldots p_k+1 \). Jest ona oczywiście większa od każdej \( p_i \). Ponadto żadna z liczb pierwszych \( p_i \) nie dzieli \( n \), bo przy dzieleniu przez \( p_i \) daje resztę \( 1 \). A zatem \( n \), albo jest nową liczbą pierwszą, albo w rozkładzie \( n \) są nowe liczby pierwsze. Sprzeczność.

Również dowód Eulera jest dowodem niewprost. Załóżmy więc, że zbiór \( \mathbb{P} \) wszystkich liczb pierwszych jest skończony. Zauważmy, że:

\( \displaystyle \prod_{p\in\mathbb{P}}\frac{1}{1-\frac{1}{p}} =\prod_{p\in\mathbb{P}}(1+\frac{1}{p}+\frac{1}{p^2}+\frac{1}{p^3}+\ldots) =\sum_{n\geq1}\frac{1}{n}. \)

Istotnie, pierwsza równość wynika ze wzoru na sumę nieskończonego ciągu geometrycznego: każdy czynnik iloczynu po lewej jest sumą nieskończonego ciągu geometrycznego o ilorazie \( \frac{1}{p} \). Druga równość jest konsekwencją Fundamentalnego Twierdzenia Arytmetyki. Ponieważ założyliśmy, że liczb pierwszych jest skończenie wiele, to lewa strona równości jest oczywiście skończona. Wiemy natomiast, że suma po prawej stronie jest nieograniczona, jako że sumy częściowe początkowych \( n \) wyrazów tego ciągu to kolejne liczby harmoniczne \( H_n\geq \frac{\lfloor \lg{n}\rfloor+1}{2} \).

Matematycy zastanawiali się także, czy liczby pierwsze są, w pewnym sensie, regularnie rozłożone wśród liczb naturalnych. Jest wiele ciekawych rezultatów opisujących ten rozkład.

Twierdzenie 10.12 [Dirichlet 1837]

Dla dowolnych dwu dodatnich i względnie pierwszych liczb \( a,d \) istnieje nieskończenie wiele liczb postaci \( nd+a \) dla \( n>0 \).

Przykład

Twierdzenie Dirichleta uogólnia wiele wcześniej znanych faktów. Dla przykładu, możemy wywnioskować, iż jest nieskończenie wiele liczb pierwszych postaci \( 4n+1 \) (\( d=4,a=1 \)):

\( \begin{array} {|c||c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\ \hline 4n+1 & 1 & \bf 5 & 9 & 13 & \bf 17 & 21 & 25 & \bf 29 & 33 & \bf 37 & \bf 41 & 45 & 49 \\ \hline \end {array} \)

jak i postaci \( 4n+3 \) (\( d=4, a=3 \)):

\( \begin{array} {|c||c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\ \hline 4n+3 & \bf 3 & \bf 7 & \bf 11 & 15 & \bf 19 & \bf 23 & 27 & \bf 31 & 35 & 39 & \bf 43 & \bf 47 & 51 \\ \hline \end {array} \)

Tezę kolejnego twierdzenia, znanego jako Twierdzenie Bertanda-Czebyszewa lub Twierdzenie Czebyszewa, postawił Joseph Bertrand w 1845 roku. Zweryfikował on poprawność swojej tezy dla liczb \( n \) z przedziału \( [2,\ldots,3\cdot10^6] \). Pełny dowód przestawił dopiero Pafnuty Czebyszew w 1850 roku. Dowód, który tu przedstawiamy pochodzi od Paula Erd{o}s'a. Wykorzystał on następującą funkcję

\( \displaystyle \vartheta(n)=\sum_{p\in\mathbb{P}_n}\ln{p}, \)

gdzie \( \mathbb{P}_n \) oznacza zbiór liczb pierwszych nie większych od \( n \). Ważną własność tej funkcji opisuje następujący lemat.

Lemat 10.13

Dla \( n\geq 1 \) zachodzi

\( \vartheta(n) < n\cdot\ln{4}. \)

Dowód

Dla dowodu indukcyjnego odnotujmy najpierw, że \( \vartheta(1)=0 < 1\cdot\ln{4} \) oraz \( \vartheta(2)=\ln{2} < 2\cdot\ln{4} \).

Niech teraz \( n>2 \) będzie parzyste. Wtedy oczywiście \( n \) nie jest liczbą pierwszą i mamy

\( \vartheta(n)=\vartheta(n-1) < (n-1)\cdot\ln{4} < n\cdot\ln{4}. \)

Niech więc \( n>2 \) będzie nieparzyste, czyli \( n=2m+1 \) dla pewnego \( m>0 \). Rozważmy liczbę

\( {2m+1\choose m}=\frac{(2m)!}{m!\cdot m!}. \)

Zauważmy, że każda liczba pierwsza \( p \) w przedziale \( m < p\leq 2m+1 \) dzieli \( {2m+1\choose m} \). Rzeczywiście, żadna liczba z mianownika nie może skrócić liczby pierwszej \( p \) w liczniku co oznacza, że \( p \) jest w rozkładzie \( {2m+1\choose m} \). Ponadto, łatwo oszacować \( {2m+1\choose m} \) od góry przez \( 4^m \), np. w ten sposób:

\( \displaystyle 4^m=\frac{(1+1)^{2m+1}}{2} =\frac{\sum_{k=0}^{2m+1}{2m+1\choose k}}{2} \geq\frac{{2m+1\choose m}+{2m+1\choose m+1}}{2} ={2m+1\choose m}. \)

To z kolei pozwala nam oszacować \( \vartheta(2m+1) \) następująco:

\( \displaystyle \vartheta(2m+1)-\vartheta(m+1) =\sum_{p\in\mathbb{P}_{2m+1}-\mathbb{P}_{m+1}}\ln{p} \leq\ln{{2m+1\choose m}} \leq\ln{4^m} \leq m\cdot\ln{4}. \)

Z założenia indukcyjnego mamy natomiast \( \vartheta(m+1) < m\cdot\ln{4} \), czyli

\( \vartheta(n)=\vartheta(2m+1) < m\cdot\ln{4}+(m+1)\cdot\ln{4}=n\cdot\ln{4}. \)

Twierdzenie 10.14 [Czebyszew 1850]

Dla dowolnego \( n>1 \) istnieje liczba pierwsza \( p \) taka, że \( n < p < 2n \).

Dowód

Dla dowodu niewprost załóżmy, że \( n \) jest najmniejszą liczbą \( n\geq 2 \), dla której nie ma żadnej liczby pierwszej \( p \) w przedziale \( n < p < 2n \). Jeśli \( 2\leq n\leq 2048 \), to jedna z liczb pierwszych \( 3, 5, 7, 13, 23, 43, 83, 163, 317, 631, 1259, 2503 \) będzie pomiędzy \( n \) a \( 2n \). Oznacza to, że \( n\geq2048 \).

Przeanalizujmy teraz rozkład na czynniki pierwsze liczby:

\( {2n\choose n}=\frac{(2n)!}{n!\cdot n!}. \)

Najpierw jednak zauważmy, że ponieważ \( \displaystyle 4^n=(1+1)^{2n}=\sum_{k=0}^{2n}{2n\choose k} \) a liczba \( {2n\choose n} \) jest największym składnikiem tej sumy, to:

\( \frac{4^n}{2n+1}\leq{2n\choose n}. \)

Ponieważ \( 2n \) jest największym czynnikiem licznika \( \frac{(2n)!}{n!\cdot n!}={2n\choose n} \), to wszystkie liczby pierwsze \( p \) w rozkładzie \( 2n\choose n \) są mniejsze od \( 2n \). Niech \( R(p,n) \), gdzie \( p \) jest liczbą pierwszą, będzie największą liczbą \( x \) taką, że \( p^x|{2n\choose n} \). Innymi słowy, \( R(p,n) \) jest potęgą liczby \( p \) w rozkładzie \( {2n\choose n} \).

Łatwo zauważyć, że \( n! \) ma czynnik \( p \) w swoim rozkładzie na czynniki pierwsze \( \displaystyle \sum_{k=1}^{\infty}\lfloor\frac{n}{p^k}\rfloor \) razy. To implikuje, że

\( \displaystyle R(p,n) =\sum_{k=1}^\infty\lfloor\frac{2n}{p^k}\rfloor-2\cdot\sum_{k=1}^\infty\lfloor\frac{n}{p^k}\rfloor =\sum_{k=1}^{\infty}(\lfloor\frac{2n}{p^k}\rfloor-2\lfloor\frac{n}{p^k}\rfloor). \)

Każdy składnik tej sumy postaci \( \lfloor\frac{2n}{p^k}\rfloor-2\lfloor\frac{n}{p^k}\rfloor \) może przyjąć wartość:

  • \( 0 \), jeśli część ułamkowa \( \frac{n}{p^k} \) jest mniejsza od \( \frac{1}{2} \),

lub

  • \( 1 \), jeśli część ułamkowa \( \frac{n}{p^k} \) jest niemniejsza od \( \frac{1}{2} \).

Ponadto, dla \( k>\log_p{2n} \) wszystkie składniki zerują się, bo \( \frac{2n}{p^k} < 1 \). To pozwala na następujące oszacowanie liczby \( R(p,n) \)

\( R(p,n) < \lfloor\log_p{2n}\rfloor. \)

To z kolei daje zaskakującą nierówność

\( p^{R(p,n)}\leq 2n. \)

Z dotychczasowych ustaleń dotyczących rozkładu liczby \( {2n\choose n} \) na czynniki pierwsze wiemy, że nie występują tam liczby pierwsze \( p \) takie, że:

  • \( p>2n \), gdyż \( 2n \) jest największym czynnikiem w liczniku rozważanego symbolu Newtona,
  • \( n < p\leq 2n \), gdyż założyliśmy, że nie ma takich liczb pierwszych,
  • \( \frac{2}{3}n < p\leq n \), gdyż wtedy \( p>\sqrt{2n} \) (ponieważ \( n\geq5 \)) i wobec tego tylko pierwszy składnik w nieskończonej sumie wyznaczającej \( R(p,n) \) może być niezerowy. Ale wtedy i tak \( R(p,n)=\lfloor \frac{2n}{p}\rfloor-2\lfloor \frac{n}{p}\rfloor=2-2=0 \).

Zatem wszystkie liczby pierwsze w rozkładzie \( {2n\choose n} \) są niewiększe niż \( \frac{2}{3}n \). Liczby pierwsze \( p>\sqrt{2n} \) występują tam w co najwyżej pierwszej potędze, jako że \( p^{R(p,n)} < 2n \). Z kolei iloczyn \( \prod p^{R(p,n)} \) przebiegający po liczbach pierwszych \( p\leq\sqrt{2n} \) można oszacować z góry przez \( (2n)^{\sqrt{2n}} \). Dotychczasowe oszacowania dają nam więc

\( \displaystyle \frac{4^n}{2n+1}\leq{2n\choose n}\leq(2n)^{\sqrt{2n}}\prod_{p\in\mathbb{P}_{\frac{2}{3}n}}p=(2n)^{\sqrt{2n}}e^{\vartheta(\frac{2}{3}n)}. \)

Z Lematu 10.13 wiemy, że \( \vartheta(n) < n\cdot\ln{4} \), więc

\( \frac{4^n}{2n+1}\leq(2n)^{\sqrt{2n}}4^{\frac{2}{3}n}. \)

Ponieważ \( 2n+1 < (2n)^2 \) mamy

\( 4^{\frac{n}{3}} < (2n)^{2+\sqrt{2n}}. \)

Z kolei \( 2\leq\frac{\sqrt{2n}}{3} \), bo \( n\geq18 \), więc

\( 4^{\frac{n}{3}}\leq(2n)^{\frac{4}{3}\sqrt{2n}}. \)

Logarytmując obie strony nierówności otrzymujemy

\( \sqrt{2n}\leq 4\cdot\lg{(2n)}. \)

Podstawmy \( n=2^{2t-1} \). Wtedy \( \frac{2^t}{t}\leq 4 \), a więc \( t < 6 \), co w stoi sprzeczności z \( n>2048 \), gdyż

\( n=\frac{2^{2t}}{2} < \frac{2^{2\cdot6}}{2}=2048. \)

Paulowi Erd{o}s'owi udało się uogólnić Twierdzenie Bertranda-Czebyszewa na kilka sposobów. Pokazał on np., że:

  • dla każdego \( k \) istnieje takie \( n_0 \), że dla wszystkich \( n>n_0 \) istnieje przynajmniej \( k \) liczb pierwszych \( p_1,\ldots,p_k \) w przedziale \( n < p_i < 2n \),
  • dla dowolnej liczby naturalnej \( n>6 \), między liczbami \( n \) a \( 2n \) znajdują się co najmniej dwie liczby pierwsze – co najmniej jedna postaci \( 4k + 1 \) oraz co najmniej jedna postaci \( 4k + 3 \).

Wszystkie obserwacje o pewnej regularności rozkładu liczb pierwszych w zbiorze liczb naturalnych potwierdza (i w pewnym sensie uogólnia) Twierdzenie o Liczbach Pierwszych. Niech, jak poprzednio, \( \mathbb{P}_n \) będzie zbiorem liczb pierwszych niewiększych od \( n \) oraz \( \pi(n)=\vert\mathbb{P}_n\vert \).

Twierdzenie 10.15 [Twierdzenie o Liczbach Pierwszych]

\( \pi(n)\sim n/\ln{n}. \)

Twierdzenie o Liczbach Pierwszych opisuje asymptotyczną gęstość liczb pierwszych wśród liczb naturalnych. Z grubsza, mówi ono, iż wybierając losowo liczbę w pobliżu pewnej dużej liczby \( n \), mamy \( \frac{1}{\ln{n}} \) szansy na to, by wylosowana liczba była pierwsza. Dla przykładu: w pobliżu \( n=10 000 \) mniej więcej co \( 9 \)-ta liczba jest pierwsza, tymczasem w pobliżu \( n=1 000 000 000 \) już co \( 21 \)-wsza liczba jest pierwsza. A więc, statystycznie, w przedziale \( (n,2n) \) jest znacznie więcej liczb pierwszych niż mówią poprzednie twierdzenia. Problem polega na tym, że choć wiemy, że musi ich być bardzo dużo, to nie jesteśmy w stanie udowodnić, że dla konkretnie rozważanej liczby \( n \) nie nastąpiło jakieś "lokalne zaburzenie".

Twierdzenie o Liczbach Pierwszych sformułował Adrien-Marie Legendre'a w 1796. Zostało ono udowodnione niezależnie przez Hadamarda i de la Vallée Poussina w 1896. Dowód używa złożonych metod analitycznych, wykraczających poza ramy tego wykładu. Dlatego nie przedstawimy jego pełnego dowodu. W zamian pokażemy znacznie słabsze:

Twierdzenie 10.16

\( \pi(n)=O(n/\ln{n}) \).

Dowód

Lemat 10.13 mówi, że \( \vartheta(n) < n\cdot\ln{4} \), co równoważnie można wyrazić jako

\( \displaystyle \prod_{p\in\mathbb{P}_n} < 4^n. \)

Ponieważ w oczywisty sposób \( \displaystyle \pi(n)!\leq \prod_{p\in\mathbb{P}_n} \), to ze wzoru Stirlinga mamy:

\( \displaystyle (\frac{\pi(n)}{e})^{\pi(n)} < (\pi(n))! < \prod_{p\in\mathbb{P}_n}p < 4^n. \)

Logarytmując stronami otrzymujemy \( \pi(n)\cdot(\ln{\pi(n)}-1) < n\cdot\ln{4} \), co implikuje \( \pi(n)=O(n/\ln{n}) \).

Sito Eratostenesa

Jak wyznaczyć wszystkie \( \pi(200) \) liczb pierwszych niewiększych od \( 200 \)? Jeszcze w czasach starożytnych Eratostenes opisał metodę postępowania rozwiązującą ten problem.

Algorytm Sita

  1. Wczytaj \( n \). Wypisz listę wszystkich liczb naturalnych od \( 2 \) do \( n \). Na początku wszystkie liczby są nieskreślone.
  2. Dopóki istnieje nieskreślona jeszcze liczba na naszej liście niewiększa od \( \sqrt{n} \) powtarzaj:
    Weź pierwszą nieskreśloną liczbę \( p \) z listy i dodaj do zbioru znalezionych liczb pierwszych. Później skreśl liczbę \( p \) z listy i skreśl wszystkie wielokrotności liczby \( p \), które są jeszcze na liście.
  3. Wszystkie pozostałe, nieskreślone liczby z listy dodaj do zbioru znalezionych liczb pierwszych.

Wystarczy wykreślać wielokrotności liczb pierwszych, niewiększych od \( \sqrt{n} \), gdyż jeśli dowolna liczba \( m\leq n \) ma nietrywialny dzielnik (różny od 1 i niej samej), to \( m \) ma nietrywialny dzielnik pierwszy, niewiększy od \( \sqrt{n} \).

Teoria liczb II

Arytmetyka modularna


Liczby przystające modulo \( n>0 \) to takie dwie liczby \( a,b\in\mathbb{Z} \), dla których różnica \( a-b \) jest wielokrotnością \( n \). Fakt ten zapisujemy jako \( a\ \equiv_{n}b \). Innymi słowy, \( a\ \equiv_{n}b \) jeśli \( a \) i \( b \) mają te same reszty w dzieleniu przez \( n \).

Obserwacja 11.

Dla dowolnych \( a,b,c \) oraz \( n>0 \) zachodzi:

  • \( a\ \equiv_{n}a \),
  • \( a\ \equiv_{n}b \) wtedy i tylko wtedy, gdy \( b\ \equiv_{n}a \),
  • jeśli \( a\ \equiv_{n}b \) i \( b\ \equiv_{n}c \) to \( a\ \equiv_{n}c \).

Powyższe własności świadczą o tym, że przystawanie \( \equiv_{n} \) modulo \( n \) jest relacją równoważności na zbiorze \( \mathbb{Z} \). Dlatego czasem relacja ta nazywana jest równością modulo \( n \). Okazuje się też, że relacja \( \equiv_n \) jest zgodna z działaniami arytmetycznymi: dodawania, odejmowania i mnożenia, a więc jest kongruencją ze względu na te działania.

Obserwacja 11.2

Dla dowolnych \( a,b,c,d \) oraz \( n>0 \) mamy:

  • jeśli \( a\ \equiv_{n}b \) i \( c\ \equiv_{n}d \), to \( a+c\ \equiv_{n}b+d \),
  • jeśli \( a\ \equiv_{n}b \) i \( c\ \equiv_{n}d \), to \( a-c\ \equiv_{n}b-d \),
  • jeśli \( a\ \equiv_{n}b \) i \( c\ \equiv_{n}d \), to \( ac\ \equiv_{n}bd \).

Podane w dwu poprzednich obserwacjach własności relacji równości modulo \( n \) pozwalają na wprowadzenie działań w zbiorze ilorazowym \( \mathbb{Z}/\equiv_n \), tzn. w zbiorze klas równoważności. \( {\{ {[a]_n : a\in \mathbb{Z}} \} } \), poprzez:

  • \( [a]_n + [b]_n = [a+b]_n \),
  • \( [a]_n - [b]_n = [a-b]_n \),
  • \( [a]_n \cdot [b]_n = [a\cdot b]_n \),

Ponieważ w każdej klasie \( [a]_n \) jest jakaś liczba spośród \( 0,1,2,\ldots,n-1 \), a mianowicie reszta z dzielenia liczby \( a \) przez \( n \), to wygodniej jest po prostu mówić o arytmetyce (modularnej) na zbiorze tych reszt \( {\{ {0,1,2,\ldots,n-1} \} } \) i pisać np.:

  • \( 3+5\ \equiv_{6}2 \),
  • \( 3-5\ \equiv_{6}4 \),
  • \( 3 \cdot 5\ \equiv_{6}3 \).

Tak więc, dla \( n>0 \) możemy zidentyfikować zbiór ilorazowy \( \mathbb{Z}/\equiv_n \) ze zbiorem \( \mathbb{Z}_n={\{ {0,\ldots n-1} \} } \) reszt modulo \( n \). Po wprowadzeniu do tego zbioru działań arytmetycznych dostajemy pierścień, przemienny z jedynką \( \mathbb{Z}_n=({\{ {0,\ldots n-1} \} },+,\cdot) \). Pierścień ten nie zawsze jest jednak ciałem. Istotnie, nie zawsze możemy skracać w mnożeniu czynnik zachowując kongruencję. Dla przykładu: \( 2\cdot2=4\ \equiv_{6}10 =2\cdot5 \), ale \( 2\not\equiv_6 5 \). Okazuje się, że w równości modulo \( n \) możemy skracać czynniki względnie pierwsze z \( n \).

Obserwacja 11.3 [Reguła skracania]

Dla \( n>0 \), jeśli \( ad\ \equiv_{n}bd \) i \( d\perp n \), to \( a\ \equiv_{n}b \).

Dowód

Ponieważ \( {\sf NWD}\ (d,n)=1 \), rozszerzony algorytm Euklidesa gwarantuje istnienie \( x,y\in \mathbb{Z} \) takich, że \( xd+yn=1 \), czyli \( dx\ \equiv_{n}1 \). Mnożąc teraz obie strony \( ad\ \equiv_{n}bd \) przez \( x \), otrzymujemy \( adx\ \equiv_{n}bdx \), czyli \( a=a1 \equiv_n adx \equiv_n bdx \equiv_n b1=b \).

Przykład

  • \( 15=3\cdot5\equiv_7 10\cdot5=50 \) oraz \( 5\perp7 \) implikuje \( 3\equiv_7 10 \),
  • \( 8=2^3\equiv_3 2 \) oraz \( 2\perp3 \) implikuje \( 4=2^2\equiv_3 1 \).

Chcąc móc skracać w pierscieniu \( \mathbb{Z}_n \) dowolne niezerowe czynniki wymagamy, by wszystkie liczby \( 1,2,\ldots,n-1 \) były względnie pierwsze z \( n \). To nic innego, jak wymaganie, by \( n \) było liczbą pierwszą.

Obserwacja 11.4

Pierścień \( \mathbb{Z}_n=({\{ {0,\ldots n-1} \} },+,\cdot) \) jest ciałem, wtedy i tylko wtedy, gdy \( n \) jest liczba pierwszą.

Rozwiązywanie równań modularnych

Oczywiście w ciele, każde równanie postaci \( ax=b \) ma dokładnie jedno rozwiązanie \( x \), o ile \( a\neq 0 \). Zobaczmy czy są, jak wyglądają i jak otrzymać rozwiązania \( x \) równania modularnego postaci \( ax\equiv_n b \) w liczbach całkowitych \( x \), gdzie \( a,b\in \mathbb{Z} \) oraz \( a\neq 0 \).

Obserwacja 11.5

Dla \( a,b \in \mathbb{Z}, a\neq 0 \) rozwiązania równania modularnego z jedną niewiadomą \( x \):

\( ax\ \equiv_{n}b , \)

zależą od wielkości \( {\sf NWD}\ (a,n)=1 \) w następujący sposób:

  • jeśli \( {\sf NWD}\ (a,n)=1 \),

to istnieje nieskończenie wiele rozwiązań; wszystkie one są postaci \( x=x_0+kn \), gdzie \( 0\leq x_0 < n \) jest jakimś rozwiązaniem, a \( k\in\mathbb{Z} \),

  • jeśli \( {\sf NWD}\ (a,n)=d>1 \),

to równanie ma rozwiązanie wtedy i tylko wtedy, gdy również \( d|b \). W tym przypadku rozwiązania równania \( ax\ \equiv_{n}b \) pokrywają się z rozwiązaniami równania \( \frac{a}{d}x\ \equiv_{\frac{n}{d}}\frac{b}{d} \).

Ponadto,

  • ponadto, jeśli \( 0\leq a,b < n \), to rozwiązanie \( 0\leq x_0 < n \)

równania \( ax\ \equiv_{n}b \), lub jego brak, można wskazać wykonując \( O(lg^3{n}) \) operacji bitowych.

Dowód

Zauważmy najpierw, że jeśli \( a',b' \) są resztami z dzielenia odpowiednio \( a \) i \( b \) przez \( n \), to rozwiązania równań \( ax\ \equiv_{n}b \) i \( a'x\ \equiv_{n}b' \) są takie same. Istotnie, wynika to natychmiast z tego, że \( a'x\ \equiv_{n}ax \) oraz \( b'\ \equiv_{n}b \). Możemy więc przyjąć, że \( 0\leq a,b < n \). Ponadto odnotujmy, że z tych samych powodów, jeśli \( x_0 \) spełnia równanie, to spełnia je również każda liczba postaci \( x_0+kn \), gdzie \( k\in\mathbb{Z} \).

Załóżmy najpierw, że \( {\sf NWD}\ (a,n)=1 \). Rozszerzony algorytm Euklidesa gwarantuje istnienie \( y,z \) takich, że \( 1\ \equiv_{n}ya+zn \equiv_n ya \). Łatwo teraz sprawdzić, że reszta \( x_0 \) z dzielenia \( yb \) przez \( n \) jest rozwiązaniem. A więc i wszystkie liczby postaci \( x_0+kn \), są również rozwiązaniami. Pozostaje pokazać, że wszystkie rozwiązania są takiej właśnie postaci. Niech więc \( ax\equiv_n b\equiv_n ax_0 \). Ponieważ \( a\perp n \), to \( a \) możemy skrócić otrzymując \( x\ \equiv_{n}x_0 \), co implikuje że \( x=x_0+kn \), dla pewnej liczby całkowitej \( k \).

Niech teraz \( {\sf NWD}\ (a,n)=d>1 \). Najpierw pokażemy, że jeśli równanie \( ax\ \equiv_{n}b \) ma rozwiązanie, to \( d|b \). Rzeczywiście, jeśli \( ax_0\ \equiv_{n}b \) dla pewnego \( x_0 \), to \( n|ax-b \), a więc i \( d|ax-b \). Ale \( d|a \), więc \( d|b \). Na odwrót, gdy \( d|b \), to liczby \( a,b,n \) są podzielne przez \( n \). Niech więc \( a'=a/d \), \( b'=b/d \) i \( n'=n/d \). Wtedy \( {\sf NWD}\ (a',n')=1 \) i, na mocy pierwszego punktu, równanie \( a'x\ \equiv_{n'}b' \) ma nieskończenie wiele rozwiązań. Pozostaje pokazać, że są to te same rozwiązania, co dla równania \( ax\ \equiv_{n}b \). Niech więc \( n'|a'x-b' \). Wtedy \( n=dn'|d(a'x-b') = ax-b \). Gdy zaś \( ax\ \equiv_{n}b \), to \( ax=b+kn \) dla pewnego \( k\in\mathbb{Z} \). A zatem \( da'x=db'+kdn' \) i, po wydzieleniu przez \( d>1 \), dostajemy \( a'x=b'+kn' \), czyli \( a'x\ \equiv_{n'}b' \).

Na podstawie dowodu poprzednich dwu punktów wiemy więc, że by rozwiązać równanie \( ax\ \equiv_{n}b \) wystarczy:

  • policzyć \( d:={\sf NWD}\ (a,n) \) oraz współczynniki \( y,z \) takie, że \( ya+zn=d \),
  • jeśli \( d=1 \), to \( x_0 =yb \ {\sf mod} \ n \) jest poszukiwanym rozwiązaniem,
  • jeśli \( d>1 \) i \( d\not| b \), to równanie nie posiada rozwiązań,
  • jeśli \( d>1 \) i \( d|b \), to \( y\frac{b}{d} \) jest szukanym rozwiązaniem.

W pierwszym punkcie rozszerzony algorytm Euklidesa pracuje w czasie \( O(\lg^3{n}) \), bo \( a,b < n \). W kolejnych punktach wykonywane są jedynie podstawowe operacje arytmetyczne, a więc wykonywanych jest \( O(\lg^2{n}) \) operacji bitowych. Podsumowując, aby znaleźć rozwiązanie rozważanego równania (bądź stwierdzić ich brak) wystarczy \( O(\lg^3{n}) \) operacji bitowych.

Wniosek 11.6

Jeśli \( p \) jest liczbą pierwszą, to równania postaci \( ax\ \equiv_{p}b \) dla dowolnych \( 0 < a < p \) i \( 0\leq b < p \) zawsze mają rozwiązanie i można je znaleźć wykonując \( O(lg^3{p}) \) operacji bitowych.

Przykład

Rozwiążemy równanie \( 3x\equiv_7 4 \).

  • \( {\sf NWD}\ (3,7)=1 \), czyli równanie ma nieskończenie wiele rozwiązań,
  • \( 1=1\cdot7-2\cdot3 \),

czyli zbiór rozwiązań to \( {\{ {-2\cdot4+7k: k\in\mathbb{Z}} \} }={\{ {7k-1:k\in\mathbb{Z}} \} } \).

A następnie równanie \( 3x\equiv_{12}4 \).

  • \( {\sf NWD}\ (3,12)=3 \), ale \( 3\not| 4 \), czyli równanie nie ma rozwiązania.

Wreszcie rozważmy równanie \( 9x\equiv_{21}12 \).

  • \( {\sf NWD}\ (9,21)=3 \) oraz \( 3|12 \), czyli równanie ma nieskończenie wiele rozwiązań,
  • \( 3=1\cdot21-2\cdot9 \),

czyli zbiór rozwiązań to \( {\{ {-2\cdot\frac{12}{3}+ \frac{21}{3}k : k\in\mathbb{Z}} \} }={\{ {13+7k : k\in\mathbb{Z}} \} } \).

Czasem jedną kongruencję wygodnie jest zamienić na układ kongruencji wykorzystując następującą własność.

Obserwacja 11.7

Niech \( a,b,m,n\in\mathbb{Z} \), gdzie \( m,n>0 \) i \( m\perp n \). Wtedy \( a\ \equiv_{mn}b \) jest równoważne temu, że równocześnie \( a\ \equiv_{m}b \) i \( a\ \equiv_{n}b \).

Dowód

Jeśli \( a\ \equiv_{mn}b \), to \( mn|a-b \). A więc oczywiście \( m|a-b \) i \( n|a-b \), co jest równoważne z \( a\ \equiv_{m}b \) i \( a\ \equiv_{n}b \). Dla dowodu implikacji odwrotnej, że jest ona trywialna dla \( a=b \) i wobec tego przyjmijmy (bez straty ogólności), że \( a>b \). Załóżmy też, że \( m|a-b \) i \( n|a-b \). Ponieważ \( m\perp n \), to rozkłady liczb \( m \) i \( n \) nie mają wspólnych czynników pierwszych. Natomiast rozkład \( a-b \) musi zawierać wszystkie liczby pierwsze z rozkładów \( m \) i \( n \) w odpowiednio wysokich potęgach. To dowodzi, iż \( mn|a-b \), czyli \( a\ \equiv_{mn}b \).

Poprzednia obserwacja prowadzi do twierdzenia powszechnie znanego jako Chińskie Twierdzenie o Resztach. Udowodnił je chiński matematyk Sun Tzu w III wieku n.e. ( nie mylić z Sun Tzu, myślicielem, filozofem, autorem Sztuki wojny).

Twierdzenie 11.7 [Chińskie twierdzenie o resztach]

Niech \( n_1,\ldots,n_k\in\mathbb{N}-{\{ {0} \} } \) będą parami względnie pierwsze, tzn. \( n_i\perp n_j \) dla \( i\neq j \). Wtedy dla dowolnych \( a_1,\ldots,a_k \) istnieje dokładnie jedna liczba \( 0\leq x < n_1\cdot\ldots\cdot n_k \) taka, że:

\( \begin{align*} x & \equiv_{n_1} & a_1,\nonumber \\ x & \equiv_{n_2} & a_2,\nonumber \\ & \vdots & \\ x & \equiv_{n_k} & a_k.\nonumber \end{align*} \)

Dowód

Niech \( N=n_1\cdot\ldots\cdot n_k \). Dla liczby \( a \) rozważmy ciąg \( \overline{a}=(a_1,\ldots,a_k) \) reszt z dzielenia \( a \) odpowiednio przez \( n_1,\ldots,n_k \).

Niech teraz \( 0\leq a < b < N \). Gdyby \( \overline{a}=\overline{b} \), to

\( \begin{align*} a & \equiv_{n_1} & b, \\ a & \equiv_{n_2} & b, \\ & \vdots & \\ a & \equiv_{n_k} & b. \end{align*} \)

Z drugiej strony \( n_1\ldots n_i \perp n_{i+1} \), więc stosując wielokrotnie Obserwację 11.7 otrzymujemy \( i\ \equiv_{N}j \), czyli \( N|j-i \), co jest niemożliwe wobec \( 0 < j-i < N \). Sprzeczność ta pokazuje, że liczby ze zbioru \( {\{ {0,1,\ldots,N-1} \} } \) mają różne ciągi reszt. Oznacza to, że ciągów postaci \( \overline{a} \) jest dokładnie \( N \), czyli tyle ile wszystkich możliwych ciągów w \( \mathbb{Z}_{n_1}\times\ldots\times\mathbb{Z}_{n_k} \). Tym samym przyporządkowanie \( \mathbb{Z}_N \ni a \mapsto \overline{a} \in \mathbb{Z}_{n_1}\times\ldots\times\mathbb{Z}_{n_k} \) jest bijekcją, co kończy dowód twierdzenia.

Chińskie Twierdzenie o Resztach podaje warunki wystarczające na istnienie rozwiązania układu równań modularnych (1). Nie podaje jednak metody jego uzyskania.

Konstrukcja rozwiązania.

Niech \( N_j=N/n_j \), czyli \( N_j \) jest iloczynem wszystkich \( n_i \) poza \( n_j \). Oczywiście, \( {\sf NWD}\ (n_i,N_i)=1 \). Rozszerzony algorytm Euklidesa pozwala więc znaleźć liczby \( x_i \) takie, że \( N_ix_i\ \equiv_{n_i}1 \). Połóżmy

\( \displaystyle x=\sum_{i=1}^k a_i x_i N_i. \)

Wtedy \( n_i \) dzieli wszystkie czynniki sumy poza \( i \)-tym, ponieważ \( n_i|N_j \) dla \( j\neq i \). A więc, dla dowolnego \( i \) mamy:

\( x\equiv_{n_i}a_ix_iN_i\equiv_{n_i} a_i \cdot 1 =a_i. \)

To oznacza, że \( x \) jest rozwiązaniem układu równań modularnych (1).

Oszacujmy czas działania tego algorytmu. Niech \( l_1,\ldots,l_k \) będą długościami odpowiednio \( n_1,\ldots,n_k \). Wtedy \( N \) ma długość co najwyżej \( l=l_1+\ldots+l_k \). Kroki algorytmu można wykonać kolejno w czasie:

  • \( O(kl) \) na wyliczenie wszystkich iloczynów postaci \( N_i \) oraz całego iloczynu \( N \),
  • \( O(kl^3) \) na wyliczenie kolejnych współczynników \( x_i \), czyli \( k \)-krotną aplikację rozszerzonego algorytmu Euklidesa dla liczb \( n_i, N_i\leq N \),
  • \( O(kl^2) \) na obliczenie \( x \), czyli \( O(k) \) mnożeń i dodawań.

Podsumowując wszystkie kroki zostaną wykonane w czasie \( O(k\lg^3{N}) \).

Przykład

Rozważmy układ równań:

\( \begin{align*} x & \equiv_3 & 2, \\ x & \equiv_{10} & 7, \\ x & \equiv_{11} & 10, \\ x & \equiv_7 & 1. \end{align*} \)

  • \( {\sf NWD}\ (3,10)={\sf NWD}\ (3,11)={\sf NWD}\ (3,7)={\sf NWD}\ (10,11)={\sf NWD}\ (10,7)={\sf NWD}\ (11,7)=1, \)

czyli możemy zaaplikować Chińskie Twierdzenie o Resztach,

  • \( N=3\cdot7\cdot10\cdot11=2310 \),
  • \( N_1=\frac{2310}{3}=770 \),
  • \( N_2=\frac{2310}{10}=231 \),
  • \( N_3=\frac{2310}{11}=210 \),
  • \( N_4=\frac{2310}{7}=330 \).

Zgodnie z procedurą czterokrotnie używamy rozszerzonego algorytmu Euklidesa otrzymując \( x_1,\ldots,x_4 \):

  • \( {\sf NWD\ }(3,770)=1=257\cdot3-1\cdot770 \), \( x_1=-1\equiv_3 2 \),
  • \( {\sf NWD}\ (10,231)=1=-23\cdot10+1\cdot231 \), \( x_2=1 \),
  • \( {\sf NWD}\ (11,210)=1=-19\cdot11+1\cdot210 \), \( x_3=1 \),
  • \( {\sf NWD}\ (7,330)=1=-47\cdot7+1\cdot330 \), \( x_4=1 \).

Pozostaje policzyć \( x \):

\( \begin{align*} x & =2\cdot2\cdot770+7\cdot1\cdot231+10\cdot1\cdot210+1\cdot1\cdot330 \\ & =3080+1617+2100+330 \\ & =7127\equiv_{2310} 197. \end{align*} \)

A więc \( 197 \) jest najmniejszym dodatnim rozwiązaniem naszego układu równości.

Przykład

Rozważmy jeszcze jeden układ równań:

\( \begin{align*} x & \equiv_2 & 0, \\ x & \equiv_{13} & 12, \\ x & \equiv_{15} & 2. \end{align*} \)

  • \( {\sf NWD}\ (2,13)={\sf NWD}\ (2,15)={\sf NWD}\ (13,15)=1 \),

czyli możemy zaaplikować Chińskie Twierdzenie o Resztach,

  • \( N=2\cdot13\cdot15=390 \),
  • \( N_1=\frac{390}{2}=195 \),
  • \( N_2=\frac{390}{13}=30 \),
  • \( N_3=\frac{390}{15}=26 \),
  • \( {\sf NWD}\ (2,195)=1=-97\cdot2+1\cdot195 \), \( x_1=1 \),
  • \({\sf NWD}\ (13,30)=1=7\cdot13-3\cdot30 \), \( x_2=-3\equiv_{13} 10 \),
  • \( {\sf NWD}\ (15,26)=1=7\cdot15-4\cdot26 \), \( x_3=-4\equiv_{15}11 \).

Pozostaje nam obliczenie \( x \):

\( \begin{align*} x & =0\cdot1\cdot195+12\cdot10\cdot30+2\cdot26\cdot11=4172\equiv_{390}=272. \end{align*} \)

Zatem \( 272 \) jest najmniejszym dodatnim rozwiązaniem naszego układu równań.

Potęgowanie modularne

Potęgowanie modularne. Naszym celem jest policzenie

\( a^b\ {\sf mod} \ n . \)

Oczywiście, możemy założyć, że \( 0\leq a < n \), bo inaczej najpierw można policzyć resztę \( a' \) z dzielenia \( a \) przez \( n \), a dopiero potem \( (a')^b \ {\sf mod} \ n \), jako że \( (a')^b \ {\sf mod}\ n =a^b \ {\sf mod} \ n \). Zauważmy, że w przeciwieństwie do zwykłego potęgowania wynik nigdy nie przekracza \( n \), czyli nie rośnie wykładniczo w stosunku do \( a \). Pozwala to żywić nadzieję na szybsze algorytmy potęgujące. Dla rozgrzewki przeanalizujmy najpierw naiwny sposób liczenia potęgi modulo:

  • Naiwne potęgowanie modulo. Wymnóż \( a \) przez siebie \( b \)-krotnie, po każdym mnożeniu weź resztę modulo \( n \). Branie reszty po każdym mnożeniu, utrzymuje tymczasowy iloczyn w zbiorze \( {\{ {0,\ldots,n-1} \} } \). Zatem wykonywanych jest \( b \) mnożeń liczb \( O(\log{n}) \)-bitowych, czyli wykonywanych jest \( O(b\log^2{n}) \) operacji bitowych. Jest to zatem algorytm działający w czasie wykładniczym względem rozmiaru wejścia \( O(\log{b}+\log{n}) \).
  • Szybkie potęgowanie modulo. Niech \( b=(b_{k-1}\ldots b_0)_2 \) będzie binarnym zapisem liczby \( b \). Zauważmy, że \( a^b \ {\sf mod} \ n =\prod_{i=0}^{k-1}a^{b_i2^i} \ {\sf mod} \ n \).

Policzmy zatem w następujacy sposób kolejne potęgi \( a \) występujące w iloczynie:

\( \begin{align*} a \cdot a \ {\sf mod} \ n & \equiv_n & a^2 \ {\sf mod} \ n , \\ (a^2 \ {\sf mod} \ n )\cdot(a^2 \ {\sf mod}\ n ) & \equiv_n & a^4 \ {\sf mod} \ n , \\ & \ldots & \\ (a^{2^{k-2}} \ {\sf mod} \ n )\cdot(a^{2^{k-2}} \ {\sf mod} \ n ) & \equiv_n & a^{2^{k-1}} \ {\sf mod} \ n . \end{align*} \)

Tym sposobem wykonanych zostanie \( k-2 \) mnożeń i dzieleń liczb \( O(\log{n}) \)-bitowych, czyli \( O(k\log^2{n}) \) operacji bitowych. Aby otrzymać wynik musimy jeszcze wymnożyć przez siebie te potęgi, ktorym odpowiada bit \( 1 \) w liczbie \( b \). Wykonanych zostanie więc jeszcze co najwyżej \( k \) mnożeń (które przeplatamy braniem reszty modulo \( n \)) liczb \( O(\log{n}) \)-bitowych.

W sumie wykonanych zostanie \( O(k\log^2{n})=O(\log{b}\cdot\log^2{n}) \) operacji bitowych, a więc znacznie mniej niż sposobem naiwnym. Przedstawiony algorytm jest efektywny (wielomianowy względem długości wejścia).

Przykład

\( 7^{12} \ {\sf mod} \ 10 =? \)

  • \( 12=(1100)_2 \),
  • wyznaczamy wybrane potęgi \( 7 \) modulo \( 10 \):
    • \( 7^2=49\equiv_{10} 9 \),
    • \( 7^4\equiv_{10}9\cdot9=81\equiv_{10}1 \),
    • \( 7^8\equiv_{10}1\cdot1=1 \),
  • \( 7^{12}=7^8\cdot7^4\equiv_{10}1\cdot1=1 \).
  • wykonane zostały tylko \( 4 \) mnożenia!

Przykład

\( 3^{51} \ {\sf mod} \ 13 =? \)

  • \( 51=(110011)_2 \),
  • wyznaczamy wybrane potęgi \( 3 \) modulo \( 13 \):
    • \( 3^2=9 \),
    • \( 3^4=9\cdot9=81\equiv_{13}3 \),
    • \( 3^8\equiv_{13}3\cdot3=9 \),
    • \( 3^{16}\equiv_{13}9\cdot9=81\equiv_{13}3 \),
    • \( 3^{32}\equiv_{13}3\cdot3=9 \).
  • \( 3^{51}=3^{32}\cdot3^{16}\cdot3^2\cdot3^1\equiv_{13}9\cdot3\cdot9\cdot3=729\equiv_{13}1 \).

Małe Twierdzenia Fermata

Małego Twierdzenia Fermata. nie należy mylić z tzw. Wielkim Twierdzeniem Fermata, które frapowało matematyków przez wiele stuleci i zostało ostatecznie udowodnione przez Andrew Wiles'a w 1994 roku.

Zgodnie ze swoim zwyczajem, podobnie jak i w przypadku Wielkiego Twierdzenia, Fermat przedstawił Małe Twierdzenie, nie podając dowodu. List, w którym się po raz pierwszy pojawiła ta teza, później nazwana Małym Twierdzeniem Fermata, został napisany dnia 18.IX.1640. Fermat dodał komentarz: "Propozycja ta jest prawdziwa dla wszystkich liczb pierwszych; jej dowód prześlę Ci, jeśli nie będzie zbyt długi". Pierwszy znany dowód tego twierdzenia przedstawił Leibniz w 1683 roku.

Twierdzenie 11.9 [Małe Twierdzenie Fermata]

Dla dowolnej \( p \) liczby pierwszej i dowolnego \( a \) zachodzi:

\( a^p\ \equiv_{p}a . \)

Dowód

Poznamy trzy różne dowody. Najpierw jednak zauważmy, że bez straty ogólności możemy przyjąć iż \( a\in{\{ {0,\ldots,p-1} \} } \), gdyż w miejsce \( a \) możemy rozważać resztę z dzielenia \( a \) przez \( p \). Ponadto, zwróćmy uwagę, iż dla \( a=0 \) teza jest oczywista, natomiast dla \( a\in{\{ {1,\ldots,p-1} \} } \) wystarczy udowodnić, że:

\( a^{p-1}\ \equiv_{p}1 . \)

Pierwszy dowód. Dla \( a\in{\{ {1,\ldots,p-1} \} } \) rozważmy ciąg

\( a_0, a_1, a_2,\ldots, a_{p-1} \)

reszt \( a_k = ka \ {\sf mod} \ p \) liczb \( ka \) modulo \( p \). Pokażemy, że żadna wartość w tym ciągu się nie powtarza. Niech \( 0\leq i < j < p \) i, dla dowodu niewprost, niech

\( ia\ \equiv_{p}ja . \)

Wtedy \( p|(j-i)a \). Ponieważ \( p \) jest liczba pierwszą to \( p|j-i \) lub \( p|a \). Ponieważ jednak obie liczby \( a \) oraz \( j-i \) leżą w zbiorze \( {\{ {1,2,\ldots,p-1} \} } \), żaden z tych dwu przypadków nie jest możliwy. A zatem \( {\{ {a_0, a_1, a_2,\ldots, a_{p-1}} \} }= {\{ {0,1,2,\ldots,p-1} \} } \). Oczywiście \( a_0=0 \), więc iloczyny pozostałych elementów w tych dwu zbiorach muszą być równe, co daje:

\( a\cdot 2a\cdot\ldots\cdot(p-1)a \equiv_p a_1 \cdot a_ 2\cdot\ldots\cdot a_{p-1} = 1\cdot2\cdot\ldots\cdot(p-1), \)

lub inaczej:

\( (p-1)! \cdot a^{p-1} \equiv_p (p-1)!. \)

Ponieważ \( p \) jest liczbą pierwszą, wszystkie liczby ze zbioru \( {\{ {1,\ldots,p-1} \} } \) są względnie pierwsze z \( p \), więc i \( (p-1)!\perp p \). Można więc zastosować regułę skracania:

\( a^{p-1}\ \equiv_{p}1 . \)

Drugi dowód. Dla dowodu indukcyjnego względem \( a=0,1,2,\ldots,p-1 \) zauważmy najpierw, że w oczywisty sposób \( 0^p\ \equiv_{p}0 \) oraz \( 1^p\ \equiv_{p}1 \) i załóżmy, że \( k^p\ \equiv_{p}k \). Aby udowodnić, że:

\( (k+1)^p\ \equiv_{p}k+1 \)

pokażemy znacznie mocniejszą równość

\( (x+y)^p\ \equiv_{p}x^p+y^p , \)

która przy \( x=k \) i \( y=1 \) pozwoli zakończyć dowód indukcyjny.

Rozwijając dwumian \( (x+y)^p \) mamy:

\( \displaystyle (x+y)^p=\sum_{i=0}^p{p\choose i}x^iy^{p-i}. \)

Współczynnik \( {p\choose i}=\frac{p!}{i!(p-i)!} \) jest zawsze liczbą całkowitą. Ponadto, jeśli \( 0 < i < p \), to wszystkie czynniki obu silni mianownika są względnie pierwsze z \( p \), bo \( p \) jest pierwsza, a czynniki te są mniejsze niż \( p \). Oznacza to, iż w rozkładzie \( {p\choose i} \) na czynniki pierwsze musi znaleźć się \( p \). To zaś implikuje \( {p\choose i}\ \equiv_{p}0 \) dla \( 0 < i < p \). A więc

\( \displaystyle (x+y)^p =\sum_{i=0}^p{p\choose i}x^iy^{p-i} \equiv_p \sum_{i\in{\{ {0,p} \} }}{p\choose i}x^iy^{p-i} =x^p+y^p. \)

Trzeci dowód. Niech \( a\in{\{ {1,\ldots,p-1} \} } \).

Rozważmy słowa długości \( p \) nad alfabetem \( a \)-elementowym.

Przykład

Niech \( p=7 \), \( a=3 \). Symbolami alfabetu niech będą A,B,C. Oto mocno skrócona lista \( 3^7=2187 \) wszystkich słów \( 7 \)-literowych nad tym alfabetem.

AAAAAAA, AAAAAAB, AAAAAAC, AAAAABA, AAAAABB,
AAAAABC, AAAAACA, AAAAACB, AAAAACC, ...
...
CCCCCBB, CCCCCBC, CCCCCCA, CCCCCCB, CCCCCCC.

Wszystkich takich słów jest \( a^p \). Pokażemy, że po usunięciu słów jednoliterowych, pozostałe \( a^p-a \) słów będzie można podzielić na rozłączne \( p \)-elementowe grupy. To oczywiście natychmiast da \( p|a^p-a \), czyli pożądaną równość \( a^p\ \equiv_{p}a \).

Słowo \( v \) nazwiemy przesunięciem cyklicznym słowa \( w=w_1\ldots w_k \) o \( i \) liter, jeśli

\( v=w_{i+1}w_{i+2}\ldots w_kw_1\ldots w_{i-1}w_i. \)

Przykład

Przesunięcia cykliczne słowa CBAABCB:


CBAABCB, BAABCBC, AABCBCB, ABCBCBA, BCBCBAA,
CBCBAAB, BCBAABC.

Przesunięcia cykliczne słowa ABCABC:

ABCABC, BCABCA, CABCAB.

Drugi przykład pokazuje, że niektóre przesuniecia cyklicze sa równe. W istocie mamy:

Lemat 11.10

Niech \( v \) będzie słowem, którego nie da się przedstawić jako \( u^l=u\ldots u \), dla żadnego słowa \( u \) i żadnej liczby \( l>0 \). Z kolei niech \( w= v^k=v\ldots v \), dla pewnego \( k>0 \). Wtedy słowo \( w \) ma dokładnie \(| \) różnych przesunięć cyklicznych.

Dowód

Oczywiście, jeśli liczba liter, o które różnią się dwa przesunięcia cykliczne jest wielokrotnością długousi słowa \( v \), to te dwa przesunięcia dają to samo słowo. A zatem \( w \) ma co najwyżej \( | \) różnych przesunięć cyklicznych. Z drugiej strony, gdyby dwa przesunięcia cykliczne słowa \( v \) były równe, to dawałyby to samo słowo. Istotnie, gdy \( v=v_1\ldots v_m \) i \( v_1,\ldots,v_m \) są literami alfabetu, to każde przesunięcie cykliczne prowadzi do jednego ze słów z listy:

\( \begin{array} {rcll} v_1v_2v_3\ldots v_m & v^{k-1} & & , \\ v_2v_3\ldots v_m & v^{k-1} & v_1 & , \\ v_3\ldots v_m & v^{k-1} & v_1v_2 & , \\ & \vdots & & \\ v_m & v^{k-1} & v_1\ldots v_{m-1} & . \end{array} \)

Ponieważ \( |=m \), pozostaje pokazać, że słowa na tej liście sa różne. Dla dowodu niewprost, bez straty ogólności, możemy założyć, że:

\( v_1\ldots v_m v^{k-1}=v_i\ldots v_m v^{k-1}v_1v_2\ldots v_{i-1}, \)

dla pewnego \( 1 < i\leq m \). Wtedy

\( v_1\ldots v_m=v_i\ldots v_mv_1\ldots v_{i-1}. \)

To z kolei prowadzi do ciągu równości w poniższym diagramie:

\( \begin{array} {lcllcllcl} v_1 & \ldots & v_{m-(i-1)} & v_{m-(i-1)+1} & \ldots & v_{m-2(i-1)} & v_{m-2(i-1)+1} & \ldots & v_{m-3(i-1)}\ldots \\ & \parallel & & & \parallel & & & \parallel & \\ v_i & \ldots & v_m & v_1 & \ldots & v_{m-(i-1)} & v_{m-(i-1)+1} & \ldots & v_{m-2(i-1)}\ldots \end{array} \)

Czyli słowo \( v \) jest postaci \( v=x^l \) dla \( x=v_i\ldots v_m \) i \( l=\frac{m}{m-(i-1)} \), wbrew założeniom lematu.

Wyposażeni w Lemat, możemy powrócić do trzeciego dowodu Małego Twierdzenia Fermata. Niech więc \( w \) będzie słowem, w którym występują dwie różne litery alfabetu. Słowo to nie może być postaci \( v^l \), gdzie \( l\geq2 \), gdyż inaczej \( | |p \), a skoro \( p \) jest liczbą pierwszą, to \( |=1 \) lub \( |=p=| \). W pierwszym przypadku \( w \) jest jednoliterowe, a w drugim \( v=w \) i \( l=1 \). A zatem każde z \( a^p-a \) słów \( w \) ma dokładnie \( p \) różnych przesunięć cyklicznych. To dowodzi, iż \( p|a^p-a \), czyli \( a^p\ \equiv_{p}a \).

W jednym z dalszych wykładów poznamy jeszcze jeden dowód Małego Twierdzenia Fermata, oparty na elementarnej wiedzy z teorii grup.

Potęgowanie modulo liczba pierwsza.

Wykorzystując Małe Twierdzenie Fermata możemy trochę poprawić szybkość potęgowania modularnego. Asymptotycznie jednak złożoność pozostanie taka sama. Zauważmy bowiem, że:

\( a^b \equiv_p a^{b'}, \)

gdzie \( b' \) jest resztą z dzielenia \( b \) przez \( p-1 \).

Przykład

Policzmy \( 7^{126} \ {\sf mod} \ 11 \).

  • \( 11 \) jest liczba pierwszą, czyli możemy skorzystać z Małego Twierdzenia Fermata,
  • \( 126 \ {\sf mod} \ 10 =6 \),
  • \( 7^{126}\equiv_{11}7^6 \),
  • \( 6=(110)_2 \),
  • liczymy wybrane potęgi \( 7 \) modulo \( 11 \):
    • \( 7^2=49\equiv_{11}5 \),
    • \( 7^4\equiv_{11}5\cdot5=25\equiv_{11}4 \).
  • \( 7^{127}\equiv_{11}7^6=7^4\cdot7^2\equiv_{11}4\cdot5=20\equiv_{11}9 \).
  • wykonaliśmy \( 3 \) mnożenia.

Twierdzenie Eulera

Poznamy teraz uogólnienie Małego Twierdzenia Fermata pochodzące od Eulera. Uogólnienie to leży u podstaw znanego systemu kryptograficznego - RSA. Potrzebne nam będzie funkcja zliczające liczby względnie pierwsze z liczbą \( n \).

Funkcja \( \varphi \)-Eulera to \( \varphi:\mathbb{N}-{\{ {0} \} }\longrightarrow\mathbb{N} \) zdefiniowaną poprzez

\( \varphi(n)=\vert{\{ {1\leq a < n\quad:\quad {\sf NWD}\ (a,n)=1} \} }\vert. \)

Obserwacja 11.11

Dla dowolnej liczby pierwszej \( p \) zachodzi:

  • \( \varphi(p)=p-1 \),
  • \( \varphi(p^\alpha)=p^\alpha-p^{\alpha-1}=p^\alpha(1-\frac{1}{p}) \).

Dowód

Ponieważ \( p \) jest pierwsza, liczby \( 1,2,\ldots,p-1 \) są z nią względnie pierwsze, co dowodzi pierwszego punktu. Dla dowodu punktu drugiego zauważmy najpierw, że jedynie wielokrotności liczby \( p \) mają nietrywialny wspólny dzielnik z \( p^\alpha \). Wielokrotności tych w przedziale [\( 1,p^\alpha \)] jest dokładnie \( p^{\alpha-1} \), stąd \( \varphi(p^\alpha)=p^\alpha-p^{\alpha-1} \).

Obserwacja 11.12

Dla dowolnych \( m,n>0 \) takich, że \( m\perp n \) zachodzi

\( \varphi(m n)=\varphi(m)\varphi(n). \)

Dowód

Z Chińskiego Twierdzenia o Resztach wiemy, iż każda liczba z przedziału \( [0,\ldots,mn-1] \) jest jednoznacznie wyznaczona przez jej reszty modulo \( m \) i modulo \( n \). Wiemy także, że dla dowolnego \( a \):

\( {\sf NWD}\ (a,mn)=1 \) wtedy i tylko wtedy, gdy \( {\sf NWD}\ (a,m)=1={\sf NWD}\ (a,n) \).

To oznacza, iż liczb \( 0\leq a < mn \) takich, że \( a \perp mn \) jest dokładnie tyle co par \( (i_1,i_2) \) takich, że \( 0\leq i_1 < m \), \( 0\leq i_2 < n \) oraz \( i_1 \perp m \), \( i_2\perp n \).

Wniosek 11.13

Jeśli \( n=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k} \) jest rozkładem na liczby pierwsze \( p_i \), w którym \( \alpha_i\geq 1 \), to:

\( \begin{align*} \varphi(n) & =\varphi(p_1^{\alpha_1})\ldots\varphi(p_k^{\alpha_k}) \\ & =p_1^{\alpha_1}(1-\frac{1}{p_1})p_2^{\alpha_2}(1-\frac{1}{p_2})\ldots p_k^{\alpha_k}(1-\frac{1}{p_k}) \\ & =n\cdot\prod_{p|n}(1-\frac{1}{p}), \end{align*} \)

gdzie ostatnim iloczyn przebiega po wszystkich liczbach pierwszych \( p \) dzielących \( n \).

Przykład

Policzmy \( \varphi(2006) \):

  • \( 2006=2\cdot17\cdot59 \),
  • \( \varphi(2006)=2006\cdot(1-\frac{1}{2})\cdot(1-\frac{1}{17})\cdot(1-\frac{1}{59})=928 \).

Oraz \( \varphi(1980) \):

  • \( 1980=2^2\cdot3^2\cdot5\cdot11 \),
  • \( \varphi(1980)=1980\cdot(1-\frac{1}{2})\cdot(1-\frac{1}{3})\cdot(1-\frac{1}{5})\cdot(1-\frac{1}{11})=480 \).

Twierdzenie 11.14 [Euler 1736]

Dla dowolnych \( a,n \), gdzie \( {\sf NWD}\ (a,n)=1 \) zachodzi:

\( a^{\varphi(n)}\ \equiv_{n}1 . \)

Dowód

Zmodyfikujmy pierwszy z poznanych dowodów Małego Twierdzenia Fermata. Niech \( m_1 < m_2 < \ldots < m_{\varphi(n)} \) będą wszystkimi liczbami względnie pierwszymi z \( n \) i niewiększymi od \( n \). Rozważmy ciąg

\( a_1, a_2,\ldots, a_{\varphi(n)} \)

reszt \( a_i = m_i a \ {\sf mod}\ n \) liczb \( m_i a \) modulo \( n \). Pokażemy, że żadna wartość w tym ciągu się nie powtarza. Niech \( 1\leq i < j\leq \varphi(n) \) i, dla dowodu niewprost, niech

\( m_ia\ \equiv_{n}m_ja . \)

Wtedy \( n|(m_j-m_i)a \), a ponieważ \( n\perp a \), to \( n|m_j-m_i \), co jest niemożliwe wobec \( 0 < m_j-m_i < n \).

Ponadto pokażmy, że każde \( a_i \) jest względnie pierwsze z \( n \). Załóżmy zatem, że \( d|a_i \) oraz \( d|n \). Ponieważ \( a_i=m_ia-qn \) dla pewnego \( q \), to \( d|m_i a \). Z drugiej strony \( d|n \), \( n \perp m_i \) i \( n \perp a \), co daje \( d\perp m \) i \( d\perp a \). A więc \( d=1 \), czyli w istocie \( a_i \perp n \).

Wiemy więc, że liczby \( a_1,\ldots,a_{\varphi(n)} \) przyjmują wszystkie wartości \( m_1,\ldots,m_{\varphi(n)} \) i każdą tylko raz. A zatem

\( m_1a\cdot m_2a\cdot\ldots\cdot m_{\varphi(n)}a \equiv_n a_1\cdot a_2\ldots a_{\varphi(n)} =m_1\cdot m_2\cdot\ldots\cdot m_{\varphi(n)}. \)

Ponieważ liczby \( m_1,\ldots,m_{\varphi(n)} \) są względnie pierwsze z \( n \) możemy zastosować regułę skracania, by dostać

\( a^{\varphi(m)}\ \equiv_{n}1 . \)

Zastosowanie Twierdzenia Eulera do szybkiego potęgowania.

Twierdzenie Eulera, tak jak uprzednio Twierdzenie Fermata, możemy wykorzystać do przyspieszenia potęgowania modularnego. Wymaga to jednak, by podstawa potęgi była względnie pierwsza z modułem \( n \). Jest to istotnie słabszy warunek, niż ten wymagany przez Małe Twierdzenie Fermata. Zwracamy jednak uwagę, że aby zastosować Twierdzenie Eulera musimy w szczególności znać wartość funkcji \( \varphi \) dla modułu \( n \). Jak się przekonamy podczas poznawania algorytmu RSA, wartość \( \varphi(n) \) jest jednak jest tak trudna do policzenia, jak rozkład \( n \) na czynniki pierwsze.

Przykład

Spróbujmy policzyć \( 13^{101} \ {\sf mod} \ 16 \).

  • \( 13\perp16 \), czyli możemy skorzystać z Twierdzenia Eulera,
  • \( \varphi(16)=8 \),
  • \( 101 \ {\sf mod} \ 8 =5 \),
  • \( 13^{101}\equiv_{16} 13^5 \),
  • \( 5=(101)_2 \),
  • liczymy wybrane potęgi \( 13 \) modulo \( 16 \):
    • \( 13^1\equiv_{16}13 \),
    • \( 13^2\equiv_{16}13\cdot13= 169 \equiv_{16} 9 \),
    • \( 13^4\equiv_{16}9\cdot9=81\equiv_{16}1 \).
  • \( 13^{101}\equiv_{16}13^5=13^4\cdot13^1\equiv_{16}1\cdot13=13 \).

Funkcja Mobiusa

Choć Wniosek 11.13 wyprowadziliśmy już bezpośrednio z Obserwacji 11.11 i 11.12, na zakończenie tego wykładu przedstawimy jego alternatywny dowód. Metoda użyta w tym alternatywnym dowodzie będzie przydatna w kilku innych sytuacjach.

Dowód

Niech \( n=p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k} \) będzie rozkładem na liczby pierwsze \( p_i \), w którym \( \alpha_i\geq 1 \). Zdefiniujmy \( A_i \) jako zbiór wielokrotności liczby \( p_i \) w \( {\{ {1,\ldots,n-1} \} } \). Wtedy \( \varphi(n)=n-\vert A_1\cup\ldots\cup A_k\vert \). Korzystając z Zasady Włączania i Wyłączania otrzymujemy

\( \varphi(n)=n-\vert A_1\cup\ldots\cup A_k\vert=n-\alpha_1+\alpha_2-\ldots+(-1)^k\alpha_k, \)

gdzie \( \displaystyle \alpha_i=\sum_{1\leq j_1 < \ldots < j_i\leq k}\vert A_{j_1}\cap\ldots\cap A_{j_i}\vert \). Zauważmy, że zbiór \( A_{j_1}\cap\ldots\cap A_{j_i} \) składa się z wielokrotności liczby \( P=p_{j_1}\cdot\ldots\cdot p_{j_k} \), czyli liczb \( P,2P,\ldots,(\frac{n}{P})P \). Zatem \( \vert A_{j_1}\cap\ldots\cap A_{j_i}\vert=\frac{n}{P}=\frac{n}{p_{i_1}\cdot\ldots\cdot p_{j_i}} \), skąd

\( \displaystyle \alpha_i=\sum_{1\leq j_1 < \ldots < j_i\leq k}\frac{n}{p_{j_1}\cdot\ldots\cdot p_{j_i}}=n\sum_{1\leq j_1 < \ldots < j_i\leq k}\frac{1}{p_{j_1}\cdot\ldots\cdot p_{j_i}}. \)

Teraz łatwo już policzyć

\( \begin{align*} \varphi(n) & =n-\alpha_1+\alpha_2-\alpha_3+\ldots+(-1)^k\alpha_k \\ & =n-n(\frac{1}{p_1}+\frac{1}{p_2}+\ldots+\frac{1}{p_k})+n(\frac{1}{p_1p_2}+\frac{1}{p_1p_3}+\ldots)-\ldots \\ & & \ldots+n(-1)^k\frac{1}{p_1\cdot\ldots\cdot p_k}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(*) \\ & =n(1-\frac{1}{p_1})\cdot\ldots\cdot(1-\frac{1}{p_k}). \end{align*} \)

Przyjrzyjmy się temu dowodowi trochę dokładniej. Analizując ostatnią sumę dla \( n=60=2^2\cdot3\cdot5 \) mamy

\( \varphi(60)=\frac{60}{1}-(\frac{60}{2}+\frac{60}{3}+\frac{60}{5})+(\frac{60}{6}+\frac{60}{10}+\frac{60}{15})-\frac{60}{30}. \)

Po prawej stronie mamy naprzemienną sumę składników \( \frac{n}{d} \), gdzie \( d \) przebiega kolejne dzielniki liczby \( n \), będące iloczynem różnych liczb pierwszych. Czynnik jest dodawany, jeśli \( d \) jest iloczynem parzystej liczby liczb pierwszych i odejmowany, jeśli \( d \) jest iloczynem nieparzystej liczby liczb pierwszych. Zależność tę możemy ogólniej zapisać w postaci

\( \displaystyle \varphi(n)=\sum_{d|n}\mu(d)\frac{n}{d}, \)

gdzie \( \mu(d) \) zadana jest przez:

\( \mu(d)= \left\{\begin{array} {cl} 1, & \textrm{jeśli d=1,} \\ (-1)^k, & \textrm{jeśli d jest iloczynem k różnych liczb pierwszych,} \\ 0, & \textrm{jeśli w rozkładzie d któryś z czynników się powtarza.} \end{array} \right. \)

Funkcja \( \mu(d) \) jest znana jako funkcja Mobiusa, na cześć niemieckiego matematyka Augusta Ferdynanda Mobiusa, który jako pierwszy użył jej w 1831 roku. Funkcja Mobiusa pojawia się nieoczekiwanie w wielu rozważaniach Matematyki Dyskretnej. Pojawi się też i u nas w wykładach poświęconych teorii grup i teorii ciał.

Obserwacja 11.15

Dla dowolnego \( n\geq2 \) mamy \( \displaystyle \sum_{d|n}\mu(d)=0. \)

Dowód

Niech \( n=p_1^{\alpha_1}\cdot\ldots\cdot p_k^{\alpha} \). Wtedy każdy dzielnik \( d \) liczby \( n \) ma rozkład \( d=p_1^{\beta_1}\cdot\ldots\cdot p_k^{\beta_k} \), gdzie \( 0\leq\beta_i\leq\alpha_i \). Jeśli choć jedno \( \beta_i>1 \), to \( \mu(d)=0 \). Rozważmy więc tylko te dzielniki dla których \( \beta_i\in{\{ {0,1} \} } \). Każdy taki dzielnik wyznacza jednoznacznie pewien podzbiór zbioru \( {\{ {1,\ldots,k} \} } \), przy czym wartościom \( d \), dla których \( \mu(d)=1 \) odpowiadają podzbiory o parzystej liczbie elementów, a wartościom \( d \), dla których \( \mu(d)=-1 \) odpowiadają podzbiory o nieparzystej liczbie elementów. A zatem:

\( \displaystyle \sum_{d|n}\mu(d)=1-{k\choose 1}+{k\choose2}- \ldots+(-1)^k{k\choose k}=0. \)

Obserwacja 11.16 [wzór inwersyjny Mobiusa]

Dla dowolnych funkcji \( f,g : \mathbb{N} \longrightarrow \mathbb{R} \), jeśli \( \displaystyle f(n)=\sum_{d|n}g(d) \), to \( \displaystyle g(n)=\sum_{d|n}\mu(d)f(\frac{n}{d}) \).

Dowód

Ponieważ

\( \displaystyle f(n)= \sum_{d|n}g(d), \)

\( \begin{align*} \sum_{d|n} \mu(d) f(\frac{n}{d}) & =\sum_{d|n} \mu(d)\sum_{c|\frac{n}{d}}g(c) \\ & =\sum_{d|n,c|\frac{n}{d}} \mu(d)g(c). \end{align*} \)

Zauważmy, iż \( {\{ {(c,d):d|n,c|\frac{n}{d}} \} }={\{ {(c,d):c|n,d|\frac{n}{c}} \} } \). Zatem

\( \begin{align*} \sum_{d|n} \mu(d) f(\frac{n}{d}) & =\sum_{c|n,d|\frac{n}{c}}\mu(d)g(c) \\ & =\sum_{c|n}g(c)\sum_{d|\frac{n}{c}}\mu(d). \end{align*} \)

Z Obserwacji 11.15 wiemy, że wewnętrze sumy zerują się dla wszystkich \( \frac{n}{c}\geq2 \). Zatem jedyny interesujący składnik zewnętrznej sumy dostajemy przy \( c=n \):

\( \begin{align*} \sum_{d|n} \mu(d) f(\frac{n}{d}) & =\sum_{c|n}g(c)\sum_{d|\frac{n}{c}}\mu(d) \\ & =g(n)\sum_{d|1}\mu(d)=g(n)\mu(1)=g(n). \end{align*} \)

Jako ćwiczenie pozostawiamy użycie wzoru inwersyjnego Mobiusa do wyprowadzenia następującego wniosku:

Wniosek 11.17

\( \sum_{d|n} \varphi(d) = n \).

Grafy

Czym jest graf


Wyruszając w daleką podróż zabieramy ze sobą mapę samochodową. Głównymi elementami graficznymi zawartymi w mapie są punkty (małe kółka) symbolizujące miasta, oraz odcinki (lub łuki) obrazujące drogi pomiędzy nimi. Taka mapa jest z grubsza przedstawieniem rzeczywistości za pomocą grafu. Chcąc na przykład znaleźć drogę z Bydgoszczy do Krakowa, szukamy ciągu kolejno połączonych miast zaczynającego się w Bydgoszczy i kończącego się w Krakowie. Jest to nic innego, jak znalezienie odpowiedniej ścieżki w grafie połączeń między miastami.

Graf to para \( \mathbf{G}=( V,E ) \), gdzie:

  • \( V \) jest zbiorem wierzchołków,

(czasami zwanymi węzłami lub punktami grafu)

  • \( E \) jest rodziną (być może powtarzających się) krawędzi,

czyli jedno- i dwu-elementowych podzbiorów \( V \).

Graf prosty to para \( \mathbf{G}=( V,E ) \), gdzie:

  • \( V \) jest zbiorem wierzchołków,
  • \( E \) jest zbiorem krawędzi między różnymi wierzchołkami,

czyli dwu-elementowych podzbiorów \( V \).

Graf ogólny (a.) oraz prosty (b.)

Uwaga

W grafie w odróżnieniu od grafu prostego dopuszczamy pętle oraz krawędzie wielokrotne. Wierzchołek nazywany jest czasem także węzłem, jak i punktem grafu. Krawędź łącząca \( v \) z \( w \) oznaczana będzie jako \( vw \). Jeśli istnieje krawędź \( vw \) to mówimy, że \( v \) i \( w \) są sąsiadami; oraz że krawędź \( vw \) jest incydentna do \( v \) (\( w \)). Ponadto, dla grafu \( \mathbf{G} \) symbolem \( {\sf V}\!(\mathbf{G}) \) będziemy oznaczać jego zbiór wierzchołków, zaś symbolem \( {\sf E}\!(\mathbf{G}) \) jego zbiór krawędzi. Czasem, dla odróżnienia grafu od grafu prostego, graf będziemy nazywać też grafem ogólnym.

Stopień wierzchołka \( v \) w grafie \( \mathbf{G} \) to liczba krawędzi incydentnych z \( v \). Stopień wierzchołka \( v \) oznaczany jest jako \( {\sf deg}\ v \).

Obserwacja 12.1

Jeśli \( \mathbf{G}=( V,E ) \) jest grafem ogólnym, to

\( \displaystyle\sum_{v\in V}{\sf deg}\ v=2\vert E \vert. \)

A zatem liczba wierzchołków o nieparzystym stopniu jest parzysta.

Dowód

Każda krawędź jest incydentna do dwóch wierzchołków. Zliczając krawędzie incydentne do kolejnych wierzchołków, a następnie sumując te wartości, każda krawędź \( vw \) zostanie zliczona dwa razy: raz przy rozpatrywaniu wierzchołka \( v \), a drugi raz przy \( w \).

Jeśli \( \mathbf{G} \) miałby nieparzyście wiele wierzchołków o nieparzystym stopniu to suma \( \displaystyle\sum_{v\in V}{\sf deg}\ v \) byłaby nieparzysta, wbrew temu, że jest liczbą parzystą \( 2\vert E \vert \).

Uwaga

Dla grafów \( \mathbf{G}=( V,E ) \), \( \mathbf{G}_1=( V_1,E_1 ) \), \( \mathbf{G}_2=( V_2,E_2 ) \) definiujemy następujące pojęcia:

  • suma grafów \( \mathbf{G}_1\cup\mathbf{G}_2=( V_1\cup V_2,E_1\cup E_2 ) \),
  • przecięcie grafów \( \mathbf{G}_1\cap\mathbf{G}_2=( V_1\cap V_2,E_1\cap E_2 ) \),
  • różnica grafów \( \mathbf{G}_1-\mathbf{G}_2=( V_1- V_2,E_1- E_2 ) \),
  • podgraf grafu \( \mathbf{G} \) to graf \( \mathbf{H} \), w którym \( {\sf V}\!(\mathbf{H})\subseteq{\sf V}\!(\mathbf{G}) \) i \( {\sf E}\!(\mathbf{H})\subseteq{\sf E}\!(\mathbf{G}) \),
  • restrykcja grafu \( \mathbf{G} \) do podzbioru \( X\subseteq V \) to \( \mathbf{G}|_X=( X,\lbrace vw:v,w\in X \rbrace ) \),
  • podgraf indukowany grafu \( \mathbf{G} \) to graf będący restrykcją grafu \( \mathbf{G} \),
  • iloraz grafu \( \mathbf{G} \) przez relację równoważności \( \theta\subseteq V\times V \) na zbiorze jego wierzchołków to graf postaci

\( \mathbf{G}/\theta=( V/\theta,\lbrace \lbrace v/\theta,w/\theta \rbrace:\lbrace v,w \rbrace\in E \rbrace ), \)

  • ściągnięcie zbioru wierzchołków \( X\subseteq V \) w grafie \( \mathbf{G} \) to szczególny przypadek ilorazu \( \mathbf{G}/\theta \), w którym klasy równoważności wszystkich wierzchołków spoza \( X \) są jednoelementowe, a \( X \) stanowi dodatkową klasę, tzn. \( V/\theta=\lbrace \lbrace v \rbrace:v\in V- X \rbrace\cup\lbrace X \rbrace \). W ten sposób zbiór \( X \) został ściągnięty do punktu, którego sąsiadami są sąsiedzi jakiegokolwiek wierzchołka z \( X \). Z drugiej strony, jeśli \( \theta\subseteq V\times V \) jest relacją równoważności o klasach \( X_1,\ldots,X_k \), to ściągając w grafie \( \mathbf{G} \) kolejno zbiory \( X_1,\ldots,X_k \) otrzymamy graf ilorazowy \( \mathbf{G}/\theta \).

W dotychczasowej interpretacji grafów, jako mapy dróg zakładaliśmy, że istnienie drogi np. z Krakowa do Zakopanego, gwarantowało także możliwość powrotu po tej samej trasie. To oczywiście nie musi być zawsze prawdą, np. w miastach jest wiele dróg jednokierunkowych. Chcąc rozważać również takie jednokierunkowe trasy, tzn uwzględniać kierunek relacji między dwoma obiektami, będziemy mówić o grafach skierowanych.

Graf skierowany (lub inaczej digraf) to para \( \mathbf{D}=( V,E ) \), gdzie

  • \( V \) jest zbiorem wierzchołków,
  • \( E \) jest zbiorem krawędzi skierowanych, czyli \( E\subseteq V\times V \).

Uwaga

Krawędź digrafu (czyli uporządkowaną parę) \( vw \) graficznie przedstawiamy jako strzałkę \( v\ \bullet\!\longrightarrow\!\bullet\ w \).

Graf szkieletowy digrafu \( \mathbf{D} \) to graf otrzymany z \( \mathbf{D} \) poprzez zaniedbanie (usunięcie) kierunku krawędzi, ale nie samych krawędzi.

Ścieżki, Cykle, oraz Spójność

Marszruta w grafie \( \mathbf{G} \) z wierzchołka \( w \) do wierzchołka \( u \) to skończony ciąg krawędzi w postaci \( w v_1,v_1 v_2,\ldots,v_{k-1} u \).
W skrócie marszrutę taką oznaczamy przez \( w\to v_1\to v_2\to\ldots\to v_{k-1}\to u \).
Wierzchołek \( w \) nazywać będziemy początkowym, a \( u \) końcowym wierzchołkiem marszruty.

Długość marszruty \( w\to v_1\to v_2\to\ldots\to v_{k-1}\to u \) to liczba jej krawędzi.

Marszruta zamknięta to marszruta kończąca się w punkcie wyjścia, czyli taka, w której \( w=u \).

Uwaga

Marszruta może być również zdefiniowana w grafach skierowanych. Definiuje się ją analogicznie, uwzględniając jednak kierunek krawędzi. Marszruta taka, zgodna z kierunkiem krawędzi nazywana jest marszrutą skierowaną.

W grafie z rysunku Grafy marszruta ciąg \( u\to v\to w\to z\to z\to y\to v\to w\to v \) jest marszrutą z \( u \) do \( v \) o długości \( 8 \). Widzimy, że niektóre jej wierzchołki, a nawet krawędzie, powtarzają się. Wygodnie jest móc wyróżniać marszruty bez powtarzających się wierzchołków.

Droga to marszruta bez powtarzających się wierzchołków. Droga nazywana jest też często ścieżką.

Cykl to marszruta zamknięta, w której jedynym powtarzającym się wierzchołkiem jest jej początek (będący oczywiście również jej końcem).

W grafie z rysunku Grafy marszruta marszruta \( y\to v\to w\to u\to x \) jest drogą, zaś marszruta \( x\to u\to v\to w\to y\to x \) jest cyklem.
Czasem wygodnie jest traktować marszrutę w grafie \( \mathbf{G} \) (a więc w szczególności również cykle i ścieżki) jako podgraf

\( \mathbf{M}=( {\sf V}\!(\mathbf{M}),{\sf E}\!(\mathbf{M}) ) :=( \lbrace v_0,\ldots,v_k \rbrace,\lbrace \lbrace v_0,v_1 \rbrace,\ldots,\lbrace v_{k-1},v_k \rbrace \rbrace ). \)

Graf spójny to graf, w którym między dwoma dowolnymi wierzchołkami istnieje droga. Graf niespójny to graf, który nie jest spójny.

Spójna składowa grafu \( \mathbf{G}=(V,E) \) to maksymalny (w sensie inkluzji) podzbiór \( X\subseteq V \), indukujący graf spójny \( \mathbf{G}|_X \).

Graf z rysunku Grafy marszruta jest spójny.

Uwaga

Dowolnym graf \( \mathbf{G} \) rozpada się na spójne składowe, tworzące podział zbioru \( V \). Grafy spójne mają jedynie jedną spójną składową, w przeciwieństwie do grafów niespójnych posiadających ich więcej.
Rozkład na spójne składowe wyznacza relacją równoważności \( \sigma\subseteq V \times V \), dla której graf ilorazowy \( \mathbf{G}/\sigma \) jest antykliką.

Wierzchołek izolowany to wierzchołek nie posiadający sąsiadów.

Uwaga

Punkty izolowane tworzą jednoelemetowe spójne składowe.

Graf z rysunku Grafy spojne skladowe ma trzy spójne składowe: \( \lbrace v,w,y,x \rbrace,\lbrace u,z \rbrace,\lbrace t \rbrace \). Ponadto \( t \) jest punktem izolowanym.

Intuicyjnie wydaje się, że graf spójny powinien mieć dostatecznie dużo krawędzi w stosunku do liczby wierzchołków. Okazuje się jednak, że w grafie spójnym \( \mathbf{G}=(V,E) \) możemy wymusić jedynie \( \vert V \vert-1 \) krawędzi. Z drugiej jednak strony, gdy graf \( \mathbf{G} \) ma więcej niż \( \vert V \vert\cdot(\vert V \vert-1)/2 \) krawędzi, to musi być spójny. Rezultaty te można uzyskać z bardziej ogólnego wyniku:

Twierdzenie 12.2

W grafie prostym \( \mathbf{G}=(V,E) \) o \( k \) składowych spójnych liczba jego krawędzi spełnia nierówności

\( \vert V \vert-k\leq \vert E \vert\leq\frac{(\vert V \vert-k)(\vert V \vert-k+1)}{2}. \)

Ponadto, są to najlepsze możliwe ograniczenia, tzn.

  • istnieje graf prosty \( \mathbf{G}=(V,E) \) o dokładnie \( k \) składowych spójnych, w którym \( \vert E \vert= \vert V \vert-k \),
  • istnieje graf prosty \( \mathbf{G}=(V,E) \) o dokładnie \( k \) składowych spójnych, w którym \( \vert E \vert= \frac{(\vert V \vert-k)(\vert V \vert-k+1)}{2} \).

Dowód

Niech \( n \) będzie liczbą wierzchołków grafu \( \mathbf{G} \), a \( m \) liczbą jego krawędzi. Dowód nierówności \( n-k\leq m \) przeprowadzimy indukcyjnie względem liczby krawędzi \( m \) w grafie \( \mathbf{G} \). Jeżeli \( m=0 \), to wszystkie wierzchołki są punktami izolowanymi czyli \( k=n \), co spełnia żądaną nierówność. Przy \( m>0 \) usunięcie krawędzi może nie zmienić liczby składowych spójnych albo zwiększyć ją o jeden. W pierwszym przypadku z założenia indukcyjnego dostaniemy odrazu że \( n-k\leq m-1\leq m \), zaś w drugim, założenie indukcyjne daje \( n-(k+1)\leq m-1 \), czyli rzeczywiście \( n-k\leq m \).

Dla dowodu górnego ograniczenia \( m\leq (n-k)(n-k+1)/2 \) na liczbę krawędzi załóżmy, że \( \mathbf{G} \) posiada \( k \) składowych spójnych i ma największą możliwą liczbę krawędzi wśród \( n \)-elementowych grafów o \( k \) składowych spójnych. Wtedy każda z tych składowych jest grafem pełnym, jako że inaczej moglibyśmy dołożyć krawędzie w takiej niepełnej składowej, nie zmieniając przy tym liczb \( k \) i \( n \). Pokażemy dodatkowo, że co najwyżej jedna z tych składowych może mieć więcej niż jeden wierzchołek. Istotnie, gdyby były dwie składowe \( V_1, V_2 \) o odpowiednio \( n_1 \geq n_2 >1 \) wierzchołkach, to - nie zmieniając pozostałych składowych, i - przenosząc jeden wierzchołek z \( V_2 \) do \( V_1 \) otrzymalibyśmy nowy graf. W oryginalnym grafie sumaryczna liczba krawędzi w (pełnych) składowych \( V_1, V_2 \) wynosi \( {{n_1}\choose{2}} + {{n_2}\choose{2}}, \) a w nowym grafie te zmodyfikowane (również pełne) składowe posiadają łącznie \( {{n_1+1}\choose{2}} + {{n_2-1}\choose{2}} \) krawędzi. Różnica między nową a starą liczbą krawędzi wynosi więc

\( \frac{(n_1+1)n_1 + (n_2-1)(n_2-2) - n_1(n_1-1) - n_2(n_2-1)}{2} = n_1 - n_2 +1 \geq 1 \)

co pokazuje, że nowy graf ma przynajmniej o jedną krawędź więcej. Dowodzi to, że graf \( \mathbf{G} \) maksymalizujący liczbę krawędzi ma opisaną przez nas własność. To z kolei oznacza, że \( k-1 \) jego składowych ma po jednym elemencie, a pozostała składowa jest grafem pełnym o \( n -(k-1) \) elementach. Taki graf ma oczywiście \( {{n-k+1}\choose{2}} \) krawędzi.

Aby zobaczyć, że podanych ograniczeń na liczbę krawędzi nie można poprawić zauważmy, że

  • graf o \( k \) składowych spójnych, z których każda jest indukowaną ścieżką o liczności odpowiednio \( n_1,n_2,\ldots,n_k \) ma dokładnie \( (n_1-1)+(n_2-1)+\ldots+(n_k-1) =\vert V \vert-k \) krawędzi.
  • rozważany w dowodzie graf o dokładnie \( k \) składowych spójnych, z których \( k-1 \) to wierzchołki izolowane, a pozostałe \( \vert V \vert-k \) wierzchołków tworzy klikę \( \mathcal{K}_{n-k} \), ma dokładnie \( \frac{(\vert V \vert-k)(\vert V \vert-k+1)}{2} \) krawędzi.

Las to graf nie zawierający cykli jako podgrafy.

Drzewo to graf spójny nie zawierający cykli, czyli spójny las.

Liść drzewa to wierzchołek o stopniu \( 1 \).

Gwiazda to drzewo, w którym co najwyżej jeden wierzchołek nie jest liściem.

Drzewo rozpinające grafu \( \mathbf{G} \) to podgraf grafu \( \mathbf{G} \) zawierający wszystkie jego wierzchołki i będący drzewem.

Drzewa można zdefiniować na kilka równoważnych sposobów:

Twierdzenie 12.3

Dla grafu \( \mathbf{T}=(V,E) \) następujące warunki są równoważne:

  1. \( \mathbf{T} \) jest drzewem,
  2. \( \mathbf{T} \) nie zawiera cykli i ma \( \vert V \vert-1 \) krawędzi,
  3. \( \mathbf{T} \) jest spójny i ma \( \vert V \vert-1 \) krawędzi,
  4. \( \mathbf{T} \) jest spójny, zaś usunięcie dowolnej krawędzi tworzy dokładnie dwie składowe,
  5. dowolne dwa wierzchołki grafu \( \mathbf{T} \) są połączone dokładnie jedną drogą,
  6. \( \mathbf{T} \) nie zawiera cykli, lecz dodanie dowolnej nowej krawędzi tworzy dokładnie jeden cykl.

Dowód

Dowód przeprowadzimy indukcyjnie ze względu na liczbę wierzchołków \( \vert V \vert \) grafu \( \mathbf{T} \). Oczywiście dla \( \vert V \vert=1 \) graf \( \mathbf{T} \) nie ma krawędzi i tym samym spełnia wszystkie sześć warunków dowodzonego Twierdzenia.

1. \( \Rightarrow \) 2. Ponieważ \( \mathbf{T} \) nie posiada cykli, to usunięcie krawędzi rozspaja \( \mathbf{T} \) na dwa drzewa: pierwsze o \( n_1 \) wierzchołkach oraz drugie o \( n_2 \), przy czym \( n_1+n_2=\vert V \vert \) oraz \( 0 < n_1,n_2 < \vert V \vert \). Założenie indukcyjne gwarantuje, że nowo powstałe drzewa mają odpowiednio \( n_1-1 \) oraz \( n_2-1 \) krawędzi. Sumując te krawędzie wraz z usuniętą otrzymujemy

\( \vert E \vert=(n_1-1)+(n_2-1)+1=\vert V \vert-1. \)

2. \( \Rightarrow \) 3. Jeżeli \( \mathbf{T} \) nie byłby spójny, to miałby \( k\geq 2 \) składowych spójnych. Ponieważ żadna składowa nie ma cykli, założenie indukcyjne daje, że w każdej z \( k \) składowych krawędzi jest o jedną mniej niż wierzchołków. A więc, w całym grafie krawędzi jest o \( k \geq 2 \) mniej niż wierzchołków co daje sprzeczność z \( \vert E \vert=\vert V \vert-1 \).

3. \( \Rightarrow \) 4. Usunięcie dowolnej krawędzi spowoduje, że nowy graf będzie miał \( \vert V \vert-2 \) krawędzie. Na mocy Twierdzenia 12.2 okazuje się, że jest to za mało aby graf był spójny.

4. \( \Rightarrow \) 5. Jeżeli istniałyby dwie różne ścieżki \( P_1 \) oraz \( P_2 \) o wspólnym początku i końcu, to usunięcie krawędzi \( e\in P_1-P_2 \) nierozspajałoby grafu \( \mathbf{T} \).

5. \( \Rightarrow \) 6. Pomiędzy dwoma punktami dowolnego cyklu \( C \) istnieją dwie rozłączne ścieżki zawarte w \( C \). Tak więc istnienie dokładnie jednej ścieżki pomiędzy dowolnymi punktami w \( \mathbf{T} \) wyklucza istnienie cykli w \( \mathbf{T} \). Z drugiej zaś strony dodanie dodatkowej krawędzi \( uv \) stworzy cykl składający się z krawędzi \( uv \) oraz ścieżki łączącej wierzchołek \( u \) z \( v \) zawartej w grafie \( \mathbf{T} \). Powyższy cykl jest jedyny. Wynika to z tego, że jeżeli istnieją dwa cykle zawierające krawędź \( uv \), to musi istnieć trzeci cykl niezawierajacy \( uv \), czyli zawarty w \( \mathbf{T} \) co nie jest możliwe.

6. \( \Rightarrow \) 1. Gdyby, mimo spełniania warunku 6, graf \( \mathbf{T} \) nie był spójny, to dodanie jednej krawędzi łączącej dwa wierzchołki w różnych składowych spójnych nie utworzy cyklu.

Z charakteryzacji drzew podanej w Twierdzeniu 12.3 natychmiast dostajemy następujący związek miedzy liczbą krawędzi i wierzchołków w dowolnym lesie.

Wniosek 12.4

Każdy las \( \mathbf{G}=(V,E) \) o \( k \) składowych spójnych posiada \( \vert E \vert=\vert V \vert-k \) krawędzi.

Przegląd niektórych grafów

Graf pusty to graf bez krawędzi. Antyklika lub graf niezależny to inne nazwy grafu pustego. Antyklikę o \( n \) wierzchołkach oznaczać będziemy przez \( \mathcal{A}_{n} \).

Graf pełny to graf, w którym każde dwa wierzchołki połączone są krawędzią. Graf pełny nazywany jest także kliką i oznaczany przez \( \mathcal{K}_{n} \), gdzie \( n \) jest liczbą jego wierzchołków.

Uwaga

Liczba krawędzi w klice \( \mathcal{K}_{n} \) wynosi \( \frac{n(n-1)}{2} \).

Graf dwudzielny to graf \( \mathbf{G}=( V,E ) \), w którym zbiór \( V \) da się podzielić na dwa rozłączne podzbiory \( V_1 \) oraz \( V_2 \) tak, by żadne dwa wierzchołki w obrębie tego samego podzbioru \( V_i \) nie były sąsiadami. Czasem, dla podkreślenia takiego podziału, graf dwudzielny będziemy oznaczać przez \( ( V_1\cup V_2,E ) \). Zauważmy jednak, że podział taki nie jest jednoznaczny -- np. w antyklice \( \mathcal{A}_{n} \) dowolny podział zbioru wierzchołków na dwa podzbiory jest podziałem dwudzielnym.

Pełny graf dwudzielny to graf dwudzielny \( \mathbf{G}=( V_1\cup V_2,E ) \), w którym każdy wierzchołek z \( V_1 \) jest połączony z każdym wierzchołkiem z \( V_2 \). Pełny graf dwudzielny oznaczać będziemy przez \( \mathcal{K}_{r,s} \), gdzie \( r \) jest rozmiarem \( V_1 \), a \( s \) rozmiarem \( V_2 \).

Graf płaski to para \( \mathbf{\overline{G}}=( \overline{V},\overline{E} ) \), gdzie:

  • \( \overline{V} \) jest jakimś zbiorem punktów płaszczyzny \( \mathbb{R}^2 \),
  • \( \overline{E} \) jest zbiorem nie przecinających się odcinków lub łuków w \( R^2 \) o końcach ze zbiorze \( \overline{V} \).

Graf planarny to graf, który jest prezentowalny jako graf płaski.

Grafy II

Grafy eulerowskie


Leonhard Euler stanął przed następującym problemem. W Królewcu (wówczas Konigsbergu) na rzece Pregole, na której są dwie wyspy wybudowano siedem mostów łączące wyspy ze sobą, oraz z oboma brzegami rzeki. Układ mostów został przedstawiony na rysunku:

Pytanie, jakie zostało postawione Eulerowi, to czy można tak ułożyć spacer po wszystkich mostach Królewca, by po każdym przejść tylko raz i wrócić do punktu startowego. Euler oczywiście odpowiedział na zadane mu pytanie. Postaramy się rozwiązać Zagadnienie Mostów Królewieckich. Zacznijmy od przedstawienia powyższego problemu w języku grafów. Niech każdy spójny kawałek lądu w Królewcu odpowiada wierzchołkowi. Otrzymamy w ten sposób dwa wierzchołki odpowiadające wyspom oraz dwa obu brzegom Pregoły. Most pomiędzy dwoma kawałkami lądu będziemy interpretować jako krawędź łączącą wierzchołki odpowiadające tym skrawkom lądu. W ten sposób otrzymamy następujący graf (nie będący grafem prostym):

Naszym celem jest skonstruowanie specjalnego cyklu w grafie z rysunku Mapa mostów w Królewcu.

Cykl Eulera to zamknięta marszruta przechodząca przez każdą krawędź grafu dokładnie raz.
Graf eulerowski to graf posiadający cykl Eulera.

Graf na rysunku Grafy eulerowskie posiada cykl Eulera \( x\to u\to z\to y \to u \to z\to y\to x \), zaś graf w części b. nie jest eulerowski, bo jeżeli wejdzie się do wierzchołka \( v \), to już nie będzie można z niego wyjść; jeśli zaś rozpoczęlibyśmy naszą marszrutę z wierzchołka \( v \) to nie będzie można doń powrócić.

Grafy eulerowskie posiadają ładną charakterystykę umożliwiającą prostą i szybką weryfikację omawianej własności.

Twierdzenie 13.1

Graf \( \mathbf{G}=( V,E ) \) jest eulerowski wtedy i tylko wtedy, gdy jest spójny i stopień każdego wierzchołka jest parzysty.

Dowód

Załóżmy najpierw, że \( \mathbf{G} \) jest eulerowski i niech \( E \) jakimś jego cyklem Eulera. Poruszając się po \( \mathbf{G} \) wzdłuż cyklu \( E \) zliczajmy stopniowo używane krawędzie incydentne do poszczególnych wierzchołków. Zawsze po wejściu i wyjściu z danego wierzchołka \( v \) liczba policzonych krawędzi incydentnych z \( v \) zwiększy się o \( 2 \). Tak więc, jeśli \( v \) nie jest początkiem cyklu, to zawsze będzie miał parzystą liczbę aktualnie policzonych krawędzi incydentnych. Początek cyklu zaś, dopóki nie przeszliśmy ostatnią krawędzią grafu (która oczywiście prowadzi do niego) będzie miał nieparzystą liczbę policzonych krawędzi. Po użyciu jednak tej ostatniej krawędzi okaże się, że i on ma parzysty stopień. Żadna krawędź nie zostanie pominięta, ani policzona wielokrotnie, bo przeczyłoby to eulerowskości cyklu \( E \) lub spójności grafu \( \mathbf{G} \).

Dla dowodu implikacji odwrotnej, pokażmy najpierw, że jeżeli w skończonym grafie \( \mathbf{G} \) dowolny wierzchołek ma parzysty stopień, to \( \mathbf{G} \) posiada cykl. Istnienie takiego cyklu pokażemy wskazując jego kolejne krawędzie. Zaczynamy od dowolnie wybranej krawędzi \( v_0 v_1 \). Następnie przechodzimy do jakiejkolwiek innej krawędzi wychodzącej z wierzchołka \( v_1 \). Załóżmy, że była to krawędź \( v_1 v_2 \). Wybieramy następnie dowolną różną od \( v_1 v_2 \) krawędź wychodzącą z \( v_2 \). Czynność tę powtarzamy tak długo, aż dojdziemy do jakiegoś wierzchołka \( v_i \), który został już wcześniej odwiedzony. W ten sposób otrzymamy cykl \( v_i\to v_{i+1}\to \ldots\to v_k\to v_i \). Jedynym problemem mógłby, w jakimś momencie, być brak możliwości kontynuowania marszu zanim dojdziemy do odwiedzonego wcześniej punktu \( v_i \). Sytuacja taka nie jest jednak możliwa, gdyż oznaczałoby to istnienie wierzchołka o incydentnego z jedną tylko krawędzią (wejściową), co stoi w sprzeczności z parzystością jego stopnia.

Teraz możemy przejść do dowodu Twierdzenia, który przeprowadzimy indukcyjnie ze względu na liczbę krawędzi w grafie \( \mathbf{G} \). Jak już zauważyliśmy powyżej, graf \( \mathbf{G} \) posiada jakiś cykl \( C \). Usuńmy z grafu \( \mathbf{G} \) krawędzie i wierzchołki cyklu \( C \) otrzymując w ten sposób mniejszy graf \( \mathbf{G}' \). Graf \( \mathbf{G}' \) może już nie być spójny, ale nadal będzie posiadał jedynie wierzchołki parzystego stopnia. Jeżeli \( \mathbf{G}' \) jest pusty, to cykl \( C \) jest cyklem Eulera, co kończyłoby dowód. W przeciwnym razie, w każdej spójnej składowej grafu \( \mathbf{G}' \) nie będącej punktem izolowanym, korzystając z założenia indukcyjnego, znajdujemy cykle Eulera \( E_1,\ldots E_l \). Ponieważ graf \( \mathbf{G} \) był spójny, to cykl \( C \) musi przechodzić przez jakiś wierzchołek każdego cyklu \( E_1,\ldots E_l \). Tak więc cykl Eulera dla grafu \( \mathbf{G} \) możemy wyznaczyć w ten sposób, że przechodząc przez cykl \( C \), za każdym razem gdy napotkamy nieodwiedzony jeszcze cykl \( E_i \), zbaczamy z cyklu \( C \) i przechodzimy w całości \( E_i \), a później kontynuujemy wędrówkę po cyklu \( C \). W konsekwencji przejdziemy po wszystkich krawędziach, każdą odwiedzając jedynie raz.

Bogatsi o nowo zdobytą wiedzę możemy już negatywnie odpowiedzieć na pytanie postawione Leonhardowi Euler'owi.

Analizując dowód Twierdzenia 13.1 dostajemy następujący wniosek.

Wniosek 13.2

Graf spójny jest eulerowski wtedy i tylko wtedy, gdy rodzinę jego krawędzi da się podzielić na rozłączne krawędziowo cykle.

Z grafami eulerowskimi ściśle związane są grafy, które można narysować bez odrywania ołówka i rysując każdą krawędź dokładnie raz.

Graf jednokreślny to graf posiadający marszrutę przechodzącą dokładnie raz przez każdą krawędź.

Wniosek 13.3

Graf \( \mathbf{G}=( V,E ) \) jest jednokreślny wtedy i tylko wtedy, gdy jest spójny i jego wszystkie, poza co najwyżej dwoma wierzchołkami, mają parzysty stopień.

Dowód

Jeśli \( \mathbf{G} \) jest jednokreślny, i marszruta przechodząca przez każda krawędź jest cyklem, to \( \mathbf{G} \) jest eulerowski i wobec Twierdzenia 13.1 ma jedynie wierzchołki o parzystym stopniu. Jeśli zaś marszruta ta nie jest cyklem, to oczywiście wszystkie wierzchołki poza początkowym i końcowym mają parzysty stopień.

Na odwrót, jeśli w grafie \( \mathbf{G} \) wszystkie wierzchołki mają parzysty stopień, to \( \mathbf{G} \) jest eulerowski, a zatem jednokreślny. Jeśli zaś \( \mathbf{G} \) ma wierzchołki o nieparzystym stopniu, to - wobec naszego założenia, może ich mieć dokładnie dwa, bo może mieć jedynie parzyście wiele wierzchołków o nieparzystym stopniu. Łącząc teraz te dwa wierzchołki nową krawędzią, dostajemy graf \( \mathbf{G'} \), w którym już wszystkie wierzchołki mają parzysty stopień. A zatem \( \mathbf{G'} \) posiada cykl Eulera \( E \). Cykl ten przechodzi oczywiście przez nowo dodana krawędź. Usuwając ją z cyklu \( E \) dostajemy marszrutę w grafie \( \mathbf{G} \), świadcząca o jego jednokreślności.

Grafy hamiltonowskie

Grafy hamiltonowskie


Inny, ciekawy problem można przedstawić na przykadzie firmy rozwożącej przesyłki. Dotyczy on pracy kuriera mającego rozwieść przesyłki do odbiorców, w ten sposób by odwiedzić każdego klienta jedynie raz, a na końcu wrócić do siedziby firmy. Załóżmy, że na przesyłki czeka następujący zbiór osób: Henryk, Elżbieta, Maciej, Jan, Ula, Izabela, Gabriela, oraz Maria. Niestety, jak widać z rysunku, nie ma połączeń umożliwiających przejazd między dowolnymi dwoma klientami.

Zachodzi pytanie, czy kurier mimo to jest w stanie wykonać swoje zadanie. Jeśli prześledzimy warunki nałożone na trasę swojej wędrówki okaże się, że szukamy tzw. cyklu Hamiltona.

Cykl Hamiltona to cykl przechodzący przez wszystkie wierzchołki grafu (czyli marszruta zamknięta odwiedzająca każdy wierzchołek dokładnie raz).

Graf hamiltonowski to graf posiadający cykl Hamiltona.

Ścieżka Hamiltona to ścieżka przechodząca przez wszystkie wierzchołki, każdy odwiedzając jedynie jeden raz.

W odróżnieniu od grafów eulerowskich, grafy hamiltonowskie nie posiadają prostej i szybkiej w użyciu charakteryzacji. Nie znana jest żadna metoda, pozwalająca szybko (tzn. w czasie wielomianowym) stwierdzić czy dany graf jest hamiltonowski. Są natomiast znane pewne warunki wystarczające na to, by graf był hamiltonowski. Jednym z ciekawszych takich warunków wystarczających jest warunek wykorzystujący jedynie stopnie wierzchołków. Przedstawiony jest w postaci następującego twierdzenia.

Twierdzenie 13.4 [Ore 1960]

Jeśli w grafie prostym \( \mathbf{G}=( V,E ) \) o co najmniej \( 3 \) wierzchołkach dowolne dwa niesąsiednie wierzchołki \( v \) i \( w \) spełniają \( \deg{v}+\deg{w}\geq \vert V \vert \), to graf \( \mathbf{G} \) jest hamiltonowski.

Dowód

Dla dowodu niewprost załóżmy, że pewien niehamiltonowski graf \( \mathbf{G} \) o \( n \) wierzchołkach spełnia

(*) \( \deg{v}+\deg{w}\geq n \), dla niesąsiednich wierzchołków \( v,w \).

Dodawanie krawędzi do \( \mathbf{G} \) nie psuje warunku (*), więc do grafu \( \mathbf{G} \) można dokładać krawędzie tak długo, jak długo jest on niehamiltonowski. Możemy więc dodatkowo założyć, że \( \mathbf{G} \) ma tę własność, że po dodaniu jakiejkolwiek krawędzi otrzymamy już cykl Hamiltona. Tak więc w \( \mathbf{G} \) musi istnieć ścieżka Hamiltona \( v_0\to v_1\to\ldots\to v_{n-1}\to v_n \).

Wierzchołek \( v_0 \) ma, poza wierzchołkiem \( v_1 \), dodatkowo \( \deg{v_0}-1 \) sąsiadów. Oznaczmy ich przez \( v_{i_1},\ldots,v_{i_{\deg{v_0}-1}} \). Z kolei, na mocy (*), wierzchołek \( v_n \) w zbiorze \( \lbrace v_2,\ldots,v_{n-2} \rbrace \) ma \( \deg{v_n}-1> (n-3)-(\deg{v_0}-1) \) sąsiadów. To gwarantuje, że \( v_n \) jest sąsiadem któregoś z \( \deg{v_0}-1 \) wierzchołków \( v_{i_1-1},\ldots,v_{i_{\deg{v_1}-1}-1} \). Istnieje więc takie miejsce \( j \) w ścieżce \( v_0\to v_1\to\ldots\to v_{n-1}\to v_n \), że \( v_1 \) jest incydentny z \( v_j \), zaś \( v_n \) z \( v_{j-1} \).

Tak więc cykl \( v_1\to v_j\to v_{j+1}\to\ldots\to v_n\to v_{j-1}\to v_{j-2}\to \ldots\to v_1 \) jest cyklem Hamiltona w grafie \( \mathbf{G} \), co w konsekwencji daje sprzeczność z faktem, że \( \mathbf{G} \) miał nie być hamiltonowski.

Twierdzenie Ore'a jest uogólnieniem silniejszego warunku znalezionego parę lat wcześniej przez Dirac'a.

Wniosek 13.5 [G. A. Dirac 1952]

Graf prosty \( \mathbf{G} =( V,E ) \), w którym każdy wierzchołek ma stopień co najmniej \( \vert V \vert/2 \) jest hamiltonowski.

Wróćmy teraz do przykładu o kurierze. Licząc stopnie wierzchołków w grafie z rysunku i używając Twierdzenia Ore'a możemy stwierdzić, że graf ten ma cykl Hamiltona. Tak więc kurier, nie bojąc się utraty pracy, może spokojnie spełnić swoje zadanie.

Grafy dwudzielne i skojarzenia

Przypomnijmy, że:

Graf dwudzielny to graf \( \mathbf{G}=( V,E ) \), w którym zbiór wierzchołków \( V \) da się podzielić na dwa rozłączne podzbiory \( V_1 \) oraz \( V_2 \) tak, by żadne dwa wierzchołki w obrębie tego samego podzbioru \( V_i \) nie były sąsiadami. Czasem, dla podkreślenia takiego podziału, graf dwudzielny będziemy oznaczać przez \( ( V_1\cup V_2,E ) \). Zauważmy jednak, że podział taki nie jest jednoznaczny - np. w antyklice \( \mathcal{A}_{n} \) dowolny podział zbioru wierzchołków na dwa podzbiory jest podziałem dwudzielnym.

Twierdzenie 13.6

Graf jest dwudzielny wtedy i tylko wtedy, gdy każdy jego cykl ma parzystą długość.

Dowód

Załóżmy najpierw, że graf \( \mathbf{G}=( V,E ) \) jest dwudzielny czyli, że \( V \) można podzielić na dwa rozłączne zbiory wierzchołków \( V_1 \) oraz \( V_2 \), w ten sposób, że podgrafy indukowane \( \mathbf{G}|_{V_i} \) są antyklikami. Rozważmy cykl \( v_1\to v_2\to\ldots\to v_{k-1}\to v_k \to v_1 \) o \( k \) elementach. Bez straty ogólności możemy załóżyć, że \( v_1\in V_1 \). Ponieważ pomiędzy wierzchołkami z \( V_1 \) nie ma krawędzi, to \( v_2\in V_2 \). Z kolei \( v_3\in V_1 \), a \( v_4\in V_2 \) i tak dalej. Tak więc każdy \( v_i \) o nieparzystym indeksie \( i \) należy do \( V_1 \). W konsekwencji \( v_k \) musi mieć parzysty indeks \( k \), aby mógł być połączony z \( v_1 \). W rezultacie otrzymujemy, że cykle muszą być parzystej długości.

Dowód odwrotnej implikacji przeprowadzimy najpierw przy założeniu, że graf \( \mathbf{G} \) jest spójny. Naszym celem jest takie podzielenie \( V \) na dwa zbiory wierzchołków \( V_1,V_2 \), by, dla \( i=1,2 \), żadne dwa wierzchołki z \( V_i \) nie były ze sobą połączone. Wybierzmy z \( V \) dowolny wierzchołek \( v \). Niech \( V_1 \) będzie zbiorem, do którego należy \( v \) oraz wszystkie wierzchołki, do których można dojść z \( v \) ścieżką parzystej długości, zaś \( V_2 \) niech składa się z pozostałych wierzchołków. Załóżmy, że \( u_1,u_2\in V_1 \). Wtedy oczywiście istnieją ścieżki \( v\to\ldots\to u_1 \) oraz \( u_2\to\ldots\to v \) o parzystej długości. Gdyby \( u_1,u_2 \) były połączone krawędzią, to dostalibyśmy cykl \( v\to\ldots\to u_1\to u_2\to\ldots\to v \) o nieparzystej długości. A zatem \( \mathbf{G}|_{V_1} \) jest antykliką. Aby zobaczyć, że również \( \mathbf{G}|_{V_2} \) jest antykliką, wystarczy zauważyć że \( V_2 \) składa się z tych wierzchołków grafu \( \mathbf{G} \), do których z początkowo wybranego wierzchołka \( v \) można dojść jedynie ścieżkami nieparzystej długości. Teraz uzasadnienie, że także \( V_2 \) indukuje antyklikę jest analogiczne jak dla \( V_1 \).

Niech teraz graf \( \mathbf{G} \) ma \( l>1 \) spójnych składowych \( C_1,\ldots,C_l \). Wtedy każdą spójną składową \( C_i \) możemy podzielić na zbiory \( C_i^1,C_i^2 \) świadczące o dwudzielności grafu indukowanego \( \mathbf{G}_{C_i} \). W konsekwencji daje to podział \( V \) na \( C_1^1\cup\ldots\cup C_l^1 \) oraz \( C_1^2\cup\ldots\cup C_l^2 \) świadczący o dwudzielności całego grafu \( \mathbf{G} \).

Z grafami dwudzielnymi związany jest problem biura matrymonialnego. Do biura matrymonialnego zgłaszają się mężczyźni i kobiety poszukujący swojej drugiej połowy. Niestety nie każdemu mężczyźnie odpowiada każda kobieta i na odwrót. A więc każdy zgłaszający podaje swój opis, jak i wymagania stawiane potencjalnemu partnerowi. Interpretując mężczyzn i kobiety jako wierzchołki grafu, w którym krawędzie łączą "mężczyznę" z "kobietą", jeśli nawzajem sobie odpowiadają, otrzymujemy dwudzielny graf \( \mathbf{G}_z( M,K ) \) odpowiadający potencjalnym związkom. Biuro matrymonialne ku uciesze klientów (i maksymalizacji swojego zysku) chciałoby stworzyć jak najwięcej par. Optymalnie by było, gdyby nikt nie został samotny. Wtedy jednak musimy oczywiście założyć, że mężczyzn jest tyle samo co kobiet.

Skojarzenie w grafie dwudzielnym \( \mathbf{G}=( V_1\cup V_2,E ) \) to podzbiór krawędzi \( M\subseteq{\sf E}\!(\mathbf{G}) \), w którym żadne dwie \( v_1 v_2, u_1 u_2\in M \) nie wychodzą z tego samego wierzchołka.
Powiemy ponadto, że \( v\in V_i \) jest skojarzony, jeśli istnieje \( w\in V_{3-i} \) taki, że krawędź \( vw \) należy do skojarzenia.

Pełne skojarzenie \( V_1 \) z \( V_2 \) w grafie dwudzielnym \( \mathbf{G}=( V_1\cup V_2,E ) \) to skojarzenie, w którym każdy wierzchołek z \( V_1 \) jest skojarzony.

Naturalnym jest pytanie, kiedy istnieje pełne skojarzenie \( V_1 \) z \( V_2 \) w grafie dwudzielnym \( \mathbf{G}=( V_1\cup V_2, E ) \). Odpowiedział na nie P. Hall. Użył do tego funkcji \( \Phi\!(A) \) zwracającej dla \( A\subseteq V_1 \) zbiór tych wierzchołków \( V_2 \), które są sąsiednie z przynajmniej jednym wierzchołkiem w \( A \).

Twierdzenie 13.7 [O Skojarzeniach w Grafie Dwudzielnym, P. Hall 1935]

Niech \( \mathbf{G}=( V_1\cup V_2,E ) \) będzie grafem dwudzielnym. Wówczas pełne skojarzenie \( V_1 \) z \( V_2 \) istnieje wtedy i tylko wtedy, gdy \( \vert A \vert \leq\vert \Phi\!(A) \vert \) dla każdego podzbioru \( A \) zbioru \( V_1 \).

Dowód

Dla dowodu nierówności \( \vert A \vert \leq\vert \Phi\!(A) \vert \) załóżmy, że \( M \) jest pełnym skojarzeniem. Elementy skojarzone z elementami zbioru \( A \) muszą być oczywiście w \( \Phi\!(A) \). Z drugiej strony skojarzenie \( M \) determinuje injekcję \( A \longrightarrow \Phi\!(A) \), skąd natychmiast \( \vert A \vert \leq\vert \Phi\!(A) \vert \).

Dowód implikacji odwrotnej jest nieco trudniejszy. Przeprowadzimy go indukcyjnie ze względu na liczbę wierzchołków \( n_1=\vert V_1 \vert \). Dla \( n_1=1 \) nierówność \( \vert V_1 \vert \leq\vert \Phi\!(V_1) \vert \) gwarantuje, że jest co kojarzyć z jedynym wierzchołkiem w \( V_1 \). Załóżmy więc, że \( n_1>1 \) i rozważmy dwa przypadki:

1. Dowolny właściwy podzbiór \( W \) zbioru wierzchołków \( V_1 \) posiada więcej sąsiadów niż jego moc, tzn. \( \vert \Phi\!(W) \vert>\vert W \vert \). Wtedy wybieramy dowolne wierzchołki \( v_1\in V_1 \) oraz \( v_2\in V_2 \) i je kojarzymy. Dla \( W \subseteq V_1-\lbrace v_1 \rbrace \) zbiór sąsiadów w zbiorze \( V_2 \) pomniejszonym o wybrany już \( v_2 \) jest nadal nie liczniejszy niż liczność \( \vert W \vert \). Założenie indukcyjne gwarantuje nam więc jakieś skojarzenie pełne \( M \) zbioru \( V_1-\lbrace v_1 \rbrace \) z \( V_2-\lbrace v_2 \rbrace \) w grafie pozostałych wierzchołków \( \mathbf{G}|_{(V_1-\lbrace v_1 \rbrace)\cup(V_2-\lbrace v_2 \rbrace)} \). Oczywiście \( M\cup{v_1v_2} \) jest poszukiwanym skojarzeniem pełnym w \( \mathbf{G} \).
2. Istnieje właściwy podzbiór \( W \) zbioru \( V_1 \), taki że \( \vert \Phi\!(W) \vert=\vert W \vert \).

Ponieważ dla \( A\subseteq W \) mamy \( \Phi\!(A)\subseteq \Phi\!(W) \), to

\( \vert A \vert\leq\vert \Phi\!(A) \vert=\vert \Phi\!(A)\cap\Phi\!(W) \vert. \)

Ta nierówność pozwala użyć założenia indukcyjnego do skojarzenia wszystkich elementów ze zbioru \( W \) z elementami należącymi do \( \Phi\!(W) \).

Wystarczy więc znaleźć skojarzenie pozostałych elementów, czyli skojarzenie zbioru \( V_1- W \) ze zbiorem \( V_2- \Phi\!(W) \). Skojarzenie takie dostaniemy również indukcyjnie, o ile pokażemy, że dla dowolnego \( A\subseteq V_1- W \), zbiór jego sąsiadów w \( V_2- \Phi\!(W) \) jest liczniejszy od \( A \), tzn.

\( \vert A \vert\leq\vert \Phi\!(A)-\Phi\!(W) \vert. \)

Załóżmy, że jakiś zbiór \( A\subseteq V_1- W \) nie spełnia powyższej nierówności. Wtedy

\( \vert A\cup W \vert =\vert A \vert\cup\vert W \vert >\vert \Phi\!(A)-\Phi\!(W) \vert+\vert \Phi\!(W) \vert \geq\vert \Phi\!(A\cup W) \vert, \)

co przeczy założeniu twierdzenia, przy którym pracujemy.

Wielospójność

Zarówno drzewo, jak i klika są grafami spójnymi. W drzewie jednak, usunięcie jakiegokolwiek wierzchołka nie będącego liściem rozspaja go. Z drugiej strony, klika pozostaje spójna po usunięciu dowolnej liczby wierzchołków. Aby rozróżnić te różne rodzaje spójności rozważa się następujące uogólnienia spójności.
Graf \( k \)-spójny to graf, który po usunięciu dowolnie wybranych \( k-1 \) wierzchołków (i incydentnych z nimi krawędzi) pozostaje spójny.

Graf \( k \)-spójny krawędziowo to graf, który po usunięcie dowolnie wybranych \( k-1 \) krawędzi (bez usuwania wierzchołków) pozostaje spójny.

Przykład

  • Grafy \( 1 \)-spójne lub \( 1 \)-spójne krawędziowo to po prostu grafy spójne.
  • Drzewa są spójne, ale nie \( 2 \)-spójne i nie \( 2 \)-spójne krawędziowo.
  • Klika \( \mathcal{K}_{n} \) jest \( n \)-spójna i \( n-1 \)-spójna krawędziowo.

Z pojęciami wielospójności związane są następujące pojęcia:

Zbiór rozdzielający wierzchołki \( u,v \) to zbiór wierzchołków \( S\subseteq V- \lbrace u,v \rbrace \) taki, że każda droga z \( u \) do \( v \) przechodzi przez któryś element ze zbioru \( S \).

Ponadto powiemy, że \( S \) jest zbiorem rozdzielającym, jeśli \( S \) jest zbiorem rozdzielającym jakichś dwu wierzchołków \( u,v \).

Zbiór rozspajający wierzchołki \( u,v \) to zbiór krawędzi \( F\subseteq E \) taki, że każda droga z \( u \) do \( v \) zawiera jakąś krawędź z \( F \).

Rozcięcie wierzchołków \( u,v \) to zbiór rozspajający wierzchołki \( u,v \), którego żaden podzbiór właściwy nie rozspaja \( u \) z \( v \).
Zbiór krawędzi \( F \) będziemy nazywać rozcięciem, jeśli \( F \) jest rozcięciem jakichś dwu wierzchołków \( u,v \)

Most to taka krawędź \( e \), że zbiór \( \lbrace e \rbrace \) tworzy rozcięcie.

Uwaga

Jeżeli graf jest \( k \)-spójny, to każdy jego zbiór rozdzielający musi mieć co najmniej \( k \) wierzchołków. Analogicznie jeśli \( \mathbf{G} \) jest \( k \)-spójny krawędziowo, to każde jego rozcięcie musi mieć co najmniej \( k \) krawędzi.

Przykład

Przykładowymi zbiorami rozdzielającymi wierzchołki \( u,w \) w grafie z rysunku Grafy menger są zbiory \( \lbrace x,y,z \rbrace \) i \( \lbrace s,t \rbrace \). Zbiory \( \lbrace xs,xy,ys,ys,zt \rbrace \) jest rozspajający, a zbiór \( \lbrace xs,xy,uy,uz \rbrace \) jest rozcięciem. Graf ten jest \( 2 \)-spójny oraz \( 2 \)-spójny krawędziowo.

Okazuje się, że dla dwu różnych wierzchołków istnieje powiązanie - między wielkością rozcięcia, a liczbą dróg pomiędzy nimi - silniejsze niż to wynikające z definicji.

Twierdzenie 13.8 [Menger 1927]

Największa możliwa liczba krawędziowo rozłącznych dróg łączących dwa różne niesąsiednie wierzchołki grafu spójnego, jest równa najmniejszej liczbie krawędzi w zbiorze rozspajającym te wierzchołki.

Dowód

Niech \( w,u \) będą dwoma różnymi i niesąsiednimi wierzchołkami grafu spójnego \( \mathbf{G}=( V,E ) \). Przez \( k \) oznaczmy najmniejszą możliwą liczność zbioru krawędzi rozspajającego \( w,u \). Oczywiście każda droga łącząca \( w \) z \( u \) musi przejść przez każdy zbiór rozspajający. A zatem dróg krawędziowo rozłącznych łączących \( w \) z \( u \) nie może być więcej niż \( k \). Tak więc wystarczy pokazać, że istnieje \( k \) rozłącznych krawędziowo dróg z \( w \) do \( u \).

Dowód przeprowadzimy indukcyjnie ze względu na liczbę krawędzi w grafie \( \mathbf{G} \) rozważając dwa przypadki.

1. Pewien zbiór rozspajający \( X \) mocy \( k \) ma krawędź nie incydentną z \( w \) oraz ma krawędź (być może inną) nie incydentną z \( u \).

Graf \( G \), po usunięciu wszystkich krawędzi z \( X \), podzieli się na dwie spójne składowe \( W \) oraz \( U \), do których odpowiednio należą \( w \) i \( u \).

Przez \( \mathbf{W}' \) oznaczmy graf powstały z grafu \( \mathbf{G} \) poprzez ściągnięcie \( U \) w jeden wierzchołek \( u' \). Wtedy \( u' \) jest połączony z tymi wierzchołkami \( t\in W \), z którymi połączony był jakiś wierzchołek \( s\in U \). Warto zauważyć, że wtedy musiało być \( st\in X \). Krawędzie łączące wierzchołki wewnątrz \( W \) pozostały niezmienione. Graf \( \mathbf{U}' \) definiujemy analogicznie, poprzez ściągnięcie zbioru \( W \) do wierzchołka \( w' \).

W grafie \( \mathbf{W}' \) zbiór krawędzi incydentnych z \( u' \), których jest \( k \), tworzy minimalny zbiór rozspajający wierzchołki \( w,u' \). Ponieważ założyliśmy, że w \( X \) istnieje krawędź nieincydentna z \( u \), to \( U \) ma co najmniej dwa wierzchołki, a zatem graf \( \mathbf{W}' \) ma mniej krawędzi niż \( \mathbf{G} \). Tak więc możemy skorzystać z założenia indukcyjnego otrzymując \( k \) rozłącznych krawędziowo dróg łączących \( w \) z \( u' \). Analogicznie w grafie \( \mathbf{U}' \) otrzymujemy \( k \) rozłącznych krawędziowo dróg łączących \( w' \) z \( u \). Sklejając obie te rodziny dróg otrzymujemy \( k \) rozłącznych ścieżek łączących \( w \) z \( u \) w grafie \( \mathbf{G} \).

2. W każdym zbiorze rozspajającym \( X \) o mocy \( k \) każda krawędź jest incydentna do \( w \) lub do \( u \).

Możemy wtedy założyć, że \( \mathbf{G} \) zawiera jedynie krawędzie należące do któregoś zbioru rozspajającego \( w,u \) o liczności \( k \). Gdyby tak nie było i istniałaby jakaś inna krawędź \( e \), to moglibyśmy \( e \) usunąć i, na mocy założenia indukcyjnego, otrzymać natychmiast \( k \) rozłącznych dróg łączących \( w,u \). Tak więc pozostały nam jedynie te krawędzie, które są w minimalnych zbiorach rozspajających \( w,u \). To zaś, zgodnie z założeniem przypadku 2 oznacza, że każda krawędź jest incydentna z \( w \) lub z \( u \). W ten sposób drugi przypadek sprowadziliśmy do sytuacji, w której każda ścieżka z \( w \) do \( u \) ma co najwyżej dwie krawędzie. Wśród takich ścieżek nietrudno jest już wskazać \( k \) rozłącznych krawędziowo.

Jako ćwiczenie 9 pozostawiamy dowód twierdzenia analogicznego do Twierdzenia 13.8, a wiążącego tym razem zbiory rozdzielające z drogami rozłącznymi wierzchołkowo.

Twierdzenie 13.9

Największa możliwa liczba wierzchołkowo rozłącznych dróg łączących dwa różne niesąsiednie wierzchołki grafu spójnego, jest równa najmniejszej liczbie wierzchołków w zbiorze rozdzielającym te wierzchołki.

Z Twierdzenia 13.9, można w łatwy sposób wywnioskować Twierdzenia 13.7, o skojarzeniach w grafach dwudzielnych. Wyprowadzenie to pozostawiamy jako ćwiczenie 10.

W grafie \( k \)-spójnym usunięcie jakichś \( k-1 \) punktów nie rozspaja go. A zatem zbiór rozdzielający jakieś dwa wierzchołki \( w,u \) ma co najmniej \( k \) wierzchołków. Tym samym między \( u \) a \( w \) musi istnieć co najmniej \( k \) dróg. Pisząc zwięźlej możemy powiedzieć, że:

Wniosek 13.10

Graf z co najmniej \( k+1 \) wierzchołkami jest \( k \)-spójny wtedy i tylko wtedy, gdy dowolne dwa wierzchołki są połączone przynajmniej \( k \) drogami wierzchołkowo rozłącznymi.

Analogiczne rozumowanie przeprowadzone dla ścieżek rozłącznych krawędziowo prowadzi do następującego wniosku.

Wniosek 13.11

Graf z co najmniej \( k-1 \) krawędziami jest \( k \)-spójny krawędziowo wtedy i tylko wtedy, gdy dowolne dwa wierzchołki są połączone przynajmniej \( k \) drogami krawędziowo rozłącznymi.

Przepływy i przekroje

Wyobraźmy sobie sieć wodociągową, składającą się z rur o zadanej przepustowości, przystosowanych do przesyłania wody w określonym z góry kierunku oraz ze zbiorników połączonych tymi rurami. W przedstawionej sieci dwa zbiorniki są wyróżnione. Jeden z nich to źródło, w którym jest umieszczona pompa wpompowująca wodę, oraz ujście, czyli klient firmy wodociągowej lubiący nad wyraz zużywać wodę. Zadaniem firmy wodociągowej jest dostarczanie jak największej ilości wody klientowi. Ilość przesyłanej wody konkretną rurą nie może oczywiście przekraczać jej przepustowości. Pytanie, na które chciałby sobie odpowiedzieć właściciel firmy doprowadzającej wodę, to ile maksymalnie wody jest w stanie przesyłać w każdej chwili do klienta. Formalnym modelem dla tego typu zagadnień są sieci.

Sieć to trójka \( \mathbf{N}=( V, A, {\sf c} ) \), w której:

  • \( ( V,A ) \) jest pełnym digrafem (czyli \( A=V\times V \)),
  • funkcja \( {\sf c}:E \longrightarrow [0,+\infty) \), zwana przepustowością sieci, każdej krawędzi \( vw \) przypisuje nieujemną liczbę rzeczywistą \( {\sf c}\!(vw) \).
  • Ponadto wyróżnia się dwa wierzchołki \( s,t\in V \), które są odpowiednio źródłem oraz ujściem sieci.

Przepustowość \( {\sf c}(vw) \) krawędzi \( vw \) może być interpretowana jako wartość potencjalnie maksymalnego przepływu z wierzchołka \( v \) do \( w \). Jeśli przepustowość jakiejś krawędzi \( e \) wynosi \( 0 \), to krawędź \( e \) jest pomijana w graficznym przedstawieniu sieci.

Przepływ w sieci \( \mathbf{N}=( V, A, {\sf c} ) \) to funkcja \( {\sf f}:E \longrightarrow [0,+\infty) \) spełniająca warunki:

  • \( 0\leq{\sf f}\!(vw)\leq{\sf c}\!(vw) \) dla każdej krawędzi \( vw \). Wartość przepływu daną krawędzią nie może przekroczyć przepustowości tej krawędzi.
  • \( \displaystyle \sum_{x\in V}{\sf f}\!(xv)=\sum_{x\in V}{\sf f}\!(vx) \) dla każdego wierzchołka \( v \) poza źródłem \( s \) i ujściem \( t \). Równość ta oznacza, że sumaryczna wartość tego, co wpływa do wierzchołka jest równa sumarycznej wartości tego, co zeń wypływa.
  • \( \displaystyle \sum_{x\in V}( {\sf f}\!(sx)-{\sf f}\!(xs) )=\sum_{x\in V}( {\sf f}\!(xt)-{\sf f}\!(tx) ) \), tzn. sumaryczna wartość tego, co wypływa ze źródła musi być równa sumarycznej wartości tego, co wpływa do ujścia. Wartość ta będzie określana wartością przepływu \( {\sf f} \).

Do analizy przepływów przydatne okazuje się pojęcie przekroju sieci. Można go sobie wyobrażać jako zbiór krawędzi \( X\subseteq A \), usunięcie których z sieci \( \mathbf{N}=( V, A, {\sf c} ) \) rozspaja sieć na dwie części \( S \) oraz \( T \), przy czym \( S \) zawiera źródło, a \( T \) ujście. Warto zauważyć, że \( X \) tworzy zbiór rozspajający w grafie szkieletowym digrafu \( ( V,A ) \). Formalnie przekrój zdefiniujemy jako parę powstałych zbiorów wierzchołków. Taka definicja okaże się bardziej użyteczna w praktyce.

Przekrój sieci to para podzbiorów \( ( S,T ) \) zbioru wierzchołków \( V \), taka że:

  • \( S, T \) tworzą podział \( V \), tzn. są rozłączne i w sumie dają cały zbiór \( V \),
  • źródło \( s \) należy do \( S \), a ujście \( t \) należy do zbioru \( T \).

Przepustowość przekroju \( ( S,T ) \) to suma

\( \displaystyle {\sf c}\!(S,T)=\sum_{v\in S,\ w\in T}{\sf c}\!(vw). \)

Zależność między przepływem a przekrojem została podana w następującym Twierdzeniu o maksymalnym przepływie i minimalnym przekroju.

Twierdzenie 13.12 [Ford i Fulkerson 1956]

W dowolnej sieci wartość maksymalnego przepływu jest równa przepustowości minimalnego przekroju.

Dowód

Niech \( \mathbf{N}=( V, A, {\sf c} ) \) będzie siecią o źródle \( s \) i ujściu \( t \). Oczywiście wartość maksymalnego przepływu nie może przekraczać przepustowości minimalnego przekroju. Wystarczy więc wskazać przekrój, którego przepustowość równa się wartości maksymalnego przepływu \( {\sf f} \) w sieci \( \mathbf{N} \).

Niech \( S\subseteq V \) będzie zbiorem zawierającym źródło \( s \) oraz te wierzchołki \( w \), które w grafie szkieletowym digrafu \( ( V,A ) \) połączone są ze źródłem pewną ścieżką \( s=v_1\to\ldots\to v_k=w \), w której łuk \( v_i v_{i+1} \) ma niepełny przepływ (tzn. \( {\sf f}\!(v_i v_{i+1}) < {\sf c}\!(v_i v_{i+1}) \)) lub też łuk \( v_{i+1} v_i \) ma niezerowy przepływ \( {\sf f}\!(v_{i+1} v_i)>0 \). W języku firmy wodociągowej \( S \) jest zbiorem wierzchołków, do których można jeszcze przepchnąć choć trochę wody.

Załóżmy przez chwilę, że \( t\in S \). Istnieje wtedy ścieżka \( s=v_0\to\ldots\to v_k=t \), w której dla każdej pary kolejnych wierzchołków \( v_i,v_{i+1} \) można byłoby zwiększyć przepływ na łuku \( v_i v_{i+1} \) lub zmniejszyć na łuku \( v_{i+1} v_i \). Niech \( \varepsilon>0 \) będzie jakąś wartością zmian przepływu możliwych do wykonania na każdej parze \( v_i,v_{i+1} \) kolejnych wierzchołków ścieżki. Wtedy, modyfikując odpowiednio łuki pomiędzy wierzchołkami \( v_i, v_{i+1} \) uzyskalibyśmy przepływ o wartości \( {\sf f}+\epsilon \), co przeczy maksymalności przepływu \( {\sf f} \).

Udowodniliśmy właśnie, że \( S, T \) tworzy przekrój sieci \( \mathbf{N} \), gdzie \( T=V- S \). Pokażmy, że przepustowość tego przekroju równa się wartości przepływu \( {\sf f} \). Z definicji \( S \) wynika, że jeżeli rozważymy dwa elementy \( v\in S \) oraz \( w\in T \), to przepływ \( {\sf f}\!(vw)={\sf c}\!(vw) \) oraz \( {\sf f}\!(wv)=0 \).Tak więc przepustowość przekroju równa jest

\( \displaystyle \sum_{v\in S,\ w\in T}{\sf c}\!(vw)=\sum_{v\in S,\ w\in T}( {\sf f}\!(vw)-{\sf f}\!(wv) ).\qquad (1) \)

Z faktu, że dla \( u\in S-\lbrace s \rbrace \) wartość tego co wpływa jest równa temu co wypływa, czyli innymi słowy

\( \sum_{x\in V}( {\sf f}\!(ux)-{\sf f}\!(xu) )=0, \)

otrzymujemy następującą równość:

\( \sum_{x\in T}( {\sf f}\!(ux)-{\sf f}\!(xu) )= \sum_{x\in S-\lbrace u \rbrace}( {\sf f}\!(xu)-{\sf f}\!(ux) ). \)

Prawą stronę równości (1) można więc przekształcić w następujący sposób:

\( \begin{align*} \sum_{v\in S}\sum_{w\in T}( {\sf f}\!(vw)-{\sf f}\!(wv) ) & =\sum_{v\in S-\lbrace u \rbrace}\sum_{w\in T}( {\sf f}\!(vw)-{\sf f}\!(wv) )+\sum_{x\in T}( {\sf f}\!(ux)-{\sf f}\!(xu) ) \\ & =\sum_{v\in S-\lbrace u \rbrace}\sum_{w\in T}( {\sf f}\!(vw)-{\sf f}\!(wv) )+\sum_{x\in S-\lbrace u \rbrace}( {\sf f}\!(xu)-{\sf f}\!(ux) ) \\ & =\sum_{v\in S-\lbrace u \rbrace}\sum_{w\in T\cup\lbrace u \rbrace}( {\sf f}\!(vw)-{\sf f}\!(wv) ) \end{align*} \)

Powtarzając wielokrotnie przekładanie kolejnych punktów \( u \) z \( S \) do \( T \) otrzymamy w konsekwencji

\( \displaystyle \sum_{v\in S}\sum_{w\in T}( {\sf f}\!(vw)-{\sf f}\!(wv) )=\sum_{w\in V-\lbrace v \rbrace}( {\sf f}\!(sw)-{\sf f}\!(ws) ), \)

co na mocy (1) oznacza, że wartość przepływu z wierzchołka \( s \) do wierzchołka \( t \) jest równa przepustowości przekroju wyznaczonego przez zbiory \( S,T \).

Grafy III

Grafy planarne


Graf płaski to para: \( \mathbf{\overline{G}}=( \overline{V},\overline{E} ) \), gdzie

  • \( \overline{V} \) jest jakimś zbiorem punktów płaszczyzny \( \mathbb{R}^2 \),
  • \( \overline{E} \) jest zbiorem nie przecinających się odcinków lub łuków w \( R^2 \) o końcach w zbiorze \( \overline{V} \).

Graf planarny to graf, który jest prezentowalny jako graf płaski.

Obserwacja 14.1

Grafy \( \mathcal{K}_{5} \) i \( \mathcal{K}_{3,3} \) nie są planarne.

Dowód

Graf \( \mathcal{K}_{3,3} \) ma sześcio-elementowy cykl Hamiltona \( H \). Musi on być narysowany w dowolnej płaskiej prezentacji. Przykładowe umiejscowienie tego cyklu prezentuje rysunek Grafy k33.

Spośród krawędzi \( v_1 v_4 \) i \( v_2 v_5 \) jedna musi leżeć wewnątrz cyklu a druga musi leżeć na zewnątrz. W konsekwencji nie da się narysować krawędzi \( v_3 v_0 \) nie przecinając krawędzi \( v_1 v_4 \) lub \( v_2 v_5 \).

Dowód dla \( \mathcal{K}_{5} \) jest analogiczny, rozpoczynając od pięcio-elementowego cyklu Hamiltona.

Z Obserwacji 14.1 natychmiast wynika, że żaden graf zawierający \( \mathcal{K}_{5} \) lub \( \mathcal{K}_{3,3} \) nie jest planarny. Ale również graf powstały np. z \( \mathcal{K}_{5} \) poprzez umieszczenie na jednej krawędzi dodatkowego wierzchołka nie jest planarny mimo, że nie zawiera podgrafu \( \mathcal{K}_{5} \) ani \( \mathcal{K}_{3,3} \). Dla scharakteryzowania grafów planarnych potrzebne nam będzie następujące pojęcie homeomorficzności grafów.

Graf \( \mathbf{G}_1 \) jest homeomorficzny z grafem \( \mathbf{G}_2 \), jeśli jeden otrzymamy z drugiego poprzez wykonanie skończenie wielu poniższych operacji:

  • Dodawanie wierzchołków stopnia dwa na krawędzi.
    Jeśli \( uw\in{\sf E}\!(\mathbf{G}_1) \) oraz \( x\not\in{\sf V}\!(\mathbf{G}_1) \), to operacja ta zastępuje graf \( ( {\sf V}\!(\mathbf{G}_1),{\sf E}\!(\mathbf{G}_1) ) \) grafem \( ( {\sf V}\!(\mathbf{G}_1)\cup\lbrace x \rbrace,{\sf E}\!(\mathbf{G}_1)\cup\lbrace ux,xw \rbrace-\lbrace uw \rbrace ) \).
  • Usuwanie wierzchołków stopnia dwa.
    Jeśli \( x\in{\sf V}\!(\mathbf{G}_1) \) ma jedynie dwóch sąsiadów \( u,w \), to operacja ta zastępuje graf \( ( {\sf V}\!(\mathbf{G}_1),{\sf E}\!(\mathbf{G}_1) ) \) grafem \( ( {\sf V}\!(\mathbf{G}_1)-\lbrace x \rbrace,{\sf E}\!(\mathbf{G}_1)\cup\lbrace uw \rbrace-\lbrace ux,xw \rbrace ) \).

Przykład

Grafy \( \mathbf{G},\mathbf{G}' \) przedstawione na rysunku Grafy homeomorficzne są ze sobą homeomorficzne, zaś \( \mathbf{G}'' \) nie jest homeomorficzny ani z \( \mathbf{G} \) ani z \( \mathbf{G}' \).

Następne twierdzenie podaje prostą charakteryzację grafów planarnych. Niestety dowód tego twierdzenia nie jest prosty i go pominiemy.

Twierdzenie 14.2 [Kuratowski 1930]

Graf jest planarny wtedy i tylko wtedy, gdy żaden jego podgraf nie jest homeomorficzny z \( \mathcal{K}_{5} \) ani z \( \mathcal{K}_{3,3} \).

Kolejne charakterystyka grafów planarnych odwołuje się do znanego nam już pojęcia sciągalności, lub grafu ilorazowego. Przypomnijmy, że

  • iloraz grafu \( \mathbf{G} \) przez relację równoważności \( \theta\subseteq V\times V \) na zbiorze jego wierzchołków to graf postaci

\( \mathbf{G}/\theta=( V/\theta,\lbrace \lbrace v/\theta,w/\theta \rbrace:\lbrace v,w \rbrace\in E \rbrace ), \)

  • ściągnięcie zbioru wierzchołków \( X\subseteq V \) w grafie \( \mathbf{G} \) to szczególny przypadek ilorazu \( \mathbf{G}/\theta \), w którym klasy równoważności wszystkich wierzchołków spoza \( X \) są jednoelementowe, a \( X \) stanowi dodatkową klasę, tzn. \( V/\theta=\lbrace \lbrace v \rbrace:v\in V- X \rbrace\cup\lbrace X \rbrace \). W ten sposób zbiór \( X \) został ściągnięty do punktu, którego sąsiadami są sąsiedzi jakiegokolwiek wierzchołka z \( X \). Z drugiej strony, jeśli \( \theta\subseteq V\times V \) jest relacją równoważności o klasach \( X_1,\ldots,X_k \), to ściągając w grafie \( \mathbf{G} \) kolejno zbiory \( X_1,\ldots,X_k \) otrzymamy graf ilorazowy \( \mathbf{G}/\theta \).

Dowód charakteryzacji grafów planarnych w terminach ściągalności również pomijamy. Grafy sciagalne k33

Twierdzenie 14.3

Graf jest planarny wtedy i tylko wtedy, gdy nie zawiera podgrafu ściągalnego do \( \mathcal{K}_{5} \) lub \( \mathcal{K}_{3,3} \).

Przykład

W grafie przedstawionym na rysunku Grafy ściagalne k33 ściągnięcie zbiorów wierzchołków otoczonych przerywaną linią prowadzi do grafu zawierającego \( \mathcal{K}_{3,3} \). A więc, na mocy Twierdzenia 14.3, graf ten nie jest planarny.

W grafach płaskich poza wierzchołkami oraz krawędziami można rozważać również ściany, czyli obszary płaszczyzny otoczone krawędziami.

Ściana w grafie płaskim \( \mathbf{G} \) to spójny obszar płaszczyzny po usunięciu linii reprezentujących krawędzie, tzn. \( R^2-\bigcup{\sf E}\!(\mathbf{G}) \). Innym słowy ściana to zbiór punktów płaszczyzny, które da się połączyć krzywą nieprzecinającą żadnej krawędzi.

Ściana \( f_0 \) w grafie z rysunku Graf o czterech ścianach jest ścianą nieograniczoną, która nazywana jest też ścianą nieskończoną. Nie tylko ten graf, ale wszystkie grafy płaskie mają dokładnie jedną ścianę nieskończoną. Zauważmy, że las jest grafem planarnym, ale w żadnej reprezentacji płaskiej nie posiada ścian ograniczonych. Tak więc posiada w ogóle tylko jedną ścianę. Tym samym, następne twierdzenie jest uogólnieniem związku \( \vert E \vert=\vert V \vert-k \) między liczbą wierzchołków, krawędzi i drzew (tzn. spójnych składowych) w lesie.

Twierdzenie 14.4 [Euler 1750]

W grafie płaskim \( \mathbf{G}=( V,E ) \) o \( f \) ścianach i \( k\geq 1 \) składowych spójnych zachodzi

\( \vert V \vert-\vert E \vert+f=k+1. \)

Dowód

Dowód poprowadzimy indukcją ze względu na liczbę krawędzi. Jeżeli graf \( \mathbf{G} \) jest pusty to \( \vert E \vert=0,k=\vert V \vert,\ f=1 \), które to wartości spełniają podaną równość. Załóżmy, że \( \vert E \vert>1 \). Wybierzmy dowolną krawędź \( uv\in E \). Jeżeli \( uv \) nie leży na żadnym cyklu grafu \( \mathbf{G} \), to usunięcie \( uv \) zwiększy o \( 1 \) liczbę składowych ale nie zmieni liczby ścian. Tak więc, na mocy założenia indukcyjnego, \( \vert V \vert-(\vert E \vert-1)+f=(k+1)+1 \), co daje żądaną równość. Załóżmy więc, że \( uv \) leży na jakimś cyklu \( C \). Tym samym \( uv \) jest granicą pomiędzy dwoma różnymi ścianami, jako że dowolna krzywa przechodząca z jednej strony na drugą stronę granicy wyznaczonej przez krawędź \( uv \) musi przecinać jakąś krawędź z cyklu \( C \). Tak więc usunięcie krawędzi \( uv \) zmniejszy liczbę ścian o jeden. Ale teraz usunięcie krawędzi \( uv \) nie zmienia liczby składowych. Założenie indukcyjne daje nam więc \( \vert V \vert-(\vert E \vert-1)+(f-1)=k+1 \), czyli żądaną równość dla grafu \( \mathbf{G} \).

Uwaga

Ważną konsekwencją Twierdzenia 14.4 jest to, że liczba ścian zależy jedynie od liczby wierzchołków, krawędzi, oraz spójnych składowych. Tak więc w każdej reprezentacji płaskiej musi być taka sama.

Uzasadnienie dwu kolejnych wniosków z Twierdzenia 14.4 pozostawiamy jako ćwiczenie.

Wniosek 14.5

Jeśli \( \mathbf{G}=( V,E ) \) jest spójnym grafem planarnym o co najmniej \( 3 \) wierzchołkach, to

\( \vert E \vert\leq 3\vert V \vert-6. \)

Wniosek 14.6

Spójny graf planarny o \( \vert V \vert\geq1 \) posiada wierzchołek o stopniu nie większym niż \( 5 \).

Graf (w kolorze czerwono-niebieskim) oraz graf do niego dualny geometrycznie (w kolorze żółto-szarym)

Graf dualny geometrycznie do grafu płaskiego \( \mathbf{G}=( V,E ) \) to graf płaski \( \mathbf{G}^*=( V^*,E^* ) \) skonstruowany w następujący sposób:

  • Z każdej ściany grafu \( \mathbf{G} \) wybieramy po jednym punkcie. Tak wybrane punkty tworzą zbiór wierzchołków \( V^* \).
  • Jeśli krawędź po jednej stronie sąsiadowała ze ścianą \( f_1 \), a po drugiej z \( f_2 \) to w grafie \( \mathbf{G}^* \) odpowiadające ścianom \( f_1,f_2 \) wierzchołki \( v_1^*,v_2^* \) łączymy krawędzią \( v_1^*v_2^* \). Tak wybrane krawędzie tworzą zbiór \( E^* \).

Twierdzenie 14.7

Jeśli \( \mathbf{G} \) jest spójnym grafem płaskim, to \( \mathbf{G}^{**} \) jest izomorficzny z \( \mathbf{G} \).

Dowód

Każda ściana grafu \( \mathbf{G}^{*} \) reprezentowana jest jednym wierzchołkiem \( \mathbf{G}^{**} \). Z drugiej strony, w każdej ścianie grafu \( \mathbf{G}^{*} \) znajduje się dokładnie jeden wierzchołek grafu \( \mathbf{G} \). Ponadto, jeśli wierzchołki \( v_1,v_2 \) grafu \( \mathbf{G} \) są sąsiednie, to ściany \( f_1^*,f_2^* \) grafu \( \mathbf{G}^{*} \) zawierające odpowiednio \( v_1 \) i \( v_2 \) graniczą ze sobą. To kolei oznacza, że wierzchołki \( v_1^{**},v_2^{**} \) grafu \( \mathbf{G}^{**} \) odpowiadające ścianom \( f_1^* \) oraz \( f_2^* \) są sąsiednie. Oczywiście, przy przejściu z \( \mathbf{G} \) do \( \mathbf{G}^{*} \) i potem do \( \mathbf{G}^{**} \) wierzchołki \( v_1 \) i \( v_2 \) przechodzą w \( v_1^{**},v_2^{**} \). Analogicznie jeżeli \( v_1^{**} \) jest połączony krawędzią z \( v_2^{**} \) w \( \mathbf{G}^{**} \), to i również \( v_1 \) z \( v_2 \) w \( \mathbf{G} \).

Twierdzenie 14.8

Niech \( \mathbf{G}^* \) będzie grafem geometrycznie dualnym do grafu płaskiego \( \mathbf{G} \). Wtedy podzbiór \( C \) krawędzi grafu \( \mathbf{G} \) jest cyklem w grafie \( \mathbf{G} \) wtedy i tylko wtedy, gdy zbiór krawędzi dualnych do krawędzi zbioru \( C \) jest rozcięciem grafu \( \mathbf{G}^* \).

Dowód

Niech \( C \) będzie cyklem w grafie \( \mathbf{G} \). W grafie płaskim cykl dzieli płaszczyznę \( \mathbb{R}^2 \) na dwie spójne części \( A_1 \) oraz \( A_0 \), przy czym załóżmy, że \( A_1 \) jest ograniczona przez \( C \), a \( A_0 \) jest nieograniczona. Niech \( f_1 \) będzie dowolną ścianą we wnętrzu \( A_1 \), zaś \( f_0 \) ścianą nieskończoną, czyli zawartą w \( A_0 \) a \( v_1^*,v_0^* \) niech będą odpowiadającymi tym ścianom punktami grafu dualnego \( \mathbf{G}^* \). Tak więc, \( v_1^*\in A_1 \), a \( v_0^*\in A_0 \). A zatem dowolnie wybrana droga \( P \) z \( v_1^* \) do \( v_0^* \) musi przeciąć cykl \( C \) co najmniej raz. Przecinające się krawędzie, jedna z drogi \( P \) i druga z cyklu \( C \), są wzajemnie dualne (przy przejściu z \( \mathbf{G} \) do \( \mathbf{G}^{*} \) i z powrotem do \( \mathbf{G}^{**}\approx \mathbf{G} \)). Tak więc, zbiór \( C^* \) krawędzi dualnych do krawędzi z cyklu \( C \) tworzy zbiór rozspajający wierzchołki \( v_1^*,v_0^* \).

Pokażemy, że zbiór \( C^* \) jest rozcięciem, czyli minimalnym zbiorem rozspajającym. Zmniejszenie \( C^* \) powstaje oczywiście poprzez zmniejszenie zbioru \( C \). Usunięcie jednakże krawędzi \( e \) z \( C \), powoduje połączenie obszaru \( A_1 \) z obszarem \( A_0 \). Pozwala to tworzyć krzywe łączące dowolne dwa punkty \( A_0\cup A_1 \) i nie przecinające krawędzi ze zbioru \( C-\lbrace e \rbrace \). W konsekwencji pozwala to na tworzenie ścieżek między dowolnymi wierzchołkami grafu \( \mathbf{G}^* \) omijając krawędzie z \( C-\lbrace e \rbrace \).

Dowód implikacji w drugą stronę jest analogiczny.

Kolorowanie grafów

W tej części wykładu zajmiemy się problemami związanymi z kolorowaniem grafów. Intuicyjnie kolorowanie to przypisanie wierzchołkom grafu kolorów w taki sposób, by każde dwa sąsiednie wierzchołki miały różne kolory.

Kolorowanie grafu \( \mathbf{G}=( V,E ) \) to funkcja \( c: V \longrightarrow \mathbb{N} \) taka, że \( c(v)\neq c(w) \) ilekroć \( vw \) jest krawędzią grafu \( \mathbf{G} \).

Kolorowanie grafu \( \mathbf{G} \) na \( k \) kolorów wyznacza rozbicie zbioru \( V \) na sumę rozłączną \( V = V_0\cup V_1\cup\ldots\cup V_{k-1} \) jednobarwnych zbiorów \( V_i \), przy czym każdy graf indukowany postaci \( \mathbf{G}|_{V_i} \) jest antykliką. Na odwrót, rozbicie \( V = V_0\cup V_1\cup\ldots\cup V_{k-1} \) pozwala na pokolorowanie grafu \( \mathbf{G} \) na \( k \) kolorów.

Graf \( k \)-kolorowalny (\( k \)-barwny) to graf dający się pokolorować \( k \) barwami.

Liczba chromatyczna grafu, \( \chi\!( \mathbf{G} ) \), to najmniejsza liczba barw, którymi można pokolorować graf \( \mathbf{G} \).

Optymalne kolorowanie grafu \( \mathbf{G} \) to kolorowanie używające dokładnie \( \chi\!( \mathbf{G} ) \) kolorów.

Twierdzenie 14.9

Graf, którego wszystkie wierzchołki mają stopień nie większy niż \( k \) jest \( (k+1) \)-kolorowalny.

Dowód

Dowód poprowadzimy indukcyjnie ze względu na liczbę wierzchołków w grafie \( \mathbf{G}=( V,E ) \). Jeśli graf ma jeden wierzchołek, to oczywiście wystarcza jeden kolor. Załóżmy więc, że \( \vert V \vert\geq2 \). Wybierzmy dowolny wierzchołek \( v\in V \) i rozważmy graf \( \mathbf{G}|_{V-\lbrace v \rbrace} \). Na mocy założenia indukcyjnego da się go pokolorować \( k+1 \) barwami. Zauważmy, że \( v \) ma co najwyżej \( k \) sąsiadów. Wśród \( k+1 \) kolorów użytych w kolorowaniu grafu \( \mathbf{G}|_{V-\lbrace x \rbrace} \) jest więc kolor nie przypisany żadnemu sąsiadowi wierzchołka \( v \). Wybieramy więc ten kolor jako barwę dla \( v \). Udało się pokolorować graf \( \mathbf{G} \) zbiorem \( k+1 \) kolorów, co kończy dowód.

Ograniczenia górnego, na liczbę chromatyczną grafu, podanego w Twierdzeniu 14.9 nie można w ogólności wzmocnić. Istotnie, każde kolorowanie kliki \( \mathcal{K}_{k+1} \) wymaga dokładnie \( k+1 \) kolorów, mimo iż stopień każdego wierzchołka to \( k \). Następne twierdzenie wzmacnia jednak znacznie Twierdzenia 14.9, ale podajemy je bez dowodu.

Twierdzenie 14.10 [Brooks 1941]

Niech \( \mathbf{G} \) będzie spójnym grafem prostym, który nie jest kliką. Jeśli wszystkie wierzchołki grafu \( \mathbf{G} \) mają stopień nie większy niż \( k \) i \( k\geq 3 \), to \( \mathbf{G} \) jest \( \rho \)-kolorowalny.

Oczywiście nie powinno dziwić nas, że dla grafów specjalnego typu można na ogół powiedzieć więcej o ich liczbie chromatycznej.

Obserwacja 14.11

Graf jest dwudzielny wtedy i tylko wtedy, gdy jest \( 2 \)-kolorowalny.

Dowód

Zauważmy najpierw, że w grafie dwudzielnym \( \mathbf{G}=( V_1\cup V_2,E ) \), podgrafy indukowane \( \mathbf{G}|_{V_1} \) oraz \( \mathbf{G}|_{V_2} \) są antyklikami. Wystarczy więc pokolorować wierzchołki z \( V_1 \) jednym kolorem, a wierzchołki z \( V_2 \) drugim. Z drugiej strony wierzchołki grafu \( 2 \)-kolorowalnego daje się oczywiście rozbić na dw zbiory indukujące antykliki, jak tego wymaga dwudzielność.

Twierdzenie 14.12

Każdy graf planarny jest \( 5 \)-kolorowalny.

Dowód

Dowód przeprowadzimy indukcyjnie ze względu na liczbę wierzchołków w grafie \( \mathbf{G}=( V,E ) \). Dla \( \vert V \vert=1 \) teza jest oczywista. Niech więc \( \vert V \vert\geq2 \). Z Wniosku 14.6 wiemy, że \( \mathbf{G} \) ma jakiś wierzchołek \( v \) o stopniu niewiększym niż \( 5 \). Na mocy założenia indukcyjnego wiemy, że graf \( \mathbf{G}|_{V-\lbrace v \rbrace} \) jest \( 5 \)-kolorowalny. Jeżeli \( v \) ma mniej niż \( 5 \)-ciu sąsiadów, to można go pokolorować kolorem niewystępującym u żadnego sąsiada, co kończyłoby dowód. Podobnie, gdyby jakiś kolor występował u co najmniej dwóch sąsiadów wierzchołka \( v \), to także można byłoby zakończyć dowód, gdyż Wśród \( 5 \)-ciu kolorów dostępnych do kolorowania grafu \( \mathbf{G} \) jest kolor nie przypisany żadnemu sąsiadowi wierzchołka \( v \) i może być wobec tego użyty dla \( v \). Możemy więc założyć, że \( v \) ma \( 5 \) sąsiadów \( v_1, v_2, v_3, v_4, v_5 \) odpowiednio o kolorach: \( 1,2,3,4,5 \). Bez straty ogólności ich ułożenie może wyglądać jak na rysunku Grafy 5barw planar.

Niech \( \mathbf{P}_{i,j} \) będzie restrykcją grafu \( \mathbf{G} \) do zbioru wszystkich jego wierzchołków o barwach \( i \) oraz \( j \). Jeśli \( v_1 \) i \( v_3 \) nie są w tej samej spójnej składowej grafu \( \mathbf{P}_{1,3} \), to można zamienić kolory \( 1 \) i \( 3 \) w spójnej składowej wierzchołka \( v_1 \). Tak więc, z racji, że teraz \( v_1 \) otrzymał kolor \( 3 \), koloru \( 1 \) można użyć do pokolorowania wierzchołka \( v \). Pozostał przypadek, gdy \( v_1 \) oraz \( v_3 \) są w tej samej spójnej składowej grafu \( \mathbf{P}_{1,3} \). Oznaczy to, że istnieje ścieżka \( R \) zawarta w \( \mathbf{P}_{1,3} \) i łącząca \( v_1 \) z \( v_3 \). W efekcie otrzymujemy cykl \( v\to v_1\to R\to v_3\to v \), który ogranicza obszar zawierający wierzchołek \( v_2 \) i nie zawierający \( v_4 \).

Z planarności dostajemy więc, że wierzchołki \( v_2 \) oraz \( v_4 \) nie mogą być w tej samej spójnej składowej grafu \( \mathbf{P}_{2,4} \). W takim razie podobnie, jak powyżej możemy podmienić kolory w spójnej składowej wierzchołka \( v_2 \) tak, że \( v_2 \) otrzyma kolor \( 4 \). Ale teraz możemy pokolorować wierzchołek \( v \) na kolor \( 2 \), co kończy dowód.

Okazuje się że prawdziwe jest mocniejsze i słynne twierdzenie o czterech barwach. Jego długi i skomplikowany dowód został otrzymany przy użyciu specjalnie napisanego programu do rozważenia bardzo wielu przypadków. Dowód ten pomijamy.

Twierdzenie 14.13

Każdy graf planarny jest \( 4 \)-kolorowalny.

Mapa to graf płaski nie zawierający mostów.

W mapach rozważa się kolorowanie ścian.

Mapa ma \( k \)-kolorowalne ściany jeśli jej ściany można pokolorować \( k \) kolorami w ten sposób, by żadne dwie graniczące ze sobą ściany nie miały tego samego koloru. Innymi słowy, mapa \( \mathbf{M} \) ma \( k \)-kolorowalne ściany, jeśli jej geometrycznie dualny graf \( \mathbf{M}^* \) jest \( k \) kolorowalny.

Twierdzenie 14.14

Mapa \( \mathbf{M} \) ma \( 2 \)-kolorowalne ściany wtedy i tylko wtedy, gdy graf \( \mathbf{M} \) jest eulerowski.

Dowód

Załóżmy najpierw, że ściany są pomalowane dwoma kolorami. Wtedy każdy wierzchołek \( v \) musi być incydentny z parzystą liczbą ścian, a zatem musi mieć parzysty stopień. Na mocy Twierdzenia Eulera otrzymujemy więc, że \( \mathbf{M} \) jest eulerowski.

Niech teraz \( \mathbf{M} \) będzie grafem eulerowskim. Wtedy, na mocy wniosku z Twierdzenia Eulera, jego krawędzie można podzielić na rozłączne krawędziowo cykle \( C_1,\ldots,C_k \). Kolorowanie ścian mapy \( \mathbf{M} \) zdefiniujmy poprzez przypisanie ścianie pierwszego koloru, jeśli jest otoczona nieparzystą liczbą cykli spośród \( C_1,\ldots,C_k \), albo poprzez przypisanie drugiego koloru, jeśli jest otoczona parzystą liczbą cykli. Kolorowanie to jest poprawne, gdyż jeśli dwie ściany graniczą ze sobą poprzez krawędź jakiegoś cyklu \( C_i \), to jedna z tych ścian leży wewnątrz cyklu \( C_i \), a druga na zewnątrz \( C_i \). W stosunku do pozostałych cykli spośród \( C_1,\ldots,C_k \), albo obie ściany są wewnątrz, albo obie na zewnątrz. Tak więc różni je parzystość liczby cykli, we wnętrzu których leżą. Tym samym, w zdefiniowanym kolorowaniu, otrzymają różne kolory.

Z Twierdzenia 14.13, poprzez przejście od mapy \( \mathbf{M} \) do grafu geometrycznie dualnego \( \mathbf{M}^* \) dostajemy natychmiast następujący wniosek.

Wniosek 14.15

Każda mapa ma \( 4 \)-kolorowalne ściany.

Z powodu dużego znaczenia kolorowania tak w samej teorii grafów, jak i w algorytmice, problemy kolorowania doczekały się bardzo rozbudowanych pojęć i narzędzi. Poznamy teraz jeszcze jedno z nich.

Liczba stopniowa grafu. Niech \( \mathbf{G}=( \lbrace v_1,\ldots,v_n \rbrace,E ) \) będzie grafem prostym. Przy każdej permutacji \( \rho:\lbrace 1,\ldots,n \rbrace\longrightarrow\lbrace 1,\ldots,n \rbrace \) każdemu wierzchołkowi \( v_{\rho( i )} \) przypisana jest liczba sąsiadów \( n_{\rho( i )}^{\rho} \) w zbiorze wierzchołków o indeksie mniejszym niż \( \rho( i ) \). Liczba stopniowa jest równa

\( \chi_s\!( \mathbf{G} )= \min_{\rho}\max_{i=1,\ldots, n}{n_i^{\rho}}. \)

Przykład

Rozważmy graf \( \mathbf{G}_1=( \lbrace v_1,v_2,v_3,v_4,v_5 \rbrace,E ) \) przedstawiony na rysunku Grafy liczba stopniowa 1.

Dla permutacji \( \rho \) zadanej przez

\( \begin{array} {|c||c|c|c|c|c|} \hline n & 1 & 2 & 3 & 4 & 5 \\ \hline \rho( n ) & 5 & 2 & 3 & 1 & 4 \\ \hline \end{array} \)

mamy \( \max_{i=1,\ldots, n}{n_i^{\rho}}=2 \) i wartość ta jest realizowana przez wierzchołki \( v_3 \) i \( v_1 \). Wierzchołki ułożone w porządku \( v_{\rho( 1 )},\ldots,v_{\rho( 5 )} \) przedstawione są na rysunku Graf G_1 z wierzchołkami....

Przeglądając z kolei wszystkie możliwe permutacje możemy stwierdzić, że nasza permutacja \( \rho \) realizuje minimum \( \displaystyle{\min_{\rho}\max_{i=1,\ldots, n}{n_i^{\rho}}} \), a zatem \( \chi_s\!( \mathbf{G} )=2 \).

Graf \( \mathbf{G}_1 \) można teraz pokolorować następującą procedurą. Wybierając kolejno wierzchołki \( v_{\rho( 1 )},v_{\rho( 2 )},\ldots,v_{\rho( 5 )} \) nadajemy im kolor niewykorzystany dla żadnego dotąd rozpatrywanego sąsiada. Otrzymujemy wtedy kolorowanie przedstawione na rysunku Kolorowanie grafu.

Waga wprowadzonej liczby stopniowej wynika z poniższej obserwacji.

Obserwacja 14.16

Jeżeli \( \mathbf{G} \) jest grafem prostym, to

\( \chi\!( \mathbf{G} )\leq\chi_s\!( \mathbf{G} )+1. \)

Dowód

Niech \( v_1,\ldots,v_n \) będzie ciągiem wierzchołków grafu \( \mathbf{G} \) w porządku realizującym wartość \( \chi_s\!( \mathbf{G} ) \). Wskażemy kolorowanie za pomocą \( \chi_s\!( \mathbf{G} )+1 \) barw. Wierzchołki kolorowane są kolejno zgodnie z ich numeracją. Załóżmy, że pokolorowane zostały już wierzchołki \( v_1,\ldots,v_{i-1} \). Wierzchołek \( v_i \) ma co najwyżej \( \chi_s\!( \mathbf{G} ) \) sąsiadów w zbiorze \( \lbrace v_1,\ldots,v_{i-1} \rbrace \), tak więc w zbiorze \( \chi_s\!( \mathbf{G} )+1 \) kolorów jest jeszcze co najmniej jeden kolor nie wykorzystany dla tych wcześniejszych sąsiadów \( v_i \). Przydzielamy go więc wierzchołkowi \( v_i \). Czynność ta jest powtarzana, aż do momentu pokolorowania wszystkich wierzchołków w \( {\sf V}\!(\mathbf{G}) \).

Metody algebraiczne w teorii grafów

Metody algebraiczne w teorii grafów

Graf regularny stopnia \( r \) to graf, w którym wszystkie wierzchołki mają stopień \( r \).
Graf taki nazywany jest także \( r \)-regularnym.

Maksymalny stopień wierzchołka w grafie \( \mathbf{G} \), oznaczany przez \( \Delta( \mathbf{G} ) \) to

\( \Delta( \mathbf{G} ):=\max\lbrace {\sf deg}\ v:\ v\in{\sf V}\!(G) \rbrace. \)

Macierz sąsiedztwa \( {\sf A}( \mathbf{G} ) \) grafu prostego \( \mathbf{G}=( \lbrace v_1,\ldots,v_n \rbrace,E ) \) to zero-jedynkowa macierz \( \langle a_{ij} \rangle \) rozmiaru \( n\times n \), gdzie

\( a_{ij}= \left \{ \begin{array} {l} 1, & \textrm{jeżeli}\ v_i v_j\in E, \\ 0, & \textrm{w przeciwnym wypadku.} \end{array} \right. \)

Uwaga

Macierz sąsiedztwa grafu nieskierowanego jest symetryczna.

Przykład

Na rysunku Graf prosty przedstawiono graf prosty \( \mathbf{G}_0 \) o wierzchołkach \( v_0,\ldots,v_5 \) oraz graf skierowany \( \mathbf{G}_1 \) o wierzchołkach \( u_1,\ldots,u_5 \). Macierze sąsiędztwa grafów \( \mathbf{G}_0 \) oraz \( \mathbf{G}_1 \) wyglądają następująco:

\( {\sf A}( \mathbf{G}_0 )=\left[ \begin{array} {ccccc} 0 & 1 & 1 & 1 & 0 \\ 1 & 0 & 0 & 1 & 1 \\ 1 & 0 & 0 & 1 & 0 \\ 1 & 1 & 1 & 0 & 1 \\ 0 & 1 & 0 & 1 & 0 \end{array} \right],\quad {\sf A}( \mathbf{G}_1 )=\left[ \begin{array} {ccccc} 0 & 1 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 1 \\ 1 & 0 & 0 & 1 & 1 \\ 1 & 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 \end{array} \right ]. \)

Domknięcie przechodnie grafu skierowanego \( \mathbf{G} \), to graf \( {\sf TC}( \mathbf{G} ) \) taki, że:

  • \( {\sf V}\!({\sf TC}( \mathbf{G} ))={\sf V}\!(\mathbf{G}) \), oraz
  • \( ( v,w )\in{\sf E}\!({\sf TC}( \mathbf{G} )) \)

wtedy i tylko wtedy, gdy w grafie \( \mathbf{G} \) istnieje skierowana marszruta z \( v \) do \( w \).

Twierdzenie 15.1

Niech \( \mathbf{G}=( \lbrace v_1,\ldots,v_n \rbrace,E ) \) będzie grafem skierowanym. Wtedy liczba skierowanych marszrut z \( v_i \) do \( v_j \) jest dana elementem \( a_{ij} \) macierzy:

\( \langle a_{ij} \rangle ={\sf A}( \mathbf{G} )^1+{\sf A}( \mathbf{G} )^2+\ldots+{\sf A}( \mathbf{G} )^{( n-1 )}. \)

Dowód

Wystarczy pokazać, że

(*) \( \langle a'_{ij} \rangle ={\sf A}( \mathbf{G} )^k \) jest macierzą, w której \( a'_{ij} \) jest liczbą skierowanych marszrut z \( v_i \) do \( v_j \) o długości \( k \).

Dowód własności (*) przeprowadzimy indukcją względem \( k \). Macierz \( {\sf A}( \mathbf{G} )^1 \) jest macierzą sąsiedztwa, co natychmiast daje (*) dla \( k=1 \). Niech teraz \( k>1 \). Oczywiście

\( {\sf A}( \mathbf{G} )^k = {\sf A}( \mathbf{G} )^{k-1}\cdot{\sf A}( \mathbf{G} ). \)

Jeśli więc \( \langle a_{ij} \rangle ={\sf A}( \mathbf{G} ) \), \( \langle a'_{ij} \rangle ={\sf A}( \mathbf{G} )^k \), oraz \( \langle a''_{ij} \rangle ={\sf A}( \mathbf{G} )^{k-1} \), to

\( a'_{ij}=a''_{i1}a_{1j}+\ldots+a''_{in}a_{nj}. \)

Wartość \( a''_{il} \) to liczba wszystkich skierowanych marszrut z \( v_i \) do \( v_l \) o długości \( k-1 \). Tak więc iloczyn \( a''_{il}a_{lj} \) jest równy liczbie wszystkich skierowanych \( k \)-elementowych marszrut mających postać \( v_i\to\ldots\to v_l\to v_j \), czyli takich skierowanych marszrut z \( v_i \) do \( v_j \) o \( k \) elementach, których przedostatni wierzchołek to \( v_l \). Sumując te wartości po wszystkich \( l \), czyli dopuszczając dowolny wierzchołek \( v_l \) jako przedostatni, otrzymujemy liczbę wszystkich \( k \)-elementowych skierowanych marszrut z \( v_i \) do \( v_j \). To kończy dowód (*), a zatem i całego twierdzenia.

Graf \( \mathbf{G}_2 \) (a) oraz jego przechodnie domknięcie \( \mathbf{G}_3={\sf TC}( \mathbf{G}_2 ) \) (b)

Przykład

Grafy \( \mathbf{G}_2=( \lbrace u_1,\ldots,u_5 \rbrace,E ) \) i \( \mathbf{G}_3=( \lbrace u_1,\ldots,u_5 \rbrace,E' ) \) zostały przedstawione na animacji.

Macierz sąsiedztwa grafu \( \mathbf{G}_2 \) to

\( {\sf A}( \mathbf{G}_2 )= \left[ \begin{array} {ccccc} 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 1 \\ 1 & 0 & 0 & 1 & 1 \\ 1 & 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 \end{array} \right] \)

Ponadto

\( \sum_{i=1}^{4}{{\sf A}( \mathbf{G}_2 )^i}=\left[ \begin{array} {ccccc} 1 & 3 & 0 & 2 & 3 \\ 2 & 3 & 0 & 3 & 5 \\ 4 & 5 & 0 & 4 & 7 \\ 3 & 5 & 0 & 3 & 6 \\ 0 & 0 & 0 & 0 & 0 \end{array} \right]. \)

W macierzy \( \langle a'_{ij} \rangle =\sum_{i=1}^{4}{{\sf A}( \mathbf{G}_2 )^i} \) wartość \( a'_{ij} \) mówi o liczbie różnych skierowanych marszrut z wierzchołka \( v_i \) do \( v_j \) o długości co najwyżej \( 4 \). Dla przykładu \( a_{34}=4 \) i rzeczywiście \( u_3\to u_4 \), \( u_3\to u_4\to u_2\to u_4 \), \( u_3\to u_1\to u_2\to u_4 \), i \( u_3\to u_4\to u_1\to u_2\to u_4 \) są wszystkimi skierowanymi marszrutami jakie można znaleźć w grafie \( \mathbf{G}_2 \) prowadzące z wierzchołka \( v_3 \) do \( v_4 \) o długości co najwyżej \( 4 \). Z kolei macierz sąsiedztwa dla przechodniego domknięcia grafu \( \mathbf{G}_2 \) to

\( {\sf A}( {\sf TC}( \mathbf{G}_2 ) )=\left[ \begin{array} {ccccc} 0 & 1 & 0 & 1 & 1 \\ 1 & 0 & 0 & 1 & 1 \\ 1 & 1 & 0 & 1 & 1 \\ 1 & 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 \end{array} \right ]. \)

Warto zaobserwować oczywisty fakt, że macierz \( {\sf A}( {\sf TC}( \mathbf{G}_2 ) ) \) można równie dobrze uzyskać z macierzy \( \sum_{i=1}^{4}{{\sf A}( \mathbf{G}_2 )^i} \) przez zamianę każdej niezerowej wartości na \( 1 \) oraz wyzerowanie przekątnej.

Wniosek 15.2

Dla grafu \( \mathbf{G} \) o wierzchołkach \( v_1,\ldots,v_n \) i macierzy \( \langle a_{ij} \rangle ={\sf A}( \mathbf{G} )^1+{\sf A}( \mathbf{G} )^2+\ldots+{\sf A}( \mathbf{G} )^{( n-1 )} \), jeśli tylko \( i\neq j \), to

\( a_{ij}>0\quad \textrm{wtedy i tylko wtedy, gdy}\quad ( v_i,v_j )\in{\sf E}\!({\sf TC}( \mathbf{G} )). \)

Macierz incydencji \( {\sf B}( \mathbf{G} ) \) grafu \( \mathbf{G}=( \lbrace v_1,\ldots,v_n \rbrace,\lbrace e_1,\ldots,e_m \rbrace ) \) to zero-jedynkowa macierz \( \langle b_{ij} \rangle \) rozmiaru \( n\times m \), gdzie

\( b_{ij}=\left \{ \begin{array} {l} 1, & \textrm{jeśli wierzchołek}\ v_i\ \textrm{jest incydentny z krawędzią}\ e_j, \\ 0, & \textrm{w przeciwnym wypadku.} \end{array} \right. \)

Zorientowana macierz incydencji \( {\sf C}( \mathbf{G} ) \) grafu prostego to macierz \( \langle c_{ij} \rangle \), rozmiaru \( n\times m \), otrzymana z macierzy incydencji \( {\sf B}( \mathbf{G} ) \) poprzez zastąpienie w każdej kolumnie jednej z dwu jedynek przez \( -1 \)(minus jeden).

Przykład

Dla grafu \( \mathbf{G}_4=( \lbrace v_1,\ldots,v_5 \rbrace,\lbrace e_1,\ldots,e_7 \rbrace ) \) przedstawionego na rysunku Graf prosty G4 macierz incydencji oraz zorientowana macierz incydencji, to odpowiednio:

\( {\sf B}( \mathbf{G}_4 )=\left[ \begin{array} {ccccccc} 1 & 0 & 1 & 1 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 & 1 & 1 & 1 \\ 0 & 1 & 0 & 0 & 0 & 1 & 0 \end{array} \right],\quad \)
\( {\sf C}( \mathbf{G}_4 )=\left[ \begin{array} {ccccccc} -1 & 0 & 1 & -1 & 0 & 0 & 0 \\ 1 & -1 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & -1 & 0 & 0 & 0 & -1 \\ 0 & 0 & 0 & 1 & -1 & -1 & 1 \\ 0 & 1 & 0 & 0 & 0 & 1 & 0 \end{array} \right]. \)

Obserwacja 15.3

  • Dla macierzy incydencji \( \langle b_{ij} \rangle \) oraz zorientowanej macierzy incydencji \( \langle c_{ij} \rangle ={\sf C}( \mathbf{G} ) \) zachodzi \( b_{ij} = \vert c_{ij} \vert\quad\textrm{dla}\ i=1,\ldots,n\ \textrm{oraz}\ j=1,\ldots,m. \)
  • W zorientowanej macierzy incydencji \( \langle c_{ij} \rangle \) mamy: \( c_{1j}+\ldots+c_{nj}=0\quad\textrm{dla}\ j=1,\ldots,m. \)

Macierz stopni \( {\sf D}( \mathbf{G} ) \) grafu prostego \( \mathbf{G}=( \lbrace v_1,\ldots,v_n \rbrace,E ) \) to diagonalna macierz \( \langle d_{ij} \rangle \) rozmiaru \( n\times n \), gdzie

\( d_{ij}=\left \{ \begin{array} {l} {\sf deg}\ v_i, & \textrm{jeżeli}\ i=j, \\ 0, & \textrm{w przeciwnym wypadku.} \end{array} \right. \)

Przykład

Dla grafu \( \mathbf{G}_4 \) przedstawionego na rysunku Graf prosty G4 odpowiednia macierz stopni to

\( {\sf D}( \mathbf{G}_4 )=\left[ \begin{array} {ccccc} 3 & 0 & 0 & 0 & 0 \\ 0 & 3 & 0 & 0 & 0 \\ 0 & 0 & 2 & 0 & 0 \\ 0 & 0 & 0 & 4 & 0 \\ 0 & 0 & 0 & 0 & 2 \end{array} \right ]. \)

Twierdzenie 15.4

Jeśli \( \mathbf{G}=( V,E ) \) jest grafem prostym, to

\( {\sf B}( \mathbf{G} )\cdot {\sf B}( \mathbf{G} )^T= {\sf D}( \mathbf{G} )+ {\sf A}( \mathbf{G} ), \)

gdzie \( {\sf B}( \mathbf{G} )^T \) jest macierzą transponowaną macierzy \( {\sf B}( \mathbf{G} ) \).

Przykład

Policzmy macierze opisane w Twierdzeniu 15.4 dla grafu \( \mathbf{G}_4 \) z rysunku Graf prosty G4. Tak więc

\( \begin{align*} {\sf B}( \mathbf{G}_4 )\cdot{\sf B}( \mathbf{G}_4 )^T & = & \left[ \begin{array} {ccccccc} 1 & 0 & 1 & 1 & 0 & 0 & 0 \\ 1 & 1 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 1 & 1 & 1 & 1 \\ 0 & 1 & 0 & 0 & 0 & 1 & 0 \end{array} \right ]\cdot \left[ \begin{array} {ccccccc} 1 & 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 1 \\ 1 & 0 & 1 & 0 & 0 \\ 1 & 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 & 1 \\ 0 & 0 & 1 & 1 & 0 \end{array} \right ] \\ & = & \left[ \begin{array} {ccccc} 3 & 1 & 1 & 1 & 0 \\ 1 & 3 & 0 & 1 & 1 \\ 1 & 0 & 2 & 1 & 0 \\ 1 & 1 & 1 & 4 & 1 \\ 0 & 1 & 0 & 1 & 2 \end{array} \right]\ =\ {\sf D}( \mathbf{G}_4 )+ {\sf A}( \mathbf{G}_4 ). \end{align*} \)

Dowód [Twierdzenia 15.4]

Niech \( m_{ij} \) będzie elementem w \( i \)-tym wierszu oraz w \( j \)-tej kolumnie macierzy \( M={\sf B}( \mathbf{G} )\cdot {\sf B}( \mathbf{G} )^T \). Z definicji \( M \) wynika, że

\( m_{ij}=b_{i1}\cdot b_{j1}+\ldots+b_{i\vert E \vert}\cdot b_{j\vert E \vert}. \)

Rozważmy dwa przypadki:

  • \( i\neq j \). Wtedy \( b_{ik}\cdot b_{jk}=1 \) jest równoważne temu, że krawędź \( e_k \) łączy wierzchołek \( v_i \) z \( v_j \). Tak więc \( m_{ij}=1 \) wtedy i tylko wtedy, gdy \( v_i \) sąsiaduje z \( v_j \).
  • \( i=j \). Wtedy \( b_{ik}\cdot b_{jk}=1 \) jest równoważne temu, że krawędź \( e_k \) jest incydentna z \( v_i \). Sumując wartości \( b_{ik}\cdot b_{ik} \) dla \( k=1,\ldots,\vert E \vert \) uzyskujemy liczbę krawędzi incydentnych do \( v_i \), czyli stopień \( {\sf deg}\ v_i \).

Twierdzenie 15.5

Niech \( \mathbf{G} \) będzie grafem skierowanym o \( n \) wierzchołkach, a macierz \( M \) o rozmiarach \( ( n-1 )\times( n-1 ) \), będzie minorem (podmacierzą) zorientowanej macierzy incydencji \( {\sf C}( \mathbf{G} ) \), w którym kolumny odpowiadają krawędziom z pewnego podzbioru \( {\sf E}\!(M) \) zbioru \( {\sf E}\!(\mathbf{G}) \). Wtedy

\( \mathbf{H}=( {\sf V}\!(\mathbf{G}),{\sf E}\!(M) )\ \)jest drzewem wtedy i tylko wtedy, gdy \( M \) jest nieosobliwa.

Dowód

Niech \( w \) będzie wierzchołkiem odpowiadającym jedynemu wierszowi pominiętemu w minorze \( M \).

Niech \( \mathbf{H}=( {\sf V}\!(\mathbf{G}),{\sf E}\!(M) ) \) będzie drzewem. Dla pokazania, że wtedy macierz \( M \) jest nieosobliwa, dokonamy takiej permutacji wierszy i kolumn macierzy \( M \), by uzyskana w ten sposób macierz \( M'=\langle m'_{ij} \rangle \) była trójkątna i miała wyłącznie niezerowe elementy na przekątnej. Zostanie to uzyskane przez takie ponumerowanie wierzchołków i krawędzi grafu \( \mathbf{H} \), by w nowej macierzy

\( m'_{ij}\neq0 \) wtedy i tylko wtedy, gdy wierzchołek \( v_i \) jest incydentny z \( e_j \).

Przypomnijmy, że odległość pomiędzy dwoma wierzchołkami \( x \) i \( y \) w grafie to liczność najkrótszej ścieżki od \( x \) do \( y \). Ponumerujmy wierzchołki z \( {\sf V}\!(\mathbf{G}) \) w taki sposób, że jeśli \( v_i \) jest bliżej wierzchołka \( w \), niż \( v_j \) to \( i\leq j \). Numeracji takich może być wiele, ale dla nas nie ma znaczenia, którą z nich wybierzemy i ustalimy dla dalszej części dowodu. Zauważmy jedynie, że w każdej takiej numeracji wierzchołek \( w \) znajduje się na początku. Ponieważ graf \( \mathbf{H} \) jest drzewem, to między wierzchołkiem \( w \) i dowolnym \( v_i \) istnieje dokładnie jedna ścieżka. Oznaczmy ją przez \( P_i=w\to v_{k_1}\to\ldots\to v_{k_s}\to v_i \). Oczywiście, dla \( i\neq j \) ostanie krawędzie w ścieżkach \( P_i \) i \( P_j \) są różne. Tę ostatnią krawędź ścieżki \( P_i \) oznaczmy, tak jak na rysunku, indeksem \( i \), czyli \( e_i=v_{k_s}v_i \).

Ponieważ w drzewie \( \mathbf{H} \) jest dokładnie \( n-1 \) krawędzi, przypisanie wierzchołkowi \( v_i \) krawędzi \( e_i \) jest bijekcją między \( {\sf V}\!(\mathbf{G})-\lbrace w \rbrace \) a \( {\sf E}\!(\mathbf{H}) \). W kolumnie \( j_0 \) macierzy \( M \), odpowiadającej krawędzi \( e_{j_0}=v_{j_1}v_{j_0} \), są jedynie dwa niezerowe elementy - jeden leży w wierszu \( j_0 \), odpowiadającemu wierzchołkowi \( v_{j_0} \), a drugi w wierszu \( j_1 \). Skoro krawędź \( e_{j_0} \) ma ten sam numer co wierzchołek \( v_{j_0} \), wierzchołek \( v_{j_1} \) musi leżeć na ścieżce z \( w \) do \( v_{j_0} \). Tym samym \( v_{j_1} \) jest bliżej \( w \) niż \( v_{j_0} \), a zatem \( j_1 < j_0 \). Macierz \( M' \) jest więc macierzą trójkątną górną z niezerową przekątną, co kończy dowód.

Załóżmy teraz, że \( \mathbf{H} \) nie jest drzewem. Ponieważ \( \mathbf{H} \) ma jedynie \( n-1 \) krawędzi, to zależność miedzy liczbą wierzchołków, krawędzi i składowych spójnych daje, że \( \mathbf{H} \) ma co najmniej \( 2 \) składowe. Niech wierzchołki \( v_{i_1},\ldots,v_{i_l} \) tworzą składową, w której nie występuje \( w \). Jeżeli, w \( i_p \)-tym wierszu i \( r \)-tej kolumnie macierzy \( M \) jest niezerowy element \( x=\pm1 \), to wierzchołek \( v_{i_p} \) jest incydentny z krawędzią \( e_r =v_{i_p}v_{i_s} \). Wierzchołek \( v_{i_s} \) będący drugim końcem krawędzi \( e_r \) leży oczywiście w tej samej składowej co \( v_{i_p} \), a zatem macierz \( M \) ma liczbę \( -x \) w \( r \)-tej kolumnie i w \( i_s \)-tym wierszu. Sumując teraz wiersze macierzy \( M \) o indeksach \( i_1,\ldots,i_l \) otrzymujemy wektor zerowy. To oczywiście oznacza, że macierz \( M \) jest osobliwa.

Wniosek 15.6

W spójnym grafie prostym \( \mathbf{G} \) o \( n \) wierzchołkach rząd macierzy \( {\sf C}( \mathbf{G} ) \) wynosi \( n-1 \).

Wielomian charakterystyczny grafu \( \mathbf{G} \) to wielomian charakterystyczny macierzy sąsiedztwa \( {\sf A}( \mathbf{G} ) \).

Permanent grafu \( \mathbf{G} \) to permanent macierzy \( {\sf A}( \mathbf{G} ) \), czyli

\( {\sf per}\ {\sf A}( \mathbf{G} ) = \sum_{\sigma}{a_{1,\sigma(1)}\cdot a_{2,\sigma(2)}\cdot\ldots\cdot a_{n,\sigma(n)}}, \)

gdzie suma \( \sum_{\sigma} \) rozciąga się po wszystkich permutacjach \( \sigma \), zaś \( a_{ij} \) oznacza element macierzy \( {\sf A}( \mathbf{G} ) \).

Wyznacznik grafu \( \mathbf{G} \) to wyznacznik macierzy \( {\sf A}( \mathbf{G} ) \), czyli

\( {\sf det}\ {\sf A}( \mathbf{G} ) = \sum_{\sigma}(-1)^{\mbox{\sf sgn}(\sigma)}{a_{1,\sigma(1)}\cdot a_{2,\sigma(2)}\cdot\ldots\cdot a_{n,\sigma(n)}}. \)

Skojarzenie niedoskonałe (a) i doskonałe (b)

Algebraiczne pojęcie permanentu macierzy okazuje się użytecznym przy badaniu skojarzeń w grafie. Rozważaliśmy już skojarzenia w grafach dwudzielnych.

Skojarzenie w grafie \( \mathbf{G}=( V,E ) \) to taki podzbiór \( M\subseteq E \), że żadne jego dwie krawędzie nie są incydentne z tym samym wierzchołkiem.

Skojarzenie doskonałe to skojarzenie wykorzystujące wszystkie wierzchołki grafu.

Twierdzenie 15.7

Prosty graf dwudzielny \( \mathbf{G}=( V_1\cup V_2,E ) \) ma skojarzenie doskonałe wtedy i tylko wtedy, gdy \( \mathbf{G} \) ma niezerowy permanent.

Dowód

Niech \( \langle a_{ij} \rangle ={\sf A}( \mathbf{G} ) \). Dowód ma dwa etapy. Najpierw pokażemy, że:

1. Permanent grafu \( \mathbf{G} \) jest niezerowy wtedy i tylko wtedy, gdy istnieje permutacja \( \rho_{0} \) liczb \( 1,\ldots,n \) taka, że \( a_{i\rho_{0}( i )}=1 \) dla \( i=1,\ldots,n \).

Istotnie, każdy składnik sumy dającej permanent grafu \( \mathbf{G} \)

\( {\sf per}\ {\sf A}( \mathbf{G} ) = \sum_{\sigma}{a_{1,\sigma(1)}\cdot a_{2,\sigma(2)}\cdot\ldots\cdot a_{n,\sigma(n)}}. \)

jest zawsze nieujemny. A zatem cała suma będzie dodatnia wtedy i tylko wtedy, gdy choć jeden jej składnik będzie niezerowy. To z kolei jest równoważne temu, że dla choć jednej permutacji \( \rho_{0} \) zachodzi

\( a_{i\rho_{0}( i )}=1 \)

dla wszystkich \( i=1,\ldots,n \).

2. Graf \( \mathbf{G} \) ma doskonałe skojarzenie \( M\subseteq E \) wtedy i tylko wtedy, gdy istnieje permutacja \( \rho_{0} \) liczb \( 1,\ldots,n \) taka, że \( a_{i\rho_{0}( i )}=1 \) dla \( i=1,\ldots,n \).

Istotnie, w skojarzeniu doskonałym każdy wierzchołek jest incydentny z dokładnie jedną krawędzią. A zatem skojarzenie \( M \) wyznacza permutację \( \rho_{0} \) poprzez

\( \rho_{0}( i )=j\quad\textrm{wtedy i tylko wtedy, gdy }\quad v_i v_j\in M. \)

Nadto \( a_{i\rho_{0}( i )}=1 \) dla wszystkich \( i=1,\ldots,n \).

Z drugiej strony, jeśli \( ( i_1,\ldots,i_k ) \) jest cyklem permutacji \( \rho_{0} \), tzn.

\( \rho_{0}( i_1 )=i_2,\quad \rho_{0}( i_2 )=i_3,\quad \ldots,\quad \rho_{0}( i_{k-1} )=i_k,\quad \rho_{0}( i_k )=i_1, \)

to założona równość \( a_{i\rho_{0}( i )}=1 \) mówi, że cyklowi temu odpowiada cykl \( v_{i_1}\to v_{i_2}\to \ldots \to v_{i_k}\to v_{i_1} \) w grafie \( \mathbf{G} \). Oczywiście w grafie dwudzielnym cykl taki musi mieć parzystą liczbę wierzchołków, tak więc zbiór krawędzi

\( \lbrace v_{i_1}v_{i_2}, v_{i_3}v_{i_4},\ldots, v_{i_{k-1}}v_{i_k} \rbrace \)

tworzy doskonałe skojarzenie zbioru wierzchołków \( \lbrace v_{i_1}, v_{i_2}, v_{i_3},\ldots v_{i_{k-1}},v_{i_k} \rbrace \). Po zsumowaniu skojarzeń odpowidającym wszystkim cyklom permutacji \( \rho_{0} \) otrzymamy skojarzenie doskonałe w grafie \( \mathbf{G} \).

Skojarzenie doskonałe w grafie \( \mathbf{G}_5 \)

{{przyklad||| Rozważmy graf \( \mathbf{G}_5=( \lbrace v_1,v_2,v_3,v_4,v_5,v_6 \rbrace,E ) \) przedstawiony na rysunku Graf G5.

Macierz sąsiedztwa \( {\sf A}( \mathbf{G}_5 ) \) to

\( {\sf A}( \mathbf{G}_5 )=\left[ \begin{array} {cccccc} 0 & 0 & 0 & 1 & 1 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 1 & 1 \\ 1 & 1 & 1 & 0 & 0 & 0 \\ 1 & 0 & 1 & 0 & 0 & 0 \\ 1 & 1 & 1 & 0 & 0 & 0 \end{array} \right ]. \)

Permanent \( {\sf per}\ \mathbf{G}_5 = 1 \), tak więc istnieje skojarzenie doskonałe \( M \). Jedno z takich skojarzeń, przedstawione na rysunku Skojarzenie doskonałe w grafie G5, odpowiada wyróżnionym elementom macierzy:

\( {\sf A}( \mathbf{G}_5 )=\left[ \begin{array} {cccccc} 0 & 0 & 0 & 1 & \mathbf{\underline{1}} & 0 \\ 0 & 0 & 0 & \mathbf{\underline{1}} & 0 & 0 \\ 0 & 0 & 0 & 1 & 1 & \mathbf{\underline{1}} \\ 1 & \mathbf{\underline{1}} & 1 & 0 & 0 & 0 \\ \mathbf{\underline{1}} & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & \mathbf{\underline{1}} & 0 & 0 & 0 \end{array} \right ]. \)

Przy badaniu kolorowań grafów przydatne okazuje się inne pojęcie algebraiczne.

Wartość własna grafu \( \mathbf{G} \) to wartość własna macierzy sąsiedztwa \( {\sf A}( \mathbf{G} ) \).

Obserwacja 15.8

Macierz sąsiedztwa \( {\sf A}( \mathbf{G} ) \) jest rzeczywista i symetryczna, zatem wszystkie jej wartości własne są rzeczywiste i istnieje baza ortogonalna złożona z jej wektorów własnych.

Dla grafu prostego \( \mathbf{G} \) przyjmujemy oznaczenia:

  • \( \lambda_{max}\!( \mathbf{G} ) \) na maksymalną wartość własną macierzy \( {\sf A}( \mathbf{G} ) \),
  • \( \lambda_{min}\!( \mathbf{G} ) \) na minimalną wartość własną macierzy \( {\sf A}( \mathbf{G} ) \).

Obserwacja 15.9

Wartości własne grafu \( \mathbf{G} \) są, co do wartości bezwzględnej, nie większe niż maksymalny stopień wierzchołków grafu \( \mathbf{G} \), tzn.

\( \vert \lambda_{max}\!( \mathbf{G} ) \vert\leq\Delta( \mathbf{G} ). \)

Dowód

Niech \( \vert \mathbf{G} \vert=n \) oraz \( x=\langle x_1,\ldots,x_n \rangle \) będzie niezerowym wektorem własnym macierzy \( {\sf A}( \mathbf{G} )=\langle a_{ij} \rangle \) o wartości własnej \( \lambda_{max}\!( \mathbf{G} ) \). Bez straty ogólności można założyć, że \( \vert x_k \vert=\max_{i=1,\ldots, n}{\vert x_i \vert}=1 \). Oszacowanie modułu \( k \)-tej współrzędnej wektora \( {\sf A}( \mathbf{G} )\cdot x=\lambda_{max}\!( \mathbf{G} )\cdot x \) daje nierówność:

\( \begin{align*} \vert \lambda_{max}\!( \mathbf{G} ) \vert & =\vert \lambda_{max}\!( \mathbf{G} )x_k \vert \\ & =\vert a_{k1}x_1+\ldots+a_{kn}x_n \vert \\ & \leq & a_{k1}\vert x_1 \vert+\ldots+a_{kn}\vert x_n \vert \\ & \leq a_{k1}+\ldots+a_{kn} \\ & ={\sf deg}\ x_k\ \leq\ \Delta( \mathbf{G} ). \end{align*} \)

Dowód następnych dwu obserwacji pozostawiamy jako ćwicznia 4 i 6.

Obserwacja 15.10

W grafie prostym \( \mathbf{G} \) mamy \( \lambda_{max}\!( \mathbf{G} )=\Delta( \mathbf{G} ) \) wtedy i tylko wtedy, gdy któraś spójna składowa grafu \( \mathbf{G} \) jest grafem regularnym stopnia \( \Delta( \mathbf{G} ) \).

Obserwacja 15.11

W spójnym grafie prostym \( \mathbf{G} \) liczba \( -\Delta( \mathbf{G} ) \) jest wartością własną macierzy \( {\sf A}( \mathbf{G} ) \) wtedy i tylko wtedy, gdy \( \mathbf{G} \) jest regularnym grafem dwudzielnym stopnia \( \Delta( \mathbf{G} ) \).

Twierdzenie 15.12 [wzór Hoffman'a]

W grafie regularnym \( \mathbf{G} \) stopnia \( r \) zachodzi

\( \alpha( \mathbf{G} )\leq\frac{\vert {\sf V}\!(\mathbf{G}) \vert\cdot\lambda_{min}\!( \mathbf{G} )}{\lambda_{min}\!( \mathbf{G} )-r}, \)

gdzie \( \alpha( \mathbf{G} ) \) oznacza największy możliwy rozmiar indukowanej antykliki w grafie \( \mathbf{G} \).

Dowód

Niech \( n=\vert {\sf V}\!(\mathbf{G}) \vert \) oraz

\( U:={\sf A}( \mathbf{G} )-\lambda_{min}\!( \mathbf{G} )\cdot I - ( r-\lambda_{min}\!( \mathbf{G} ) )\cdot n^{-1}\cdot J, \)

gdzie \( I \) jest macierzą diagonalną rozmiaru \( n\times n \), która na przekątnej ma jedynki, a \( J \) jest macierzą rozmiaru \( n\times n \) w całości wypełnioną jedynkami. Ponadto niech wektor \( x=\langle x_i \rangle \) będzie funkcją charakterystyczną najliczniejszego zbioru niezależnego \( X\subseteq{\sf V}\!(\mathbf{G}) \)takiego, że \( \mathbf{G}|_X \) jest antykliką. Oznacza to, że

\( x_i=\left \{ \begin{array} {l} 1, & \textrm{jeśli}\ v_i\in X, \\ 0, & \textrm{w przeciwnym wypadku.} \end{array} \right. \)

Wtedy \( y={\sf A}( \mathbf{G} )\cdot x \) jest funkcją charakterystyczną zbioru sąsiadów wierzchołków w \( X \), czyli

\( y_i=\left \{ \begin{array} {l} 1, & \textrm{jeśli}\ v_i\notin X, \\ 0, & \textrm{w przeciwnym wypadku.} \end{array} \right. \)

To z kolei daje, że

\( x^T\cdot{\sf A}( \mathbf{G} )\cdot x=x^T\cdot y=0 \)

i w konsekwencji

\( x^T\cdot U\cdot x=-\lambda_{min}\!( \mathbf{G} )\cdot\vert x \vert - ( r-\lambda_{min}\!( \mathbf{G} ) )\cdot n^{-1}\cdot\vert x \vert^2. \)

Uzasadnimy teraz, że \( x^T\cdot U\cdot x\geq0 \). Dla \( j=[1,1,\ldots,1]^T \) mamy:

\( U\cdot j \ =\ r\cdot j-\lambda_{min}\!( \mathbf{G} )\cdot j - ( r-\lambda_{min}\!( \mathbf{G} ) )\cdot j\ =\ 0. \)

Z kolej każdy inny wektor własny \( z \) macierzy \( {\sf A}( \mathbf{G} ) \) o wartości własnej \( \lambda \), który jest prostopadły do \( j \) spełnia

\( U\cdot z\ =\ ( \lambda-\lambda_{min}\!( \mathbf{G} ) )\cdot z, \)

przy czym oczywiście \( \lambda-\lambda_{min}\!( \mathbf{G} )\geq0 \). Oznacza to, że wszystkie wartości własne macierzy \( U \) są nieujemne. Niech więc \( u_1,\ldots,u_n \) będzie ortogonalną bazą złożoną z wektorów własnych macierzy \( U \), a \( \lambda_1,\ldots,\lambda_n \) będą odpowiadającymi im wartościami własnymi. Niech ponadto \( x=b_1\cdot u_1+\ldots+b_n\cdot u_n \) będzie rozkładem wektora \( x \) w tej bazie. Wtedy:

\( \begin{align*} x^T\cdot U\cdot x & = x^T\cdot( b_1\cdot\lambda_1\cdot u_1+\ldots+b_n\cdot\lambda_n\cdot u_n ) \\ & = b_1^2\cdot\lambda_1+\ldots+b_n^2\cdot\lambda_n\ \geq\ 0. \end{align*} \)

W konsekwencji

\( 0\leq-\lambda_{min}\!( \mathbf{G} )\cdot\vert x \vert - ( r-\lambda_{min}\!( \mathbf{G} ) )\cdot n^{-1}\cdot\vert x \vert^2. \)

Ponieważ \( \vert x \vert=\alpha( \mathbf{G} ) \) a \( n=\vert {\sf V}\!(\mathbf{G}) \vert \), to ta ostatnia jest innym zapisem dowodzonej nierówności.

Wniosek 15.13

W regularnym grafie \( \mathbf{G} \) zachodzi

\( \chi\!( \mathbf{G} )\geq 1-\frac{\lambda_{max}\!( \mathbf{G} )}{\lambda_{min}\!( \mathbf{G} )}. \)

Dowód

Ponieważ podział zbioru wierzchołków \( {\sf V}\!(\mathbf{G}) \) na rozłączne podzbiory \( V_1,\ldots,V_k \) indukujące antykliki, jest równoważny z kolorowaniem grafu \( \mathbf{G} \) przy użyciu \( k \) kolorów, to

\( \vert {\sf V}\!(\mathbf{G}) \vert \leq \chi\!( \mathbf{G} )\cdot \alpha( \mathbf{G} ). \)

Jeśli teraz \( r \) jest stopniem regularności grafu \( \mathbf{G} \) to Twierdzenie 15.12 daje więc

\( \chi\!( \mathbf{G} )\geq \frac{\lambda_{min}\!( \mathbf{G} )-r}{\lambda_{min}\!( \mathbf{G} )}. \)

Ponieważ graf \( \mathbf{G} \) jest \( r \)-regularny, to na mocy Obserwacji 15.10 mamy \( r=\lambda_{max}\!( \mathbf{G} ) \), co pozwala zakończyć dowód.

Rekurencja

Definicje rekurencyjne


Definicja rekurencyjna (indukcyjna):

  • nieformalnie - taka definicja, która odwołuje się do samej siebie - ale trzeba tu uważać, by odwołanie było do instancji o mniejszej komplikacji,
  • zwykle chodzi o ciąg \( \langle a_0, a_1, a_2, a_3, \ldots \rangle \), - dla którego przepis na element \( a_n \) wykorzystuje jakieś poprzednie elementy: \( a_{n-1}, a_{n-2}, \ldots \) itp.,
  • początkowy element (lub kilka początkowych) muszą być zadane konkretnie - żeby było od czego zacząć,
  • zwykle definicja rekurencyjna odwołuje się do jednego lub kilku poprzednich elementów, ale może też odwoływać się do wszystkich poprzednich.

Przykład

Silnia liczby \( n \) (zapisywana jako \( n! \)) to iloczyn kolejnych liczb naturalnych od \( 1 \) do \( n \), czyli

\( n!=n(n-1)\cdot\ldots\cdot2\cdot1. \)

Przyjmuje się że \( 0!=1 \). Oto wartości silni dla kilku początkowych liczb naturalnych


\( \begin{array} {|c|c|c|c|c|c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & \cdots \\ \hline n! & 1 & 1 & 2 & 6 & 24 & 120 & 720 & 5040 & 40320 & \cdots \\ \hline \end{array} \)

Ciąg \( 0!, 1!, 2!, 3!, 4!,\ldots \) aby mógł być precyzyjnie rozumiany np. przez komputer, powinien być zadany rekurencyjnie jako:

\( \begin{align*} s_0 & = 1 \\ s_{n} & = n \cdot s_{n-1} \quad \mathrm{dla} \quad n\geq 1. \end{align*} \)

Ponieważ pierwszy wyraz jest zadany, to możemy kolejno obliczać:

\( \begin{align*} s_0 & = 1 \\ s_1 & = 1 \cdot s_{0} = 1 \cdot 1 = 1 \\ s_2 & = 2 \cdot s_{1} = 2 \cdot 1 = 2 \\ s_3 & = 3 \cdot s_{2} = 3 \cdot 2 = 6 \\ s_4 & = 4 \cdot s_{3} = 4 \cdot 6 = 24 \\ \ldots \end{align*} \)

Przykład

Jaki ciąg jest zdefiniowany poprzez małą modyfikację w definicji silni?

\( \begin{align*} s_0 & = 0 \\ s_{n} & = n \cdot s_{n-1}\quad \mathrm{dla}\quad n\geq 1 \end{align*} \)

A co definiują następujące określenia:

\( \begin{align*} s_0 & =\frac{1}{2} \\ s_{n} & = n \cdot s_{n-1} \quad \mathrm{dla}\quad n\geq 1 \end{align*} \)

oraz

\( \begin{align*} s_0 & = 1 \\ s_{n} & = n \cdot s_{n-2} \quad \mathrm{dla}\quad n\geq 2. \end{align*} \)

W ostatnim przypadku widać, że ponieważ odwołanie jest dwa wyrazy wstecz, to już wyliczenie pierwszego wyrazu \( s_1 \) staje się niemożliwe.

Ciąg arytmetyczny

Przykład

W ciągu zadanym poprzez równania:

\( \begin{align*} s_0 & = 0 \\ s_{n} & = s_{n-1}+2 \quad \mathrm{dla}\quad n\geq 1 \end{align*} \)

łatwo rozpoznać kolejne liczby parzyste:

\( s_n = 2n. \)

Ogólnie ciąg zadany poprzez ustalenie \( a_0 \) oraz

\( a_n = a_{n-1} + r \)

to tzw. ciąg arytmetyczny.
Jego \( n \)-ty wyraz dany jest wzorem:

\( a_n = a_0 + n\cdot r. \)

Aby to uzasadnić, pokazujemy indukcyjnie, że:

\( a_0 + 0\cdot r = a_0 \quad\textrm{jest rzeczywiście zerowym wyrazem ciągu} \)

oraz

\( a_0 + n\cdot r = (a_0 + (n-1)r) + r = a_{n-1}+r = a_n \)

Ciąg geometryczny

Przykład

W ciągu zadanym poprzez równania:

\( \begin{align*} s_0 & = 1 \\ s_{n} & = 2\cdot s_{n-1} \quad \mathrm{dla}\quad n\geq 1 \end{align*} \)

łatwo rozpoznać kolejne potęgi liczby \( 2 \):


\( s_n = 2^n. \)

Ogólnie ciąg zadany poprzez ustalenie \( a_0 \) oraz zadanie

\( a_n = q\cdot a_{n-1} \)

to tzw. ciąg geometryczny.
Jego \( n \)-ty wyraz dany jest wzorem:

\( a_n = a_0 \cdot q^n. \)

Aby to uzasadnić, pokazujemy indukcyjnie, że:


\( a_0 \cdot q^0 = a_0 \cdot 1 = a_0 \quad \mathrm{jest rzeczywiście zerowym wyrazem ciągu} \)

oraz

\( a_0 \cdot q^n = (a_0 \cdot q^{n-1})\cdot q = a_{n-1}\cdot q = a_n. \)

Wieże Hanoi

U zarania czasu Bóg umieścił 64 złote krążki na jednej z trzech diamentowych iglic tak, że krążki wyżej umieszczone miały mniejsze promienie.

Następnie Bóg polecił grupie mnichów przełożenie tych krążków na trzecią iglicę \( (C) \), ale tak by:

  • w jednym ruchu przenosić tylko jeden krążek,
  • krążek większy nigdy nie może leżeć na krążku mniejszym,
  • można posługiwać się iglicą \( B \).

Mnisi pracują od zarania dziejów dzień i noc ... .Ile czasu im to zajmie?

Wieże Hanoi - analiza

Przykład (E.Lucas, 1883)

By obliczyć ilość potrzebnych do wykonania ruchów, przeanalizujmy najpierw małe przypadki:
Łatwo zauważyć, że dla 1 krążka potrzebny jest jeden ruch: \( A \rightarrow C \)
Podobnie dla dwu krążków możemy postąpić: \( A \rightarrow B, \ \ A \rightarrow C, \ \ B \rightarrow C \)
Przy 3 krążkach postępujemy tak:

  • najpierw przenosimy dwa górne krążki na iglicę \( B \) posługując się iglicą \( C \):

\( A \rightarrow C, \ \ A \rightarrow B, \ \ C \rightarrow B \)

  • przenosimy największy krążek z \( A \) na \( C \):

\( A \rightarrow C \)

  • przenosimy krążki z \( B \) na \( C \) posługując się iglicą \( A \):

\( B \rightarrow A, \ \ B \rightarrow C, \ \ A \rightarrow C \)

co pokazuje, że potrzeba tu 7 ruchów.
Czy już wiesz jak rozwiązać to zadanie w ogólności (dla \( n \) krążków)?
Oznaczmy przez \( H_n \) liczbę ruchów potrzebnych do przeniesienia \( n \) krążków z jednej iglicy na drugą. Wiemy już, że:

\( \begin{align*} H_1 & = 1 \\ H_2 & =3 \\ H_3 & =7 \end{align*} \)

Aby przenieść \( n \) krążków z \( A \) na \( C \) możemy postąpić podobnie jak w przypadku 3 krążków, redukując zadanie do:

  • przenosimy \( n-1 \) górnych krążków na iglicę \( B \) posługując się iglicą \( C \) - potrzeba na to \( H_{n-1} \) ruchów
  • przenosimy największy krążek z \( A \) na \( C \) - to tylko jeden ruch
  • przenosimy \( n-1 \) krążków z \( B \) na \( C \) posługując się iglicą \( A \) - znów potrzeba na to \( H_{n-1} \) ruchów

A zatem

\( H_n = H_{n-1} +1 + H_{n-1} = 2\cdot H_{n-1} +1 \)

Ile wobec tego wynosi \( H_{64} \)?

Mamy więc równanie rekurencyjne

\( \begin{align*} H_1 & = 1 \\ H_{n} & = 2\cdot H_{n-1}+1 \quad \mathrm{dla}\quad n\geq 2 \end{align*} \)

bardzo podobne do ciągu geometrycznego.
Możemy policzyć kilka jego wyrazów:


\( 1, \ \ 3, \ \ 7, \ \ 15, \ \ 31, \ \ 63, \ \ 127, \ldots \)

i rozpoznać w nim ciąg potęg dwójki zmniejszonych o 1.

Ale czy rzeczywiście \( H_n = 2^n -1 \)?

I znów, aby się upewnić, że nasze odgadnięcie było poprawne, sprawdzamy indukcyjnie, że

\( 2 \cdot H_{n-1} + 1= 2 \cdot (2^{n-1}-1) +1 = 2\cdot 2^{n-1} -2 +1 = 2^n -1 = H_n \)

co oznacza, że rzeczywiście ciąg \( 2^n-1 \) spełnia równanie rekurencyjne, którym zadany jest ciąg \( H_n \).
A wiec \( H_{64} =2^{64}-1 \approx 100~000~000~000~000~000~000 \), co przy przenoszeniu jednego krążka na sekundę zajmie ponad \( 3~000~000~000~000 \) lat, a przenosząc te krążki "komputerem" 3GHz potrzeba będzie... i tak ponad tysiąc lat!

Przykład

Znajdź postać zwartą zadanych ciągów rozwijając równanie rekurencyjne:

\( \begin{align*} a_0 & =2, \\ a_{n+1} & =a_n^2. \end{align*} \)

Wskazówka:
Policz kilka pierwszych wyrazów ciągu:

\( a_n = a_{n-1}^2=a_{n-2}^4=a_{n-3}^8= \ldots =a_0^{2^n}=2^{2^n}. \)

Przykład

Jaka jest największa możliwa liczba \( l_n \) obszarów wyznaczonych przez \( n \) prostych na płaszczyźnie?

Sprawdźmy najpierw kilka pierwszych wartości.

  • Gdy nie ma żadnej prostej obszar jest jeden.
  • Jedna prosta tworzy zawsze dwa różne obszary.
  • Kładąc drugą prostą (byle nie równoległą do pierwszej) otrzymujemy \( 4 \) obszary.

W tym momencie możemy pokusić się o zgadywanie i przypuścić, że \( l_n=2^n \). Jednakże

  • Dla trzech prostych jest to \( 7 \).

Zauważmy, że nowa prosta zwiększa ilość obszarów o \( k \) jeśli przecina dokładnie \( k-1 \) z poprzednich prostych i to w nowych punktach przecięć. Z drugiej strony dwie proste mogą się przeciąć w co najwyżej jednym punkcie i przecinają się o ile nie są równolegle. Widzimy zatem, że najwięcej obszarów dostaniemy kładąc kolejne proste w ten sposób aby żadne dwie nie były równoległe i żadne trzy nie przecinały się w jednym punkcie. Otrzymujemy następujące równanie rekurencyjne:

\( \begin{align*} l_0 & =1, \\ l_{n+1} & =l_n+n. \end{align*} \)

Ponownie rozwiążemy równanie rozwijając je:

\( \begin{align*} l_n & =l_{n-1}+n=l_{n-2}+(n-1)+n=l_{n-3}+(n-2)+(n-1)+n=\ldots \\ & =l_0+1+2+\ldots+n=1+\frac{n(n+1)}{2}, \end{align*} \)

gdzie ostatnia równość wynika z - już udowodnionego - wzoru na sumę kolejnych liczb naturalnych.

Liczby Fibonacciego

Liczby Fibonacciego



Spośród ciągów zdefiniowanych rekurencyjnie, jednym z najsłynniejszych jest ciąg Fibonacciego \( {\{ {f_i} \}\ }_{i\in\mathbb{N}} \) zadany przez

\( \begin{align*} f_0 & =0, \\ f_1 & =1, \\ f_{n+2} & =f_n+f_{n+1}. \end{align*} \)

Wszystkie wyrazy ciągu, oprócz pierwszych dwu, są sumą dwu poprzednich elementów. Oto kilka pierwszych wartości ciągu Fibonacciego:

\( \begin{array} {c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c} n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 \\ \hline 0 & 1 & 1 & 2 & 3 & 5 & 8 & 13 & 21 & 34 & 55 & 89 & 144 & 233 & 377 & 610 \\ \end{array} \)

  • Jak odgadnąć wzór na ogólny wyraz ciągu?
  • Jeśli nie można odgadnąć, to jak oszacować szybkość wzrostu tego ciągu?
  • Czy rośnie on wielomianowo czy raczej wykładniczo?

Pierwsze pytanie - póki co - wydaje się dość beznadziejne.

Przykład

Na ile sposobów można ułożyć domina na prostokącie o rozmiarze \( 2 \times n \)?

\( \begin{array} {|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} \hline & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ \hline & & & & & & & & & & & & & & & & & & & & & & & & & & & \\ \hline \end{array} \)

Oznaczmy, tę liczbę przez \( d_n \) w zależności od \( n \).

  • Dla \( n=1 \) jest to możliwe na dokładnie jeden sposób, tzn. \( d_1=1 \)
  • Dla \( n=2 \) są już dwa takie sposoby:

- ustawiamy obie kostki poziomo, lub obie pionowo,
a zatem \( d_2=2 \).

  • Dla \( n=3 \) są trzy sposoby,
  • Pokrywając większy prostokąt \( 2 \times n \) musimy jakoś pokryć dwa skrajne pola przylegające do krótszej krawędzi o długości \( 2 \). Można to zrobić na dwa sposoby:
    • ułożyć jedno domino pionowo - pozostanie prostokąt \( 2 \times (n - 1) \), który można pokryć na \( d_{n-1} \) sposobów,
    • ułożyć dwa domina poziomo - pozostanie prostokąt \( 2 \times (n - 2) \), który można pokryć na \( d_{n-2} \) sposobów.

Czyli łącznie jest \( d_n = d_{n-1}+d_{n-2} \) sposobów pokrycia tablicy \( 2 \times n \).

Rozpoznajemy w tym łatwo ciąg Fibonacci'ego \( d_n = f_{n+1} \) (bo oczywiście pusty prostokąt \( 2 \times 0 \) można pokryć na dokładnie jeden sposób, \( d_0=1 \)).

Obserwacja 2.1

\( f_0+f_1+\ldots+f_n=f_{n+2}-1. \)

Dowód

Polecamy jako ćwiczenie bardzo łatwy dowód powyższej równości przez indukcję. Przedstawimy alternatywny dowód posługujący się intuicją z poprzedniego przykładu. Wiemy zatem, że prostokąt wielkości \( 2\times n \) można pokryć kostkami domina na \( f_{n+1} \) sposobów.

Dla dowodu obserwacji, policzmy na ile sposobów można ułożyć prostokąt wielkości \( 2 \times (n+1) \) w taki sposób aby było tam chociaż jedno domino ustawione poziomo. Policzymy to dwiema różnymi metodami:

  • Jest tylko jedna metoda ułożenia prostokąta \( 2 \times (n+1) \) bez poziomych klocków. A zatem jest \( f_{n+2}-1 \) sposobów ułożenia prostokąta \( 2 \times (n+1) \) z chociaż jednym dominem poziomym.
  • Rozważmy kolejne możliwe miejsca pierwszego poziomego domina (tak naprawdę pary domin) w prostokącie \( 2 \times (n+1) \) od lewej:
    • jeśli na samym początku jest para poziomych domin, to pozostaje prostokąt \( 2\times (n-1) \), który możemy wypełnić dowolnie na \( f_{n} \) sposobów;
    • jeśli na początku jest \( i \) (gdzie \( 0\leq i\leq n \)) pionowych domin, a potem następuje para poziomych, to pozostaje prostokąt \( 2\times (n-i-1) \), który można wypełnić na \( f_{n-i} \) sposobów;
    • para poziomych domin może się pojawić najdalej po \( i=n-1 \) pionowych dominach

To dowodzi, iż jest dokładnie \( f_n+f_{n-1}+\ldots+f_0 \) sposobów ułożenia prostokąta \( (n+1)\times2 \) z chociaż jednym dominem poziomym.

Policzyliśmy na dwa różne sposoby to samo, otrzymując obie strony postulowanej równości. To kończy dowód.

Obserwacja 2.2

\( f_0^2+f_1^2+\ldots+f_n^2=f_n\cdot f_{n+1}. \)

Dowód

Dowód przez indukcję po \( n \):

  • dla \( n=0 \) mamy \( f_0^2=0=f_0\cdot f_1 \),
  • do założonej indukcyjnie równości \( f_0^2+f_1^2+\ldots+f_k^2=f_k\cdot f_{k+1} \) dodajmy obustronnie \( f_{k+1}^2 \) otrzymując

\( f_0^2+f_1^2+\ldots+f_k^2+f_{k+1}^2 = f_k\cdot f_{k+1}+f_{k+1}^2 = f_{k+1}\cdot(f_k+f_{k+1}) = f_{k+1}\cdot f_{k+2}, \)

co kończy dowód kroku indukcyjnego.

Twierdzenie 2.3 [wzór Eulera-Bineta]

\( f_n=\frac{1}{\sqrt{5}} [(\frac{1+\sqrt{5}}{2})^n-(\frac{1-\sqrt{5}}{2})^n]. \)

Dowód

Rozważmy równanie:

\( f^2-f-1=0. \)

Mnożąc je obustronnie przez \( x^n \) otrzymujemy:

\( f^{n+2}=f^{n+1}+f^n. \)

Oznacza to, że jeśli \( x \) jest pierwiastkiem równania \( f^2-f-1=0 \), to ciąg \( f_n = x^n \) spełnia zależność rekurencyjną Fibonacci'ego:

\( f_{n+2} = f_n+f_{n+1}. \)

Tyle, że równanie ma dwa rzeczywiste rozwiązania:


\( x_1 = \frac{1+\sqrt{5}}{2} \ \ \ \ \ \ \ \ \ \ x_2 = \frac{1-\sqrt{5}}{2}. \)

Który więc z ciągów \( x_1^n, x_2^n \) jest ciągiem Fibonacci'ego? Okazuje się, że żaden, bo na przykład ilorazy kolejnych wyrazów ciągu Fibonacci'ego nie są stałe, a takie musiałyby być dla ciągów geometrycznych \( x_1^n, x_2^n \). Co więcej:

  • jeśli ciąg \( a_n \) spełnia zależność \( f^{n+2}=f^{n+1}+f^n \), to dla dowolnej liczby rzeczywistej \( \alpha \) ciąg \( \alpha\cdot a_n \) też spełnia tę zależność,
  • jeśli ciągi \( a_n \) i \( b_n \) spełniają zależność \( f^{n+2}=f^{n+1}+f^n \), to ich suma \( a_n+b_n \) też spełnia tę zależność.

Oznacza to w szczególności, że zbiór \( F \) ciągów spełniających zależność \( f^{n+2}=f^{n+1}+f^n \) jest podprzestrzenią wektorową przestrzeni \( \mathbb{R}^\mathbb{N} \).

Ćwiczenie: Przestrzen \( F \) jest dwuwymiarowa o bazie \( \varphi, 1-\varphi \)

Przypuśćmy na chwilę, że jakaś kombinacja liniowa ciągów \( x_1^n, x_2^n \), tzn.

\( c_1 \cdot x_1^n + c_2 \cdot x_2^n \)

jest poszukiwanym ciągiem Fibonacci'ego. Aby wyznaczyć stałe \( c_1, c_2 \) zauważmy, że muszą one spełniać układ równań:


\( f_0 = c_1 + c_2 \ \ \ \ \ \ \ f_1 = c_1\cdot x_1 + c_2 x_2 \)

co po rozwiązaniu daje:

\( \begin{align*} c_1 & = \frac{f_1 - f_0x_2}{x_1-x_2}= \frac{1}{\frac{1+\sqrt{5}}{2}-\frac{1-\sqrt{5}}{2}} =\frac{1}{\sqrt{5}} \\ c_2 & = \frac{f_1 - f_0x_1}{x_2-x_1}= \frac{1}{\frac{1-\sqrt{5}}{2}-\frac{1+\sqrt{5}}{2}} =-\frac{1}{\sqrt{5}} \end{align*} \)

i ostatecznie dostajemy ciąg:

\( F(n) = \frac{1}{\sqrt{5}}\cdot[(\frac{1+\sqrt{5}}{2})^{n} - (\frac{1-\sqrt{5}}{2})^{n}], \)

jako potencjalnego kandydata na ciąg Fibonacci'ego. W istocie potrzebujemy indukcyjnego dowodu, że \( F(n)=f_n \). Dla wygody oznaczmy \( \varphi=\frac{1+\sqrt{5}}{2} \).

  • Ponieważ liczby Fibonacci'ego są zadane wzorem odwołującym się do dwóch poprzednich elementów sprawdzamy dwie pierwsze wartości:
    • \( F(0)=\frac{1}{\sqrt{5}}\varphi^0-\frac{1}{\sqrt{5}}(1-\varphi)^0=\frac{1}{\sqrt{5}}-\frac{1}{\sqrt{5}}=0=f_0 \),
    • \( F(1)=\frac{1}{\sqrt{5}}\varphi-\frac{1}{\sqrt{5}}(1-\varphi)=\frac{1}{\sqrt{5}}(2\cdot\frac{1+\sqrt{5}}{2}-1)=1=f_1 \),
  • Aby pokazać, że \( F(k+2)=f_{k+2} \) użyjemy pod koniec naszych obliczeń założenia indukcyjnego, że \( F(k+1)=f_{k+1} \) i \( F(k)=f_{k} \), a także tego, że zarówno \( \varphi \) jak i \( 1-varphi \) spełniają zależność \( x^{k+2}=x^{k+1}+x^k \):


\( \begin{align*} F(k+2) & =\frac{1}{\sqrt{5}}\varphi^{k+2}-\frac{1}{\sqrt{5}}(1-\varphi)^{k+2} \\ & =\frac{1}{\sqrt{5}}(\varphi^{k}+\varphi^{k+1})-\frac{1}{\sqrt{5}}((1-\varphi)^{k}+(1-\varphi)^{k+1}) \\ & =\frac{1}{\sqrt{5}}(\varphi^{k}-(1-\varphi)^{k})+\frac{1}{\sqrt{5}}(\varphi^{k+1}-(1-\varphi)^{k+1}) \\ & =F(k)+F(k+1) \\ & =f_k+f_{k+1} \\ & =f_{k+2}. \end{align*} \)

Liczba \( \varphi=\frac{1+\sqrt{5}}{2} \) jest powszechnie znana jako złota liczba. Opisuje ona tak zwane złote proporcje w sztuce. Pojawia się ona również bardzo często przy okazji różnych obiektów kombinatorycznych. Występuje również w kolejnym wniosku, który po raz pierwszy zaobserwował Johannes Kepler.

Wniosek 2.4

\( \lim_{n\rightarrow\infty}\frac{f_{n+1}}{f_n}=\varphi. \)


Dowód

\( \begin{align*} \lim_{n\rightarrow\infty}\frac{f_{n+1}}{f_n} & =\lim_{n\rightarrow\infty}\frac{\frac{1}{\sqrt{5}}(\varphi^{n+1}-(1-\varphi)^{n+1})}{\frac{1}{\sqrt{5}}(\varphi^n-(1-\varphi)^n)} \\ & =\lim_{n\rightarrow\infty}\frac{\frac{1}{\sqrt{5}}\varphi-\frac{1}{\sqrt{5}}(1-\varphi)(\frac{1-\varphi}{\varphi})^n}{\frac{1}{\sqrt{5}}-\frac{1}{\sqrt{5}}(\frac{1-\varphi}{\varphi})^n} \\ & =\varphi, \end{align*} \)

gdzie ostatnia równość wynika z faktu, iż

\( \lim_{n\rightarrow\infty}(\frac{1-\varphi}{\varphi})^n=0, \)

jako że \( \vert\frac{1-\varphi}{\varphi}\vert < 1 \).

Macierze liczb Fibonacci'ego

Rozważając specjalne kwadratowe macierze \( 2\times2 \) liczb Fibonacci'ego postaci

\(\bigg [ \begin{array} {cc} f_{n+2} & f_{n+1} \\ f_{n+1} & f_n \end{array} \bigg ] \)

łatwo zauważamy, że

\(\bigg [ \begin{array}{ll} {cc} f_{n+2} & f_{n+1} \\ f_{n+1} & f_n \end{array} \bigg ] \bigg [ \begin{array} {cc} 1 & 1 \\ 1 & 0 \end{array} \bigg] = \bigg [ \begin{array} {cc} f_{n+3} & f_{n+2} \\ f_{n+2} & f_{n+1} \end{array} \bigg ]. \)

Ponieważ równocześnie:

\( \bigg [ \begin{array} {cc} f_2 & f_1 \\ f_1 & f_0 \end{array} \bigg ] = \bigg [ \begin{array} {cc} 1 & 1 \\ 1 & 0 \end{array} \bigg ], \)

to łatwo indukcyjnie łatwo udowodnić, że


\( \bigg [ \begin{array} {cc} f_{n+1} & f_n \\ f_n & f_{n-1} \end{array} \bigg ] = \bigg [ \begin{array} {cc} 1 & 1 \\ 1 & 0 \end{array} \bigg ]^n. \)

Przyrównując wyznaczniki obu macierzy otrzymujemy tożsamość, którą jako pierwszy opublikował Jean-Dominique Cassini w 1680 roku.

Obserwacja 2.5
\( f_{n+1}f_{n-1}-f_n^2=(-1)^n. \)

Korzystając z kolei z faktu, że \( A^mA^n=A^{m+n} \) dla dowolnej kwadratowej macierzy \( A \), otrzymujemy:

Obserwacja 2.6


\( \begin{align*} f_n^2+f_{n-1}^2 & =f_{2n-1}, \\ f_{n+1}f_m+f_nf_{m-1} & =f_{m+n}. \end{align*} \)

Rozwiązywanie liniowych równań rekurencyjnych - metoda ogólna

Rozumowanie dotyczące ciągu Fibonacci'ego możemy uogólnić. Chwilowo skupimy się jedynie na przypadku, gdy dla rozwiązania równania rekurencyjnego

\( s_n = a\cdot s_{n-1} + b\cdot s_{n-2}, \)
równanie kwadratowe

\( x^2 = ax+b \)

ma dokładnie dwa różne pierwiastki \( x_1, x_2 \). Wtedy bowiem łatwo pokazać, że ciąg

\( s_n = c_1 \cdot x_1^n + c_2 \cdot x_2^n \)

ze stałymi

\( c_1 = \frac{s_1 - s_0x_2}{x_1-x_2} \ \ \ \ \ \ \ \ c_2 = \frac{s_1 - s_0x_1}{x_2-x_1} \)

jest poszukiwanym rozwiązaniem.

Gdy równanie \( x^2 = ax+b \) ma tylko jeden pierwiastek \( x_0 \) (podwójny, gdy \( a^2=4b \)), to wkrótce pokażemy, że rozwiązaniem jest

\( s_n = c_1 \cdot x_0^n + c_2 \cdot n \cdot x_0^n \)

ze stałymi wyznaczonymi, jak poprzednio, poprzez dwa pierwsze wyrazy początkowe:

\( c_1 = s_0 \ \ \ \ \ \ \ \ c_2 = \frac{s_1 - s_0x_0}{x_0}. \)

Drzewa binarne

Drzewa binarne


Poznaliśmy wiele przykładów ciągów liczbowych zadanych równaniami rekurencyjnymi. Teraz poznamy zupełnie inną strukturę zadaną definicją rekurencyjną.

Drzewo binarne to dowolny obiekt powstały zgodnie z regułami:

  • \( \perp \) jest drzewem binarnym,
  • jeśli \( T_0 \) i \( T_1 \) są drzewami binarnymi to \( T_0\wedge T_1 \) też jest drzewem binarnym.

Zbiór wszystkich drzew binarnych oznaczamy przez \( \mathbb{T} \). Wypisując konkretne drzewo binarne używamy nawiasów aby ujednoznacznic kolejność aplikacji reguł z definicji rekurencyjnej.

Wielkość drzewa binarnego jest wyznaczona funkcją

\( \mathbb{T} \ni T \mapsto \vert T\vert \in \mathbb{N} \)

zdefiniowana rekurencyjnie (z uwagi na budowę drzewa) jako:

  • \( \vert\perp\vert=1 \),
  • \( \vert T_0\wedge T_1\vert=\vert T_0\vert+\vert T_1\vert+1 \).

Szerokość drzewa binarnego jest wyznaczona funkcją

\( \mathbb{T} \ni T \mapsto \mbox{\sf h}(T) \in \mathbb{N} \)

zdefiniowana rekurencyjnie (z uwagi na budowę drzewa) jako:

  • \( \mbox{\sf w}(\perp)=1 \),
  • \( \mbox{\sf w}(T_0\wedge T_1)=\mbox{\sf w}(T_0)+\mbox{\sf w}(T_1) \).

Wysokość drzewa binarnego jest wyznaczona funkcją

\( \mathbb{T} \ni T \mapsto \mbox{\sf h}(T) \in \mathbb{N} \)

zdefiniowana rekurencyjnie (z uwagi na budowę drzewa) jako:

  • \( \mbox{\sf h}(\perp)=0 \),
  • \( \mbox{\sf h}(T_0\wedge T_1)=\max(\mbox{\sf h}(T_0),\mbox{\sf h}(T_1) )+1 \).

Przykład

\( \begin{align*}\vert(\perp\wedge(\perp\wedge\perp))\wedge(\perp\wedge\perp)\vert & =\vert\perp\wedge(\perp\wedge\perp)\vert+\vert\perp\wedge\perp\vert+1 \\ & =(\vert\perp\vert+\vert\perp\wedge\perp\vert+1)+(\vert\perp\vert+\vert\perp\vert+1)+1 \\ & =(2+(\vert\perp\vert+\vert\perp\vert+1))+3+1 \\ & =9. \end{align*} \)

\( \begin{align*}\mbox{\sf w}((\perp\wedge(\perp\wedge\perp))\wedge(\perp\wedge\perp)) & =\mbox{\sf w}(\perp\wedge(\perp\wedge\perp))+\mbox{\sf w}(\perp\wedge\perp) \\ & =(\mbox{\sf w}(\perp)+\mbox{\sf w}(\perp\wedge\perp))+(\mbox{\sf w}(\perp)+\mbox{\sf w}(\perp)) \\ & =(\mbox{\sf w}(\perp)+(\mbox{\sf w}(\perp)+\mbox{\sf w}(\perp))+(\mbox{\sf w}(\perp)+\mbox{\sf w}(\perp)) \\ & =5. \end{align*} \)

\( \begin{align*}\mbox{\sf h}((\perp\wedge(\perp\wedge\perp))\wedge(\perp\wedge\perp)) & =\max(\mbox{\sf h}(\perp\wedge(\perp\wedge\perp)),\mbox{\sf h}(\perp\wedge\perp) )+1 \\ & =\max(\max(\mbox{\sf h}(\perp),\mbox{\sf h}(\perp\wedge\perp) )+1,\max(\mbox{\sf h}(\perp),\mbox{\sf h}(\perp) )+1 )+1 \\ & =4. \end{align*} \)

Obserwacja 2.7

Dla \( T=T_0\wedge T_1 \) mamy

  • \( \mbox{\sf h}(T_i) < \mbox{\sf h}(T) \),
  • \( \mbox{\sf w}(T_i) < \mbox{\sf w}(T) \),
  • \( \vert T_i\vert < \vert T\vert \).

Wniosek 2.8
Drzewo \( \perp \) jest jedynym drzewem o wysokości \( 0 \).

Twierdzenie 2.9 [Zasada Indukcji dla drzew binarnych]

Gdy \( S\subseteq\mathbb{T} \) jest zbiorem drzew binarnych spełniającym warunki:

  • \( \perp\in S \),
  • jeśli \( T_0,T_1\in S \) to \( T_0\wedge T_1\in S \),

to \( S=\mathbb{T} \).

Dowód

Dla dowodu niewprost załóżmy, że w \( S \) nie ma wszystkich drzew. Zatem zbiór \( S'=\mathbb{T}-S \) jest niepusty. Tym samym niepusty jest też zbiór \( Z={\{ {\mbox{\sf h}(T) : T \in S'} \}\ } \) Na mocy założenia o \( S \) wiemy, że \( \perp\notin S' \), co wraz z Wnioskiem 2.8 implikuje, że \( 0\notin Z \).

Ponieważ \( Z \) jest niepusty, to na podstawie Zasady Minimum ma element najmniejszy, powiedzmy \( z \). Wiemy już, że \( z>0 \). Niech \( T\in S' \) poświadcza fakt, że \( z\in Z \), tzn. \( \mbox{\sf h}(T)=z>0 \). Ponownie z Wniosku 2.8 dostajemy \( T'\neq\perp \), czyli \( T'=T_0\wedge T_1 \) dla pewnych \( T_1,T_2 \). Z Obserwacji 2.7 mamy \( \mbox{\sf h}(T_0) < \mbox{\sf h}(T)=z \) oraz \( \mbox{\sf h}(T_1) < \mbox{\sf h}(T)=z \). Zatem minimalność \( z \) w \( S_0' \) daje \( \mbox{\sf h}(T_0),\mbox{\sf h}(T_1)\notin Z \), czyli \( T_0,T_1\notin S' \) i w konsekwencji \( T_0,T_1\in S \).

Ale wtedy, z założenia o zbiorze \( S \), dostajemy \( T=T_0\wedge T_1=T\in S \). Sprzeczność.

Zasada Indukcji dla drzew binarnych to przykład na to, że w strukturach zdefiniowanych rekurencyjnie można dowodzić przy pomocy zasady analogicznej do Zasady Indukcji. Poniżej przedstawiamy przykład używający tego narzędzia.

Obserwacja 2.10

Dla dowolnego drzewa binarnego \( T\in\mathbb{T} \) mamy:

  • \( \mbox{\sf h}(T) \le \mbox{\sf w}(T) \le \vert T\vert \),
  • \( \vert T\vert=2\cdot\mbox{\sf w}(T)-1 \).

Dowód

Niech \( S\subseteq\mathbb{T} \) będzie zbiorem drzew binarnych spełniających powyższe własności.

  • \( \mbox{\sf h}(\perp)=0 \le 1 =\mbox{\sf w}(\perp)= \vert\perp\vert \), oraz \( \vert\perp\vert=1=2\mbox{\sf w}(\perp)-1 \), czyli \( \perp\in S \).
  • W kroku indukcyjnym zakładamy, że \( T=T_0\wedge T_1 \) oraz że drzewa \( T_0,T_1 \) mają już opisane w Obserwacji własności. Wtedy


\( \begin{align*}\vert T_0\wedge T_1\vert & =\vert T_0\vert+\vert T_1\vert+1 =(2\mbox{\sf w}(T_0)-1)+(2\mbox{\sf w}(T_1)-1)+1 \\ & =2(\mbox{\sf w}(T_0)+\mbox{\sf w}(T_1))-1 \\ & =2\mbox{\sf w}(T_0\wedge T_1)-1. \end{align*} \)

Podobnie

\( \begin{align*}\mbox{\sf h}(T_0\wedge T_1) & =\max(\mbox{\sf h}(T_0),\mbox{\sf h}(T_1) )+1 \\ & \leq \max(\mbox{\sf w}(T_0),\mbox{\sf w}(T_1) )+1 \\ & \leq \mbox{\sf w}(T_0)+\mbox{\sf w}(T_1) \\ & =\mbox{\sf w}(T_0\wedge T_1), \end{align*} \)

gdzie ostatnia nierówność wynika bezpośrednio z faktu, że szerokość każdego drzewa wynosi co najmniej \( 1 \).

Zliczanie zbiorów i funkcji

Funkcje


Ten fragment wykładu przypomina poznany już wcześniej materiał. Służy jedynie ustaleniu terminologii i notacji.

Funkcja o dziedzinie \( X \) i przeciwdziedzinie \( Y \) to dowolna relacja \( f \subseteq X \times Y \) taka, że:

  • \( \forall x\in X \ \exists y \in Y \ \ \langle x,y \rangle\in f \)
  • \( \forall x\in X \ \forall y_1,y_2\in Y \ \ (\langle x,y_1 \rangle\in f \wedge \langle x,y_2 \rangle\in f) \rightarrow y_1=y_2 \)

Pierwszy warunek mówi, że każdy element dziedziny ma jakąś wartość przypisaną funkcją \( f \). Drugi, że taka wartość jest co najwyżej jedna (dowolne dwie są bowiem równe). W skrócie oba warunki możemy zapisać łącznie jako

\( \forall x\in X \ \exists! y \in Y \ \ \langle x,y \rangle\in f, \)

gdzie kwantyfikator \( \exists! \) oznacza istnieje dokładnie jeden.

  • Ważne jest
    • wykorzystanie wszystkich elementów dziedziny: każdemu elementowi dziedziny ...
    • i jednoznaczność: jest przyporządkowany dokładnie jeden element przeciwdziedziny,
  • nie wyklucza to sytuacji, gdy np. dwóm elementom dziedziny przyporządkowany jest ten sam element przeciwdziedziny,
  • nie każdy element przeciwdziedziny musi być wykorzystany, tzn. mogą istnieć takie elementy przeciwdziedziny, które nie są przyporządkowane żadnemu elementowi dziedziny,
  • dziedzina i przeciwdziedzina mogą być tym samym zbiorem.

Notacja:

  • Piszemy \( f : X \longrightarrow Y \) lub \( X \stackrel{f}{\longrightarrow} Y \) na oznaczenie funkcji o nazwie \( f \), której dziedziną jest zbiór \( X \), a przeciwdziedziną zbiór \( Y \).
    • elementy dziedziny nazywamy argumentami funkcji
    • elementy przeciwdziedziny im przyporządkowane nazywamy wartościami funkcji.
  • Piszemy \( f(x) = y \) lub \( f : x \mapsto y \) na oznaczenie tego, że funkcja \( f \) elementowi \( x \) przyporządkowuje element \( y \)
    • mówimy wtedy, że \( y \) jest wartością funkcji \( f \) na argumencie \( x \).
  • Często podaje się przepis na funkcję, wykorzystując
    • operacje arytmetyczne: \( f(x) = 3x + 7 \)
    • lub inne powszechnie znane funkcje \( g(x) = 2\sin(x)\cos(x) \).
  • W powyższych przykładach dziedziny i przeciwdziedziny można się domyślić (zapewne liczby rzeczywiste), ale dla ścisłości powinno się je podać, np. \( f : \mathbb{R} \longrightarrow \mathbb{R} \).

Przykłady funkcji

Najczęściej będziemy się zajmowali funkcjami, które działają na liczbach (dziedziną i przeciwdziedziną będą zbiory liczbowe, np. \( \mathbb{N}, \mathbb{R} \)), ale można mówić o funkcjach na różnych zbiorach.

  • \( f : \mathbb{N} \ni n \mapsto 2n \in \mathbb{N} \),
    • jest zwartym zapisem, że \( f \) jest funkcją postaci \( f : \mathbb{N} \longrightarrow \mathbb{N} \)
      daną przepisem \( f(n) = 2n \)
    • jako przeciwdziedzinę określiliśmy zbiór liczb naturalnych,
      ale w istocie wartościami tej funkcji są tylko liczby parzyste
  • \( g : \mathbb{N} \longrightarrow \mathbb{R}, \ g(n) = n/2 \),
    • określenie \( g : \mathbb{N} \longrightarrow \mathbb{N} \) nie byłoby tu prawidłowe, gdyż wartość \( n/2 \) nie zawsze jest liczbą naturalną
  • \( h : \mathbb{N} \longrightarrow {\{ {13} \}\ }, \ h(n) = 13 \),
    • to też jest poprawnie określona funkcja, mimo że niezbyt frapująca (tzw. funkcja stała)
  • \( f : \mathbb{N} \longrightarrow \mathbb{N}, \ f(n) = (1 + 3 + 5 + ... + (2n+1))^n \).
    • takie określenie też jest poprawne, choć nie od razu widać, ile to jest
  • \( g : \mathbb{R} \ni x \mapsto \sin\frac{x}{\pi}\in \mathbb{R} \) jest całkiem poprawną funkcją.
  • \( h : \mathbb{R} \ni x \mapsto \sin\frac{\pi}{x}\in \mathbb{R} \),
    • to określenie (mimo, że podobne do poprzedniego) jest błędne:
      nie da się policzyć wartości \( h(0) \);
      należałoby więc napisać np. \( h : \mathbb{R}-{\{ {0} \}\ } \longrightarrow \mathbb{R} \)
  • \( {\{ {0,1} \}\ }^* \ni w \mapsto w1 \in {\{ {0,1} \}\ }^* \),
    • to funkcja określona na słowach nad alfabetem dwuelementowym \( {\{ {0,1} \}\ } \)
    • każdemu słowu przypisuje to słowo rozszerzone na końcu o symbol \( 1 \)
  • \( d: {\{ {0,1} \}\ }^* \longrightarrow \mathbb{N}, \ d(w) = \) długość słowa \( w \)

Wielomian to funkcja:

\( x \mapsto a_nx^n + a_{n-1}x^{n-1} + \ldots + a_2x^2 + a_1 x + a_0 \)
gdzie

  • liczby \( a_n, a_{n-1}, \ldots, a_1,a_0 \) zwane są współczynnikami wielomianu
    • mówimy więc o wielomianach o współczynnikach
      • naturalnych - jeśli \( a_n, a_{n-1}, \ldots, a_1,a_0 \in \mathbb{N} \)
      • całkowitych - jeśli \( a_n, a_{n-1}, \ldots, a_1,a_0 \in \mathbb{Z} \)
      • wymiernych - jeśli \( a_n, a_{n-1}, \ldots, a_1,a_0 \in \mathbb{Q} \)
      • rzeczywistych - jeśli \( a_n, a_{n-1}, \ldots, a_1,a_0 \in \mathbb{R} \)
    • liczba \( n \) zwana jest stopniem wielomianu, ale tylko o ile \( a_n \neq 0 \).

Surjekcje, injekcje i bijekcje

Surjekcja to funkcja \( f : X \longrightarrow Y \) spełniająca warunek

\( \forall y\in Y \ \exists x\in X \ \ f(x) = y \)

  • Intuicyjnie, funkcja jest surjekcją, jeśli jej cała przeciwdziedzina jest wykorzystana, tzn. każdy jej element jest wartością funkcji dla jakiegoś elementu dziedziny,
  • surjekcje często są nazywane funkcjami "na",
  • piszemy też wtedy \( f : X ↠ Y \).

Przykład

Funkcja \( \mathbb{R} \ni x \mapsto x^3 \in \mathbb{R} \) jest surjekcją.
Funkcja \( \mathbb{Q} \ni x \mapsto x^3 \in \mathbb{Q} \) nie jest surjekcją.
Funkcja \( \mathbb{N} \ni x \mapsto 2x \in \mathbb{N} \) nie jest surjekcją.
Funkcja \( \mathbb{Q} \ni x \mapsto 2x \in \mathbb{Q} \) jest surjekcją.
Funkcja \( \mathbb{Z} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) jest surjekcją.
Funkcja \( \mathbb{R} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) jest surjekcją.
Funkcja \( \mathbb{Z} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Q} \) nie jest suriekcją.
Funkcja \( \mathbb{R} \ni x \mapsto \sin{x} \in \mathbb{R} \) nie jest surjekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto w1 \in {\{ {0,1} \}\ }^* \) nie jest suriekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto d(w) \in \mathbb{N} \) jest suriekcją.

Injekcja to funkcja \( f : X \longrightarrow Y \) spełniająca warunek:

\( \forall x_1,x_2 \in X \ \ x_1\neq x_2 \rightarrow f(x_1)\neq f(x_2) \)

  • Intuicyjnie, funkcja jest injekcją, jeśli różnym elementom dziedziny funkcja przyporządkowuje różne elementy przeciwdziedziny,
  • injekcje często są nazywane funkcjami różnowartościowymi,
  • piszemy też wtedy \( f : X \hookrightarrow Y \).

Przykład

Funkcja \( \mathbb{R} \ni x \mapsto x^3 \in \mathbb{R} \) jest injekcją.
Funkcja \( \mathbb{R} \ni x \mapsto x^2 \in \mathbb{R} \) nie jest injekcją.
Funkcja \( \mathbb{Z} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) jest injekcją.
Funkcja \( \mathbb{R} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) nie jest injekcją.
Funkcja \( \mathbb{N} \ni x \mapsto 2x \in \mathbb{N} \) jest injekcją.
Funkcja \( \mathbb{Q} \ni x \mapsto 2x \in \mathbb{Q} \) jest injekcją.
Funkcja \( \mathbb{R} \ni x \mapsto \sin{x} \in \mathbb{R} \) nie jest injekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto w1 \in {\{ {0,1} \}\ }^* \) jest injekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto d(w) \in \mathbb{N} \) nie jest injekcją.

Bijekcja to funkcja, która jest jednocześnie surjekcją i injekcją.

Przykład

Funkcja \( \mathbb{R} \ni x \mapsto x^3 \in \mathbb{R} \) jest bijekcją.
Funkcja \( \mathbb{Q} \ni x \mapsto x^3 \in \mathbb{Q} \) nie jest bijekcją.
Funkcja \( \mathbb{N} \ni x \mapsto 2x \in \mathbb{N} \) nie jest bijekcją.
Funkcja \( \mathbb{Q} \ni x \mapsto 2x \in \mathbb{Q} \) jest bijekcją.
Funkcja \( \mathbb{Z} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) jest bijekcją.
Funkcja \( \mathbb{R} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) nie jest bijekcją.
Funkcja \( \mathbb{Z} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Q} \) nie jest bijekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto w1 \in {\{ {0,1} \}\ }^* \) nie jest bijekcją.
Funkcja \( {\{ {0,1} \}\ }^* \ni w \mapsto d(w) \in \mathbb{N} \) nie jest bijekcją.

Funkcje odwrotne

Traktując funkcję \( f : X \longrightarrow Y \) jako relację \( f \subseteq X \times Y \) (zbiór par), możemy rozważać relację \( f^{-1} \) odwrotną do \( f \).

Kiedy ta relacja jest funkcją?

  • ponieważ \( f^{-1} \) ma spełniać warunek, że każdy element dziedziny \( f^{-1} \) (tzn. zbioru \( Y \)) ma przypisaną jakąś wartość, oznacza to, że sama funkcja \( f \) wyczerpuje wszystkie elementy przeciwdziedziny, a zatem, że \( f \) jest surjekcją,
  • nadto \( f^{-1} \) ma przypisywać dokładnie jeden taki element, czyli że każdy element z \( Y \) jest przypisany poprzez \( f \) jednemu elementowi z \( X, \) a zatem \( f \) musi być injekcją.

A zatem: funkcja posiada funkcję odwrotną, wtedy i tylko wtedy, gdy jest bijekcją.

  • Nieformalnie tworzenie funkcji odwrotnej polega na odwracaniu strzałek.
  • Gdyby \( f \) nie była surjekcją, to przy próbie odwrócenia strzałek niektóre elementy zbioru \( Y \) nie miałyby przyporządkowanego żadnego elementu z \( X \).
  • Gdyby zaś \( f \) nie była injekcją, to przy próbie odwrócenia strzałek niektóre strzałki byłyby "rozdwojone".

Przykład

  • Funkcja \( f : \mathbb{R} \ni x \mapsto 2x \in \mathbb{R} \) jest bijekcją, a zatem posiada funkcję odwrotną. Tę funkcję odwrotną można wyliczyć: skoro \( y = f(x) = 2x \), to \( f^{-1}(y) = x = y/2 \). Zatem \( f^{-1} : \mathbb{R} \ni x \mapsto x/2 \in \mathbb{R} \).
  • Funkcja \( \mathbb{R} \ni x \mapsto \lfloor x\rfloor \in \mathbb{Z} \) nie jest injekcją. Nie posiada więc funkcji odwrotnej.
  • Funkcja \( \mathbb{N} \ni x \mapsto 2x \in \mathbb{N} \) nie jest surjekcją. Nie posiada więc funkcji odwrotnej. Ale rozważając tę funkcję z przeciwdziedziną \( \mathbb{P} \) będącą zbiorem liczb parzystych, tzn. \( \mathbb{N} \ni x \mapsto 2x \in \mathbb{P} \) staje się ona bijekcją i posiada funkcję odwrotną \( \mathbb{P} \ni x \mapsto x/2 \in \mathbb{N} \).
  • Funkcja \( \mathbb{R} \ni x \mapsto x^2 \in \mathbb{R} \) nie jest ani injekcją ani surjekcją. Nie posiada więc funkcji odwrotnej. Surjektywność można by "uratować", rozważając

\( f : \mathbb{R} \ni x \mapsto x^2 \in [0, +\infty). \)

Wciąż jednak brakowałoby injektywności. Ograniczając jednak, tę funkcję do liczb nieujemnych, tzn. traktując ją jako:


\( f|_{[0, +\infty)}: [0, +\infty) \ni x \mapsto x^2 \in [0, +\infty), \)

staje się już bijekcją, więc posiada funkcję odwrotną, którą jest


\( [0, +\infty) \ni x \mapsto \sqrt{x} \in [0, +\infty). \)

Składanie funkcji

Złożenie funkcji \( f : X \longrightarrow Y \) i funkcji \( g : Y \longrightarrow Z \) to funkcja


\( gf: X \longrightarrow Z \)

określona dla wszystkich argumentów \( x \in X \) jako \( (gf)(x) = g(f(x)) \).

  • Nieformalnie - najpierw obliczamy wartość funkcji \( f \) dla elementu \( x \),
    a następnie obliczamy wartość funkcji \( g \) dla wyniku tego obliczenia; czyli "idziemy dalej wzdłuż następnej strzałki"

\( X \longrightarrow Y \longrightarrow Z \)

  • Piszemy \( gf \) (a nie \( fg \)) na oznaczenie złożenia, w którym najpierw obliczana jest wartość funkcji \( f \), a potem funkcji \( g \).
  • W praktyce, przy złożeniu \( gf \), dziedzina funkcji \( g \) nie musi być tym samym zbiorem, co przeciwdziedzina funkcji \( f \) - wystarczy, by była większa.

Przykład

  • Niech \( f : \mathbb{N} \ni n \mapsto n + 2 \in \mathbb{N} \) i \( g : \mathbb{N} \ni n \mapsto 3n \in \mathbb{N} \). Wówczas dla \( gf : \mathbb{N} \longrightarrow \mathbb{N} \) mamy \( (gf)(n) = g(f(n)) = g(n + 2) = 3(n + 2)= 3n+6 \) a dla \( fg : \mathbb{N} \longrightarrow \mathbb{N} \) mamy \( (fg)(n) = f(g(n)) = f(3n) = 3n + 2 \).

Morał: złożenia \( fg \) i \( gf \) to (na ogół) różne funkcje.

  • Niech \( f : \mathbb{R} \ni x \mapsto \sin 3x \in \mathbb{R} \) i \( g : \mathbb{R} \ni x \mapsto (x + \pi)^2 \in\mathbb{R} \). Wówczas złożenie \( fg: \mathbb{R} \longrightarrow \mathbb{R} \) dane jest wzorem

\( (fg)(x) = f(g(x)) = f((x + \pi)^2) = \sin(3(x + \pi)^2). \)

Morał: Nie zawsze da się łatwo wyliczyć przepis na funkcję złożoną.

  • Gdy \( f : X \longrightarrow Y \) jest bijekcją, to istnieje funkcja odwrotna \( f^{-1} : Y \longrightarrow X \). Jeśli złożymy \( f^{-1} f \), to uzyskamy funkcję \( X \longrightarrow X \), która "nic nie robi":

\( (f^{-1} f)(x) = f^{-1}(f(x)) = x. \)

Taka funkcja zwana jest identycznością na zbiorze \( X \) i oznaczana \( id_X \). Podobnie - składając \( f f^{-1} : Y \longrightarrow Y \), otrzymamy identyczność na zbiorze \( Y \).

Widzieliśmy, że nie zawsze \( fg = gf \).

Obserwacja 3.1

Dla funkcji \( X \stackrel{h}{\longrightarrow} Y \stackrel{g}{\longrightarrow} Z \stackrel{f}{\longrightarrow} W \) zachodzi \( f(gh) = (fg)h \). <

Obserwacja 3.2

Nadto dla \( X \stackrel{f}{\longrightarrow} Y \stackrel{g}{\longrightarrow} Z \) mamy:

  • Jeśli \( f, g \) są surjekcjami, to \( gf \) jest surjekcją.
  • Jeśli \( f, g \) są injekcjami, to \( gf \) jest injekcją.
  • Jeśli \( f, g \) są bijekcjami, to \( gf \) jest bijekcją.
  • Pierwsza i trzecia z powyższych własności nie zachodzą, jeśli dziedzina funkcji \( g \) jest większa niż przeciwdziedzina funkcji \( f \).

Przykład

Zbadaj czy dla funkcji \( X \stackrel{f}{\longrightarrow} Y \stackrel{g}{\longrightarrow} Z \) zachodzi:

  • jeśli \( gf \) jest surjekcją, to \( f \) jest surjekcją
  • jeśli \( gf \) jest surjekcją, to \( g \) jest surjekcją
  • jeśli \( gf \) jest injekcją, to \( f \) jest injekcją
  • jeśli \( gf \) jest injekcją, to \( g \) jest injekcją

Funkcje wielu zmiennych

  • Funkcja dwóch zmiennych to funkcja, której dziedziną jest zbiór par (zamiast pojedynczych elementów).
  • Piszemy np. \( f : X \times Y \longrightarrow Z \).
  • Zatem funkcja taka każdej parze \( (x,y)\in X \times Y \) przyporządkowuje dokładnie jeden element \( f(x,y) \in Z \).
  • Podobnie można zdefiniować funkcje trzech i więcej zmiennych.

Przykład

Przykładem funkcji dwóch zmiennych są działania arytmetyczne:

  • \( \mathbb{R} \times \mathbb{R} \ni (x,y) \mapsto x+y \in \mathbb{R} \)
  • \( \mathbb{R} \times \mathbb{R} \ni (x,y) \mapsto x-y \in \mathbb{R} \)
  • \( \mathbb{R} \times \mathbb{R} \ni (x,y) \mapsto xy \in \mathbb{R} \)
  • \( \mathbb{R} \times \mathbb{R}-{\{ {0} \}\ } \ni (x,y) \mapsto \frac{x}{y} \in \mathbb{R} \)
  • \( \mathbb{N} \times \mathbb{N} \ni (x,y) \mapsto x^y \in \mathbb{N} \)

a także konkatenacja (sklejenie) słów

  • \( X^* \times X^* \ni (v,w) \mapsto vw \in X^* \), gdzie \( vw \) oznacza słowo (krotkę) powstałe z doklejenia słowa \( w \) na końcu słowa \( v \).

Zliczanie zbiorów

Zliczanie zbiorów


Gdy chcemy policzyć liczbę samochodów na parkingu zazwyczaj wskazujemy na kolejne samochody odliczając: jeden, dwa, trzy, itd., aż do momentu gdy każdy samochód zostanie wskazany. Wtedy ostatnia liczba, którą wypowiedzieliśmy jest uważana za liczbę samochodów na parkingu.

Aby wprowadzić matematyczny model procedury zliczania definiujemy początkowe odcinki liczb naturalnych:

\( \begin{align*} \mathbb{Z}_0 & =\emptyset, \\ \mathbb{Z}_1 & ={\{ {0} \}\ }, \\ \mathbb{Z}_2 & ={\{ {0,1} \}\ }, \\ & \vdots \\ \mathbb{Z}_k & ={\{ {0,\ldots,k-1} \}\ }. \end{align*} \)

Załóżmy, że na parkingu stoi \( n \) samochodów. Zliczając je wybieramy elementy \( \mathbb{Z}_n \) (zazwyczaj kolejne liczby) i przypisujemy je do samochodów na parkingu. Uwaga: wybierając liczby z \( \mathbb{Z}_n \) zaczynamy od \( 0 \) i kończymy na \( n-1 \) (na ogół nie-informatycy zliczają od \( 1 \) do \( n \)). Określamy zatem w trakcie tego zliczania bijekcję \( f:\mathbb{Z}_n \rightarrow S \), gdzie \( S \) jest zbiorem samochodów na parkingu. W istocie jest to bijekcja, bo dwa różne samochody mają różne numery (injektywność) i każdy samochód jest policzony (surjektywność).

Obserwacja 3.3

Gdy \( m < n \), to nie istnieje injekcja z \( \mathbb{Z}_n \) w \( \mathbb{Z}_m \).

Dowód

Niech \( S \) będzie zbiorem liczb naturalnych \( n \) takich, że istnieje injekcja postaci \( f:\mathbb{Z}_m \rightarrow \mathbb{Z}_n \), przy pewnym \( m < n \). Oczywiście \( 0\notin S \), bo nie istnieje liczba naturalna \( m \) taka, że \( 0\leq m < 0 \). Także \( 1\notin S \), bo nie istnieje funkcja z niepustego zbioru \( \mathbb{Z}_1 \) w pusty \( \mathbb{Z}_0 \). Dla dowodu niewprost załóżmy, że \( S \) jest niepusty. Wtedy, z Zasady Minimum, \( S \) ma element najmniejszy, powiedzmy math>n_0>1</math>. Istnieje zatem \( m < n_0 \) i injekcja \( f:\mathbb{Z}_{n_0} \rightarrow \mathbb{Z}_m \). Analogicznie jak wcześniej \( m\neq 0 \) oraz \( m\neq 1 \), bo inaczej wszystkie elementy \( N_{n_0} \) musiałyby mieć tę samą wartość, co stoi w sprzeczności z injektywnością \( f \). Zatem \( m-1 \) jest dodatnią liczbą naturalną.

Jeśli \( m-1\notin f({\{ {0,\ldots,n_0-2} \}\ }) \), to restrykcja \( f|_{\mathbb{Z}_{n_0-1}} \) jest injekcją z \( \mathbb{Z}_{n_0-1} \) w \( \mathbb{Z}_{m-1} \), czyli \( n_0-1\in S \) co stoi w sprzeczności z minimalnością \( n_0 \) w \( S \).

Jeśli \( m-1\in f({\{ {0,\ldots,n_0-2} \}\ }) \), to niech \( a \) i \( b \) będą takimi liczbami, że \( f(a)=m-1 \) i \( f(n_0-1)=b \).

Wtedy funkcja \( g:\ N_{n_0-1} \rightarrow \mathbb{Z}_{m-1} \) zadana przez

\( g(x)= \{ \begin{array} {cl} f(x), & \textrm{dla} \quad x\neq a \\ b, & \textrm{dla} \quad x=a \end{array} . \)

jest injekcją, bo dla \( x_1,x_2\in\mathbb{Z}_{n_0-1}-{\{ {a} \}\ } \) zachodzi \( g(x_1)=g(x_2) \rightarrow x_1=x_2 \) i dodatkowo \( b\notin g(\mathbb{Z}_{n_0}-{\{ {a} \}\ })=f(\mathbb{Z}_{n_0}-{\{ {a} \}\ }) \). Zatem znów \( n_0-1\in S \), co stoi w sprzeczności z minimalnością \( n_0 \) w \( S \).

Wniosek 3.4

Jeśli istnieje bijekcja ze zbioru \( \mathbb{Z}_m \) na \( \mathbb{Z}_n \), to \( m=n \).

Zbiór skończony to zbiór bijektywny z pewnym zbiorem postaci \( \mathbb{Z}_n \).

Zbiór nieskończony to zbiór, który nie jest skończony.

Jeśli \( X \) jest zbiorem skończonym, to Wniosek 3.4 gwarantuje nam, że \( X \) jest bijektywny z dokładnie jednym zbiorem postaci \( \mathbb{Z}_n \). Rozważając skończony zbiór \( n \)-elementowy \( X \), często używamy notacji \( X={\{ {x_0,x_1,\ldots,x_{n-1}} \}\ } \) ukrywającej w sobie bijekcję postaci \( \mathbb{Z}_n \longrightarrow X \).

Liczba elementów skończonego zbioru \( X \), to jedyna liczba naturalna \( n \) taka, że istnieje bijekcja z \( \mathbb{Z}_n \) w \( X \). Liczbę te oznaczamy
przez \( \vert X\vert \).

Przykład

Oczywiście \( \vert\mathbb{Z}_n\vert = n \). W szczególności zbiór pusty ma, zgodnie z intuicją, liczbę elementów równą \( 0 \).

Przykład

Zbiór liczb parzystych \( \mathbb{P} \) jest nieskończony.

Dla dowodu niewprost załóżmy, że \( \vert\mathbb{P}\vert=k \), tzn. \( \mathbb{P} = {\{ {p_0,\ldots,p_{k-1}} \}\ } \). Oczywiście \( \mathbb{P} \neq \emptyset \), bo \( 0\in \mathbb{P} \). Nadto suma wszystkich \( p_i \) jest ograniczeniem zbioru \( \mathbb{P} \), a więc, z Zasady Maksimum, \( \mathbb{P} \) posiada element największy, powiedzmy \( p_0 \). Ponieważ \( p_0 \) jest największą liczbą parzystą, \( p_0+2\notin \mathbb{P} \), co oczywiście daje sprzeczność.

Obserwacja 3.5

Zbiór \( X \) jest nieskończony wtedy i tylko wtedy, gdy istnieje injekcja z \( \mathbb{N} \) w \( X \).

Dowód

Załóżmy, że \( X \) jest nieskończony i zdefiniujmy indukcyjnie funkcję \( f:\mathbb{N}\longrightarrow X \), kładąc:

  1. niech \( f(0) \) będzie dowolnym, wybranym elementem \( X \),
  2. gdy \( f(0),\ldots,f(n) \) są już określone, wtedy niech \( f(n+1) \) będzie dowolnie wybranym elementem z \( X-{\{ {f(0),\ldots,f(n)} \}\ } \).

To, że wyboru opisanego w punkcie drugim możemy zawsze dokonać, wynika wprost z nieskończoności zbioru \( X \). Istotnie, gdyby zbiór \( X-{\{ {f(0),\ldots,f(n)} \}\ } \) był pusty, to \( f \) byłoby bijekcją \( \mathbb{Z}_{n+1} \longrightarrow X \) świadczącą o tym, że \( X \) jest skończony. Oczywiście, tak zdefiniowana funkcja \( f : \mathbb{N} \longrightarrow X \) jest injekcją.

Dla dowodu implikacji odwrotnej załóżmy, że istnieje injekcja \( f:\mathbb{N}\longrightarrow X \) oraz że \( X \) jest skończony tzn. że istnieje bijekcja \( g:\mathbb{Z}_n\longrightarrow X \) dla pewnego \( n \). Zauważmy, że restrykcja \( f|_{\mathbb{Z}_{n+1}} \) jest również injekcją. A zatem złożenie \( g^{-1} f|_{\mathbb{Z}_{n+1}} \) jest injekcją z \( \mathbb{Z}_{n+1} \) w \( \mathbb{Z}_n \), co stoi w sprzeczności z Obserwacją 3.3.

Zbiór przeliczalny to zbiór skończony lub bijektywny z \( \mathbb{N} \).

Przykład

  • zbiór pusty jest przeliczalny, bo jest skończony,
  • zbiór liczb parzystych jest przeliczalny, bo \( f(x)=2x \) jest bijekcją \( \mathbb{N}\longrightarrow\mathbb{P} \)
  • zbiór liczb całkowitych jest przeliczalny, bo

\( f(x)= \{ \begin{array} {cl} \frac{x}{2}, & \textrm{dla parzystych } x, \\ \frac{-1-x}{2}, & \textrm{dla nieparzystych } x, \end{array} . \)

jest bijekcją z \( \mathbb{N} \) w \( \mathbb{Z} \).

Zasada Szufladkowa

Wróćmy jeszcze do Obserwacji 3.3 - formalnej podstawy zliczania skończonych zbiorów. Ma ona także bardziej praktyczną interpretację. Jest to formalne ujęcie faktu powszechnie znanego jako Zasada Szufladkowa Dirichleta (wierzy się, że jako pierwszy opisał ja Dirichlet w 1834).

Wniosek 3.6 [Zasada Szufladkowa Dirichleta]

Jeśli \( n \) obiektów jest rozmieszczonych w \( m \) szufladach i \( n>m \), to istnieje szuflada z przynajmniej dwoma obiektami.

Dowód

Zbiór obiektów jest bijektywny ze zbiorem \( \mathbb{Z}_n \), zaś zbiór szuflad z \( \mathbb{Z}_m \). Rozmieszczenie obiektów w szufladach to określenie funkcji z \( \mathbb{Z}_n \) w \( \mathbb{Z}_m \). Ponieważ \( n>m \) to Obserwacja 3.3 mówi nam, ze funkcja ta nie jest injekcją, a zatem lokuje co najmniej dwa obiekty w tej samej szufladzie.

Przykład

Proste przykłady:

  • Wśród mieszkańców Krakowa co najmniej dwie osoby mają tę samą liczbę włosów na głowie.

Dowód

Rzeczywiście, liczba włosów na głowie człowieka nie przekracza \( 500 000 \), natomiast liczba mieszkańców Krakowa przekracza \( 800 000 \). Weźmy \( 500 000 \) szufladek ponumerowanych kolejnymi liczbami naturalnymi od \( 0 \) do \( 499 999 \) i wkładajmy do szufladki o danym numerze osoby, które mają taką liczbę włosów na głowie, jak numer szufladki. Ponieważ osób jest \( 800 000 \), a szufladek \( 500 000 \), z Zasady Szufladkowej wynika, że w jednej szufladce muszą znaleźć się co najmniej dwie osoby.

  • W grupie \( 13 \) osób muszą być co najmniej dwie, które urodziły się w tym samym miesiącu.

Dowód

Weźmy \( 12 \) szufladek z nazwami miesięcy i wkładajmy do nich osoby, które urodziły się w danym miesiącu. Ponieważ osób jest \( 13 \), a szufladek \( 12 \), w jednej z nich muszą być co najmniej dwie osoby.

Czasem, umiejętnie dobierając "pudełka" można pokazać bardziej zaskakujące fakty...

Przykład

Pewna grupa osób wita się podając sobie ręce. Nikt nie wita się z samym sobą i żadna para osób nie wita się podwójnie. Czy muszą być dwie osoby, które witały taką samą liczbę osób?

  • Gdy jest \( n \) osób, to każda z nich przywita \( 0 \) lub \( 1 \) lub \( 2 \) lub ... \( n-1 \) osób.
  • Utwórzmy więc \( n \) szuflad z etykietami \( k=0,1,2,\ldots, n-1 \) i umieśćmy osobę w szufladzie o etykiecie \( k \), jeśli witała się z dokładnie \( k \) osobami.
  • Skoro jest \( n \) osób i \( n \) szuflad, to ...
    niewiele z tego wynika  :-(
  • Ale... niewiele wynika tylko jeśli wszystkie szuflady będą zajęte, a tak jest w przypadku, gdy również dwa konkretne pudełka o etykietach \( 0 \) i \( n-1 \) są zajęte. Tyle, że nie jest to możliwe - nie może być osoby, która przywitała wszystkie pozostałe i równocześnie takiej, która nie przywitała nikogo.
  • A zatem \( n \) osób zajęło co najwyżej \( n-1 \) szuflad, więc w jednej z nich są co najmniej dwie osoby - takie, które przywitały tę samą liczbę osób.

Przykład

Wybierając \( n+1 \) liczb spośród \( 1,2,3,\ldots, 2n \), wśród wybranych liczb zawsze znajdziemy dwie, z których jedna dzieli drugą.

Istotnie:

  • Określmy relacje \( xRy \) na liczbach naturalnych, tak by:

\( xRy \ \ \Leftrightarrow \) iloraz \( \frac{x}{y} \) jest potęgą (być może ujemną) liczby \( 2 \).

Oznacza to, że \( xRy \) jeśli liczby \( x, y \) mają ten sam największy czynnik nieparzysty.

  • Szufladami niech będą klasy równoważności relacji \( R \).
  • Ile jest klas-szuflad dla liczb ze zbioru \( {\{ {1,2,3,\ldots, 2n} \}\ } \)? Co najwyżej \( n \), gdyż tyle może być liczb nieparzystych w zbiorze \( {\{ {1, 2, ..., 2n} \}\ } \).
  • Skoro wybrano \( n + 1 \), to rozkładając je do naszych szuflad jakieś dwie, powiedzmy \( a,b \) muszą trafić do wspólnej szuflady.

Oznacza to, że któryś z ilorazów \( \frac{a}{b}, \frac{b}{a} \) jest dodatnią potęgą dwójki, a zatem \( a \) dzieli \( b \) lub \( b \) dzieli \( a \).

Przykład

Wybierzmy dowolnie \( 10 \) różnych liczb naturalnych \( a_1,a_2,\ldots,a_{10} \) spośród \( 1,2,3,\ldots,100 \). Pokażemy, że w zbiorze \( {\{ {a_1,a_2,\ldots,a_{10}} \}\ } \) można wybrać dwa rozłączne podzbiory, dające tę samą sumę.

Istotnie:

  • Szuflady poetykietujmy liczbami reprezentującymi możliwe sumy liczb w co najwyżej 10-cio elementowych podzbiorach zbioru \( {\{ {1,2,3,\ldots,100} \}\ } \). Ponieważ największa możliwa taka suma to \( 91+92+93+\cdots+99+100 = 955 \), to mamy \( 955 \) szuflad z etykietami: \( 0,1,2,3,\ldots, 955 \)
  • z drugiej strony \( 10 \)-cio elementowy zbiór \( {\{ {a_1,a_2,\ldots,a_{10}} \}\ } \) ma \( 2^{10}=1024 \) podzbiory, więc muszą być dwa podzbiory zbioru \( {\{ {a_1,a_2,\ldots,a_{10}} \}\ } \) o tej samej sumie.
  • Te dwa podzbiory nie muszą być rozłączne. Ale jeśli z obu z nich usuniemy wspólne liczby, to pozostałe dalej będą dawać takie same sumy, a powstałe zbiory będą już rozłączne.

Zasady zliczania

Zasady zliczania


Bardzo często w tym kursie będziemy stać przed problemem zliczenia pewnego skończonego zbioru obiektów. Skrajnie niewygodne i nieefektywne byłoby, gdybyśmy za każdym razem konstruowali bijekcję z \( \mathbb{Z}_n \) w nasz zbiór dla pewnego naturalnego \( n \). Na szczęście istnieje wiele reguł pozwalających szybciej zliczać obiekty kombinatoryczne. Poniżej przedstawiamy te podstawowe. Pierwsza z nich jest bardzo prosta i w sposób intuicyjny stosowana od początków cywilizacji.

Zasada dodawania

Dla skończonych i rozłącznych zbiorów \( A \) i \( B \) mamy:


\( \vert A\cup B\vert=\vert A\vert+\vert B\vert. \)


Dowód

Niech liczności zbiorów \( \vert A\vert=m \), \( \vert B\vert=n \) będą poświadczone bijekcjami \( f:\mathbb{Z}_m \rightarrow A \) i \( g:\mathbb{Z}_n \rightarrow B \). Wtedy funkcja \( h:\mathbb{Z}_{m+n} \rightarrow A\cup B \) zadana przez:

\( h(x)= \left\{ \begin{array} {ll} f(x), & \textrm{dla }x\in{\{ {0,\ldots,m-1} \}\ } \\ g(x-m), & \textrm{dla } x\in{\{ {m,\ldots,m+n-1} \}\ } \end{array} \right. \)

jest bijekcją. Istotnie, skoro zbiory \( A \) i \( B \) są rozłączne, to dla dowolnych \( x_1\in{\{ {0,\ldots,m-1} \}\ } \), \( x_2\in{\{ {m,\ldots,m+n-1} \}\ } \) zachodzi \( h(x_1)\neq h(x_2) \). Ponadto restrykcje \( h \) do zbiorów zbiorów \( {\{ {0,\ldots,m-1} \}\ } \) i \( {\{ {m,\ldots,m+n-1} \}\ } \) są injekcjami. A zatem \( h \) jest injekcją.

Dla dowodu surjektywności \( h \) weźmy dowolny element \( y\in A\cup B \). Załóżmy, że \( y\in A \) (w drugim przypadku dowód przebiega analogicznie). Wtedy z surjektywności \( f \) wiemy, że istnieje \( x\in\mathbb{Z}_m \) takie, że \( f(x)=y \). Ale \( h(x)=f(x)=y \). Zatem \( h \) jest surjekcją.

Łatwy dowód indukcyjny pozwala uogólnić zasadę dodawania na dowolnie wiele skończonych zbiorów.

Wniosek 3.7

Dla zbiorów \( A_1,\ldots,A_n \) skończonych i parami rozłącznych:

\( \vert A_1\cup\ldots\cup A_n\vert=\vert A_1\vert+\ldots+\vert A_n\vert. \)

Więcej pracy wymaga analiza sytuacji, gdy zbiory \( A,B \) nie są rozłączne.

Zasada włączania i wyłączania

Dla zbiorów skończonych \( {\{ {A_1,A_2,\ldots,A_n} \}\ } \) zachodzi

\( \begin{align*} & & \vert A_1\cup A_2\cup\ldots\cup A_n\vert\ =\ \sum_{I\subseteq{\{ {1,\ldots,n} \}\ }}(-1)^{\vert I\vert+1}\vert\bigcap_{i\in I}A_i\vert \\ & & \begin{array} {lr} = \vert A_1\vert+\vert A_2\vert+\vert A_3\vert+\ldots & +\vert A_{n-2}\vert+\vert A_{n-1}\vert+\vert A_n\vert \\ -\vert A_1\cap A_2\vert-\vert A_1\cap A_3\vert-\ldots & -\vert A_{n-2}\cap A_n\vert-\vert A_{n-1}\cap A_n\vert \\ +\vert A_1\cap A_2 \cap A_3\vert+\ldots & +\vert A_{n-2}\cap A_{n-1} \cap A_n\vert \\ -\vert A_1\cap A_2 \cap A_3\cap A_4\vert-\ldots & -\vert A_{n-3}\cap A_{n-2}\cap A_{n-1} \cap A_n\vert \\ +\ldots & \\ (-1)^{n+1}\vert A_1\cap A_2\cap\ldots\cap A_n\vert & \end{array} \end{align*} \)

W szczególności, \( \vert A\cup B\vert=\vert A\vert+\vert B\vert-\vert A\cap B\vert \), o ile tylko \( A,B \) są skończone.

Dowód

Zaczniemy od dowodu drugiego zdania. Ponieważ trzy zbiory \( A - B, A\cap B \) i \( B- A \) są parami rozłączne i sumują się do \( (A - B) \cup (A\cap B) \cup (B- A) = A \cup B \), na mocy Wniosku 3.7 mamy:

\( |A \cup B| = |(A - B) \cup (A\cap B) \cup (B- A)| = |A - B| + |A\cap B| + |B- A| \)

skąd

\( \begin{align*} |A \cup B| + |A \cap B| & =|A - B| + |A\cap B| + |B- A| + |A\cap B| \\ & =(|A - B| + |A\cap B|) + (|B- A| + |A\cap B|) \\ & =|(A - B) \cup (A\cap B)| + |(B- A) \cup (A\cap B)| \\ & =|A| + |B| \end{align*} \)

skąd już natychmiast dostajemy:


\( \vert A\cup B\vert=\vert A\vert+\vert B\vert-\vert A\cap B\vert. \)      (1)


W sytuacji dowolnie wielu \( n \) zbiorów użyjemy rozumowania indukcyjnego. Oczywiście \( n=1,2 \) twierdzenie jest prawdziwe. Załóżmy, że \( n>2 \). Na mocy równości (1) otrzymujemy:

\( \begin{align*} \vert\bigcup_{k=1}^nA_k\vert\ =\ \vert\bigcup_{k=1}^{n-1}A_k\vert+\vert A_n\vert-\vert\bigcup_{k=1}^{n-1}A_k\cap A_n\vert. \end{align*} \)

Wykorzystując założenie indukcyjne dla wartości \( n-1 \) zachodzi

\( \begin{align*} \vert\bigcup_{k=1}^nA_k\vert & =\sum_{I\subseteq{\{ {1,\ldots,n-1} \}\ }}(-1)^{\vert I\vert+1}\vert\bigcap_{i\in I}A_i\vert+\vert A_n\vert-\sum_{I\subseteq{\{ {1,\ldots,n-1} \}\ }}(-1)^{\vert I\vert+1}\vert\bigcap_{i\in I}A_i\cap A_n\vert \\ & =\sum_{I\subseteq{\{ {1,\ldots,n-1} \}\ }}(-1)^{\vert I\vert+1}\vert\bigcap_{i\in I}A_i\vert+\sum_{I\subseteq{\{ {1,\ldots,n-1} \}\ }}(-1)^{\vert I\cup{\{ {n} \}\ }\vert+1}\vert\bigcap_{i\in I\cup{\{ {n} \}\ }}A_i\vert. \end{align*} \)

Rodzina wszystkich podzbiorów \( I \) zbioru liczb \( {\{ {1,\ldots,n} \}\ } \) można podzielić na dwie rozłączne rodziny:

  • pierwsza składa się z tych \( I \), które nie zawierają \( n \), czyli \( {\{ {I:I\subseteq{\{ {1,\ldots,n-1} \}\ }} \}\ }, \)
  • druga jest rodziną tych \( I \), które zawierają \( n \), czyli \( {\{ {I\cup{\{ {n} \}\ }:I\subseteq{\{ {1,\ldots,n-1} \}\ }} \}\ } \).

W rezultacie otrzymujemy, że

\( \begin{align*}\vert\bigcup_{k=1}^nA_k\vert\ =\ \sum_{I\subseteq{\{ {1,\ldots,n} \}\ }}(-1)^{\vert I\vert+1}\vert\bigcap_{i\in I}A_i\vert,\end{align*} \)

co kończy dowód.

Wniosek 3.7 pozwala uogólnić Zasadę Szufladkową. Załóżmy, że pewna ilość obiektów jest rozmieszczona w \( n \) szufladach. Niech \( A_i \) będzie zbiorem obiektów w \( i \)-tej szufladce. Ponieważ zbiory obiektów w różnych szufladach są rozłączne, to ilość obiektów we wszystkich szufladach wynosi \( \vert A_1\cup\ldots\cup A_n\vert=\vert A_1\vert\cup\ldots\cup\vert A_n\vert \). Zatem jeśli każda szufladka ma co najwyżej \( r \) obiektów, to w sumie jest co najwyżej \( nr \) obiektów.

Uogólniona Zasada Szufladkowa

Jeśli \( m \) obiektów rozmieszczonych jest w \( n \) szufladach i \( m>nr \), dla pewnego naturalnego \( r \), to istnieje szufladka z co najmniej \( r+1 \) obiektami.

Przypomnijmy, że iloczyn kartezjański (produkt) zbiorów \( X \) i \( Y \) to zbiór

\( X\times Y={\{ {(x,y): x\in X, y\in Y} \}\ }. \)

Zasada Mnożenia

Dla skończonych zbiorów \( X,Y \):

\( \vert X\times Y\vert=\vert X\vert\cdot\vert Y\vert. \)

Dowód

Najpierw pokażemy, że \( \vert\mathbb{Z}_m\times\mathbb{Z}_n\vert=m \cdot n \). W tym celu pokażemy, że funkcja

\( f:\mathbb{Z}_m\times\mathbb{Z}_n \ni (i,j) \mapsto in+j \in \mathbb{Z}_{mn} \)
jest bijekcją.

Dla dowodu injektywności załóżmy, że \( f(i,j)=f(i',j') \), czyli \( in+j=i'n+j' \). Bez straty ogólności możemy założyć, że \( i\leq i' \), wtedy \( (i'-i)n=j-j' \). Lewa strona równości jest wielokrotnością \( n \), zaś prawa leży w zbiorze \( {\{ {-n+1,\ldots,n-1} \}\ } \), gdyż \( j,j'\in\mathbb{Z}_n \). Ponieważ \( 0 \) jest jedyną wielokrotnością liczby \( n \) w tym zbiorze, to \( i'-i=0 \) i \( j-j'=0 \), co dowodzi injektywności \( f \).

Dla dowodu surjektywności rozważmy \( y\in\mathbb{Z}_{mn} \). Niech \( i \) będzie największą liczbą taką, że \( in\leq y \). Wtedy \( y < (i+1)n \) zatem istnieje \( j\in{\{ {0,\ldots,n-1} \}\ } \) takie, że \( y=in+j=f(i,j) \), co było do udowodnienia.

Załóżmy teraz, że \( \vert X\vert=m \) i \( \vert Y\vert=n \). Wtedy, z poczynionej wyżej obserwacji, dowód Zasady Mnożenia jest natychmiastowy, gdyż

\( \vert X\times Y\vert=\vert\mathbb{Z}_m\times \mathbb{Z}_n\vert=m\cdot n=\vert X\vert\cdot\vert Y\vert. \)

Przykład

Rozważ turniej rycerski między bractwem czerwonych a bractwem niebieskich. Bractwo czerwonych ma \( 12 \) rycerzy, bractwo niebieskich \( 15 \). Ile różnych indywidualnych pojedynków może być stoczonych, jeśli rycerze z tego samego bractwa nigdy ze sobą nie walczą?

  • Niech \( C \) i \( N \) będą zbiorami rycerzy, odpowiednio z bractwa czerwonych i z bractwa niebieskich,
  • każdy pojedynek może być interpretowany jako uporządkowana para \( (c,n) \), gdzie \( c\in C \), \( n\in N \). Zatem liczba pojedynków to liczność zbioru \( C\times N \).
  • \( \vert C\times N\vert=\vert C\vert\cdot\vert N\vert=12\cdot15=300 \).

Zliczanie podzbiorów

Zbiór potegowy, lub inaczej zbiór podzbiorów, zbioru \( X \) oznaczamy przez \( \mathcal{P}(X) \).

Przykład

  • \( \mathcal{P}(\emptyset)={\{ {\emptyset} \}\ } \) i \( \vert\mathcal{P}(\emptyset)\vert=1 \)
  • \( \mathcal{P}({\{ {\emptyset} \}\ })={\{ {\emptyset,{\{ {\emptyset} \}\ }} \}\ } \) i \( \vert\mathcal{P}({\{ {\emptyset} \}\ })\vert=2 \)

Przykład

Ile podzbiorów ma skończony zbiór \( n \)-elementowy? Łatwo jest odpowiedzieć na to pytanie dla małych liczb \( n \). Np. zbiór \( {\{ {a,b} \}\ } \) ma następujące cztery podzbiory:


\( \emptyset,{\{ {a} \}\ }, {\{ {b} \}\ }, {\{ {a,b} \}\ } \)

a zbiór trzyelementowy \( {\{ {a,b,c} \}\ } \) ma osiem podzbiorów:


\( \emptyset, {\{ {a} \}\ }, {\{ {b} \}\ }, {\{ {c} \}\ }, {\{ {a,b} \}\ }, {\{ {a,c} \}\ }, {\{ {b,c} \}\ }, {\{ {a,b,c} \}\ } \)

Spróbujmy odpowiedzieć na to pytanie w ogólnej sytuacji i w sposób rekurencyjny. Niech \( p_n \) oznacza liczbę podzbiorów zbioru \( n \)-elementowego. Na podstawie dotychczasowych przykładów mamy:

\( \begin{array} {|c||c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & \ldots \\ \hline p_n & 1 & 2 & 4 & 8 & \ldots \\ \hline \end{array} \)

i można wysunąć hipotezę, że w ogólności \( p_n = 2^n \). Ale jak ją uzasadnić?

Załóżmy, że znamy liczbę \( p_n \) i chcemy policzyć \( p_{n+1} \). Niech więc zbiór \( Z \) ma \( n+1 \) elementów, czyli po usunięciu ze zbioru \( Z \) elementu \( a\in Z \) dostajemy \( n \)-elementowy zbiór \( Z' \). Podobnie jak w dowodzie Zasady Włączania-Wyłączania, podzbiory zbioru \( Z \) można podzielić na dwa typy:

  • albo mają w sobie element \( a \),
  • albo go nie mają.

W drugim przypadku są to podzbiory zbioru \( Z' \). Jest więc ich dokładnie \( p_n \).

Każdy zaś podzbiór pierwszego typu, czyli \( A \subseteq Z \) takie, że \( a\in A \) jest jednoznacznie wyznaczony przez swoje pozostałe elementy, tzn. elementy różne od \( a \). A zatem każdy taki zbiór \( A \), że \( a \in A \subseteq Z \), jest postaci \( A'\cup {\{ {a} \}\ } \) dla pewnego \( A'\subseteq Z' \). A zatem podzbiorów zbioru \( Z \), w których jest element \( a \) jest też tyle ile podzbiorów zbioru \( Z' \), tzn. \( p_n \).

Łącznie więc zbiór \( Z \) ma \( p_n + p_n \) podzbiorów, czyli \( p_{n+1} = 2\cdot p_n \) Teraz już bez trudu stwierdzamy, że to wraz z warunkiem \( p_0 = 1 \) jest spełnione przez

\( p_n = 2^n \)

co można łatwo uzasadnić przez indukcję. 0

Obserwacja 3.8

Dla dowolnego, skończonego zbioru \( X \)

\( \vert\mathcal{P}(X)\vert=2^{\vert X\vert}. \)

Zliczanie funkcji

Zliczanie funkcji


Zbiór funkcji postaci \( X \longrightarrow Y \) oznaczamy przez \( Y^X \).

Obserwacja 3.9

Dla skończonych zbiorów \( X,Y \) mamy:

\( \vert Y^X\vert=\vert Y\vert^{\vert X\vert}. \)

Dowód

Niech \( X={\{ {x_0,\ldots,x_{m-1}} \}\ } \) oraz \( Y={\{ {y_0,\ldots, y_{n-1}} \}\ } \). Każda funkcja \( f: X \longrightarrow Y \) to krotka wartości dla kolejnych \( x_i \):

\( (f(x_0),f(x_1),\ldots,f(x_{m-1}))\in \underbrace{Y\times\ldots\times Y}_{m\ razy}. \)

A więc zbiór funkcji z \( X \) w \( Y \) jest równoliczny z \( Y^m \). Z Zasady Mnożenia otrzymujemy więc:

\( \vert\underbrace{Y\times\ldots\times Y}_{m\ razy}\vert =\underbrace{\vert Y\vert\times\ldots\times\vert Y\vert}_{m\ razy} =n^m= \vert Y\vert^{\vert X\vert}. \)

Przykład

Trzech kolegów: Bartek, Paweł i Piotrek spotkali się w pubie tuż po zdanym egzaminie z matematyki dyskretnej. Okazało się, że jest pięć marek piwa do wyboru. Na ile sposobów mogą oni wypić pierwszą kolejkę?

Każdy wybór marki piwa przez wszystkie \( 3 \) osoby możemy interpretować jako funkcję ze zbioru \( {\{ {\textrm{Bartek},\textrm{Paweł},\textrm{Piotrek}} \}\ } \) w pięcioelementowy zbiór marek piwa. A więc istnieje \( 5^3=125 \) sposobów spożycia pierwszej kolejki. I tyleż sposobów dla każdej nastepnej......

Przykład

Kod PIN jest kodem autoryzującym właściciela karty bankomatowej. Składa się on z \( 4 \) cyfr dziesiętnych. Ile jest różnych kodów PIN?

Każdy kod PIN to funkcja z czteroelementowego zbioru pozycji \( {\{ {0,1,2,3} \}\ } \) w dziesięcioelementowy zbiór cyfr \( {\{ {0,1,\ldots,9} \}\ } \). Z Obserwacji 3.9 wynika że kodów PIN jest dokładnie \( 10^4=10000. \)

Posługując się Obserwacją 3.8 udowodnimy jeszcze raz wzór na ilość podzbiorów skończonego zbioru. Zatem Obserwację 3.9 możemy traktować jako uogólnienie Obserwacji 3.8.

Dowód

Alternatywny dowód Obserwacji 3.8
Zauważmy, że dowolny podzbiór \( A\subseteq X \) wyznacza jednoznacznie funkcję \( \chi_A:X \rightarrow \mathbb{Z}_2 \) w następujący sposób:

\( \chi_Y(x)= \left \{ \begin{array}{ll} {cl} 0, & \textrm{dla }x\in X- A \\ 1, & \textrm{dla }x\in A \end{array} \right. \)

Również każda funkcja \( f :X \longrightarrow \mathbb{Z}_2 \) wyznacza jednoznacznie podzbiór \( A_f{\{ {x\in X:f(x)=1} \}\ } \) zbioru \( X \). Nadto, odpowiedniość

\( \mathcal{P}(X) \ni A \mapsto \chi_A \in \mathbb{Z}_2^X \)

jest bijektywna. Zatem \( \vert\mathcal{P}(X)\vert=\vert\mathbb{Z}_2^X\vert =2^{\vert X\vert} \).

Obserwacja 3.10

Liczba injekcji ze zbioru skończonego \( X \) w zbiór skończony \( Y \) wynosi:

\( \vert Y\vert(\vert Y\vert-1)\cdot\ldots\cdot(\vert Y\vert-\vert X\vert+1)= \frac{\vert Y\vert!}{(\vert Y\vert-\vert X\vert)!}. \)

Dowód

Niech \( X={\{ {x_0,\ldots,x_{m-1}} \}\ } \) i \( Y={\{ {y_0,\ldots,y_{n-1}} \}\ } \). Każdą injekcję z \( X \) w \( Y \) możemy utożsamić z uporządkowanym wyborem \( m \) różnych elementów ze zbioru \( Y \):

\( f(x_0),f(x_1),\ldots,f(x_{m-1}). \)

Pierwszy element możemy wybrać na \( n \) sposobów, drugi na \( n-1 \), bo musi być różny od poprzednio wybranego, trzeci już tylko na \( n-2 \) sposoby, itd., aż wreszcie \( m \)-ty na \( n-m+1 \) sposobów. Zatem liczba injekcji równa jest \( n(n-1)\cdot\ldots\cdot(n-m+1) \).

Przykład

Ile jest PIN-ów, czyli cztero-elementowych słów złożonych z cyfr dziesiętnych, takich że żadna cyfra się nie powtarza?

Każdy PIN z niepowtarzającymi się cyframi to injekcja z cztero-elementowego zbioru pozycji \( {\{ {0,1,2,3} \}\ } \) w \( 10 \)-elementowy zbiór cyfr \( {\{ {0,1,\ldots,9} \}\ } \). Zatem jest ich dokładnie \( 10\cdot9\cdot8\cdot7=5040 \).

Obserwacja 3.11

Liczba bijekcji pomiędzy skończonymi zbiorami \( X \) i \( Y \), gdzie \( \vert X\vert=\vert Y\vert \) wynosi \( \vert X\vert!. \)

Dowód

Pokażemy najpierw, że każda injekcja \( f: X \longrightarrow Y \) jest bijekcją. Istotnie, gdyby \( f \) nie było surjekcją, to \( f(X) \) byłoby właściwym podzbiorem zbioru \( Y \). A zatem \( \vert f(X)\vert < \vert Y\vert \) i funkcja \( f : X \longrightarrow f(X) \) ustalałaby injekcję ze zbioru o większej liczbie elementów w zbiór o mniej liczny. A to nie jest możliwe na mocy Obserwacji 3.3. Udowodniliśmy, że liczba bijekcji z \( X \) w \( Y \) równa jest liczbie injekcji z \( X \) w \( Y \), czyli, z Obserwacji 3.10), wynosi ona:

\( n(n-1)\cdot\ldots\cdot(n-n+2)(n-n+1)=n!. \)

Zauważmy jeszcze, że \( \emptyset \subseteq \emptyset \times \emptyset \) jest nie tylko funkcją \( \emptyset : \emptyset \longrightarrow \emptyset \), ale i bijekcją i jest to jedyna bijekcja \( \emptyset \longrightarrow \emptyset \).

Przykład

Na kurs tańca uczęszcza pięciu chłopaków i pięć dziewcząt. Większość kroków tanecznych ćwiczy się parami. Dla urozmaicenia pary często się zmieniają. Na ile sposobów może być wykonany jeden taniec?

Niech \( C \) będzie zbiorem chłopaków, a \( D \) zbiorem dziewcząt. Matematycznym modelem doboru par do tańca jest bijekcja \( f:C \rightarrow D \). Zatem możliwych wyborów jest tyle samo co bijekcji pomiędzy \( 5 \)-elementowymi zbiorami, czyli \( 5!=5\cdot4\cdot3\cdot2\cdot1=120 \).

Permutacje

Permutacje


Permutacja zbioru skończonego \( X \) to bijekcja z \( X \) w \( X \).

Zbiór permutacji zbioru \( \mathbb{Z}_n \) oznaczamy przez \( S_n \), a permutacje bedziemy w tym kursie oznaczać małymi literami greckimi.

Przykład

Rozważ funkcję \( \alpha:\mathbb{Z}_7 \rightarrow \mathbb{Z}_7 \) zadaną przez poniższą tabelę:

\( \begin{array} {|c||c|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline \alpha(n) & 2 & 3 & 6 & 0 & 4 & 1 & 5 \\ \hline \end{array} \)

Funkcja \( \alpha \) jest bijekcją z \( \mathbb{Z}_7 \) w \( \mathbb{Z}_7 \), zatem jest permutacją i \( \alpha\in S_7 \).

Przykład

Dla permutacji \( \alpha,\beta\in S_5 \) zadanych przez poniższą tabelę:

\( \begin{array} {|c||c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 \\ \hline \alpha(n) & 4 & 2 & 3 & 0 & 1 \\ \hline \beta(n) & 2 & 3 & 1 & 4 & 0 \\ \hline \end{array} \)
ich złożenia podane są poniżej:

\( \begin{array} {|c||c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 \\ \hline \beta\alpha(n) & 0 & 1 & 4 & 2 & 3 \\ \hline \alpha\beta(n) & 3 & 0 & 2 & 1 & 4 \\ \hline \end{array} \)

Zauważ, że oba złożenia także są permutacjami \( \mathbb{Z}_5 \).

Ponieważ permutacje są bijekcjami, to natychmiast z Obserwacji 3.2 dostajemy:

Obserwacja 3.12

Dla dowolnych permutacji \( \alpha,\beta \) skończonego zbioru \( X \):

  • \( \alpha\beta,\beta\alpha \) są permutacjami \( X \),
  • \( \alpha^{-1} \) jest permutacją \( X \) taką, że \( \alpha\alpha^{-1}=id_{X}=\alpha^{-1}\alpha= \).

Następne spostrzeżenie jest natychmiastowym wnioskiem z Obserwacji 3.11.

Wniosek 3.13

Zbiór \( n \)-elementowy ma dokładnie \( n! \) permutacji, \( \vert S_n\vert=n! \).

Przykład

Oto wszystkie (\( 3!=6 \)) permutacje zbioru \( S_3 \):

\( \begin{array} {ccccccccccc} 0 & 1 & 2 & \qquad & 0 & 1 & 2 & \qquad & 0 & 1 & 2 \\ \downarrow & \downarrow & \downarrow & & \downarrow & \downarrow & \downarrow & & \downarrow & \downarrow & \downarrow \\ 0 & 1 & 2 & \qquad & 0 & 2 & 1 & \qquad & 1 & 0 & 2 \\ \\ 0 & 1 & 2 & \qquad & 0 & 1 & 2 & \qquad & 0 & 1 & 2 \\ \downarrow & \downarrow & \downarrow & & \downarrow & \downarrow & \downarrow & & \downarrow & \downarrow & \downarrow \\ 1 & 0 & 2 & \qquad & 2 & 0 & 1 & \qquad & 2 & 1 & 0 \end{array} \)

Permutację \( \alpha \) zbioru \( X={\{ {x_0,\ldots,x_{n-1}} \}\ } \) wygodnie jest identyfikować z krotką \( (\alpha(x_0),\ldots,\alpha(x_{n-1}))\in X^n \). Często też permutację interpretuje się jako uporządkowanie zbioru \( X \).

Przykład

Na ile sposobów można poukładać koło siebie na półce \( 7 \) książek?

Na dokładnie tyle, ile jest permutacji zbioru siedmio-elementowego, a więc \( 7!=5040 \).

Cykl zbioru \( n \)-elementowego \( X \) to taka permutacja zbioru \( X \), dla której \( {\{ {x,\alpha(x),\alpha^2(x),\ldots,\alpha^{n-1}(x)} \}\ }=X \), przy dowolnym \( x\in X \). Łatwo zauważyć, że jeśli dla pewnego \( x_0\in X \) mamy \( {\{ {x,\alpha(x),\alpha^2(x),\ldots,\alpha^{n-1}(x)} \}\ }=X \), to jest tak dla wszystkich \( x\in X \), czyli \( \alpha \) jest cyklem na \( X \). Cykl \( \alpha \) zbioru \( X \) zapisujemy jako \( (x,\alpha(x),\ldots,\alpha^{n-1}(x)) \) dla dowolnie wybranego \( x\in X \).

Przykład

Rozważmy \( \alpha\in S_6 \) daną przez

\( \begin{array} {|c||c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 \\ \hline \alpha(n) & 3 & 5 & 0 & 1 & 2 & 4 \\ \hline \end{array} \)

  • sekwencja \( 0 \), \( \alpha(0)=3 \), \( \alpha^2(0)=1 \), \( \alpha^3(0)=5 \), \( \alpha^4(0)=4 \), \( \alpha^5(0)=2 \) pokwywa całe \( \mathbb{Z}_6 \),
  • zatem \( \alpha=(0,3,1,5,4,2) \) jest cyklem.

Rozkład permutacji na rozłączne cykle

Dowolną permutację \( \alpha \) zbioru \( X \) można rozłożyć na rozłączne cykle w sposób następujący:

  1. wybierz dowolny element \( x\in X \), który nie jest jeszcze w żadnym cyklu,
  2. iteruj permutację \( \alpha \) otrzymując kolejno: \( \alpha(x),\alpha^2(x),\alpha^3(x),\ldots \) aż do uzyskania \( \alpha^j(x)=x \),
  3. dodaj do rozkładu cykl \( x,\ldots,\alpha^{j-1}(x) \),
  4. jeśli w zbiorze \( X \) pozostały jeszcze elementy niepokryte przez żaden cykl, to wróć do pierwszego punktu.

Dowód

Dla dowodu poprawności algorytmu rozkładu pokażemy najpierw, że iteracja w drugim punkcie zawsze osiąga element wyjściowy \( x \). Ponieważ zbiór \( X \) jest skończony iteracja \( x,\alpha(x),\alpha^2(x)\ldots \) w pewnym kroku musi wrócić do elementu już rozważanego, zatem \( \alpha^i(x)=\alpha^j(x) \) dla pewnych \( i < j \). Weźmy najmniejsze takie \( j \), że \( \alpha^i(x)=\alpha^j(x) \) dla pewnego \( 0\leq i < j \). Gdyby \( i\neq 0 \) to z faktu, że \( \alpha \) jest permutacją mamy \( \alpha^{i-1}(x)=\alpha^{j-1}(x) \), co stoi w sprzeczności z minimalnością \( j \). A zatem \( \alpha^j(x)=x \).

Pozostaje jeszcze pokazać, że otrzymane cykle są rozłączne. Załóżmy, że nie są i weźmy pierwszy napotkany element \( y=\alpha^i(x) \), który był już w którymś z poprzednich cykli. Zauważmy, że \( i>0 \) gdyż \( x \) był wybrany jako element nie pokryty przez żaden cykl (patrz punkt pierwszy). Wiemy, że istnieje element \( z \) w tym samym cyklu co \( y \) taki, że \( \alpha(z)=y \), ale także \( \alpha(\alpha^{i-1}(x))=y \). Ponieważ \( \alpha \) jest permutacją, otrzymujemy \( \alpha^{i-1}(x)=z \), co stoi w sprzeczności z faktem, że \( y \) jest jedynym elementem z poprzedniego cyklu.

Jeśli permutacja \( \alpha \) złożona jest z \( k \) rozłącznych cykli, to zapisujemy \( \alpha=(x_0,\ldots)(x_1,\ldots)\ldots(x_{k-1},\ldots) \), gdzie w kolejnych nawiasach są elementy kolejnych cykli startujące od odpowiednio: \( x_0,\ldots,x_{k-1} \).

Przykład

Rozważmy jeszcze raz permutację \( \alpha\in S_7 \):

\( \begin{array} {|c||c|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline \alpha(n) & 2 & 3 & 6 & 0 & 4 & 1 & 5 \\ \hline \end{array} \)

Rozkład \( \alpha \) na cykle:

  • \( 0 \), \( \alpha(0)=2 \), \( \alpha(2)=6 \), \( \alpha(6)=5 \), \( \alpha(5)=1 \), \( \alpha(1)=3 \), \( \alpha(3)=0 \),
  • \( 4 \), \( \alpha(4)=4 \),
  • \( \alpha=(026513)(4) \).

Sumy skończone i rachunek różnicowy

Wstęp


Oto dwie konwencje zapisu skończonych sum wyrazów:

\( \displaystyle a_1+a_2+\ldots+a_n=\sum_{i=1}^{n} a_i. \)

Czasami stosowana jest ogólniejsza notacja \( \displaystyle \sum_{i\in I}a_i \), gdzie \( I \) jest skończonym zbiorem indeksów. Jeśli \( I \) jest pusty to suma ma
wartość \( 0 \).

Często, zamiast określać zbiór indeksów \( I \) podaje się pod sumą warunek ten zbiór definiujący. Na przykład:

\( \displaystyle \sum_{\scriptsize\begin{array} {c}1\leq i\leq n \\ i \textrm{ nieparzysta}\end{array}}a_i \)

Częstym zadaniem wobec którego stajemy to sprowadzenie sumy do postaci zwartej lub choćby znacząco prostszej. Ten wykład zawiera krótki przegląd metod i strategii obliczania skończonych sum. Znakomita część wykładu poświęcona jest prezentacji rachunku różnicowego - narzędzia pozwalającego liczyć skończone sumy w sposób systematyczny.

Kilka metod obliczania skończonych sum

Kilka metod obliczania skończonych sum


Odgadnięcie rozwiązania i udowodnienie go przez indukcję

W wykładach o indukcji i rekurencji analizowaliśmy kilka przykładów tą metodą. Analogicznie rozwiązywaliśmy też równania rekursywne. Indukcja sprawdza się gdy intuicje odnośnie sumy, którą chcemy policzyć, pozwalają nam na wysuwanie hipotez co do jej wartości. Jest to też dobra metoda sprawdzenia wyników (w celu wychwycenia ewentualnych błędów) otrzymanych inną metodą. Niestety, najczęściej gdy chcemy wskazać wzór na sumę, nie jesteśmy w stanie go zgadnąć. Wtedy trzeba posłużyć się innymi metodami.

Przeindeksowanie sumy

Przykład

Rozważmy sumę skończonego ciągu arytmetycznego o parametrach \( a,b\in\mathbb{Z} \):

\( \displaystyle \sum_{0\leq k\leq n}(a+kb)=a+(a+b)+(a+2b)+(a+3b)+\ldots+(a+nb)=\quad? \)

Zauważmy, że

\( \displaystyle \sum_{0\leq k\leq n}(a+kb)=\sum_{0\leq k\leq n}(a+(n-k)b)=\sum_{0\leq k\leq n}(a+nb-kb). \)

Dodając odpowiednie równości stronami otrzymujemy:

\( \begin{align*}2\sum_{0\leq k\leq n}(a+kb) & =\sum_{0\leq k\leq n}((a+kb)+(a+nb-kb)) \\ & =\sum_{0\leq k\leq n}(2a+nb) \\ & =(2a+nb)\sum_{0\leq k\leq n}1 \\ & =(2a+nb)(n+1). \end{align*} \)

Zatem \( \displaystyle \sum_{0\leq k\leq n}(a+kb)=(a+\frac{1}{2}nb)(n+1) \), czyli obliczana suma jest średnią arytmetyczną pierwszego \( a \) i ostatniego \( a+bn \) składnika sumy pomnożoną przez liczbę składników sumy. Takiej metody użył młody Gauss, gdy zniecierpliwiony jego pytaniami nauczyciel polecił mu policzyć sumę tysiąca pierwszych liczb naturalnych.

Zmiana kolejności sumowania w sumach wielokrotnych

Przykład

Ciąg harmoniczny \( \displaystyle H_n=\sum_{i=1}^n\frac{1}{i} \) poznaliśmy w wykładzie o indukcji. Pokazaliśmy tam, że

\( \frac{\lfloor \lg{n}\rfloor+1}{2} \leq H_n \leq \lfloor \lg{n}\rfloor+1. \)

Tym razem jesteśmy zainteresowani sumami postaci

\( \displaystyle \sum_{i=1}^n H_i=\sum_{i=1}^n\sum_{j=1}^i\frac{1}{j}, \)

których pierwsze wartości przedstawia tabela:

\( \begin{array} {|c||c|c|c|c} \hline n & 1 & 2 & 3 & \ldots \\ \hline H_n & 1 & \frac{3}{2} & \frac{5}{3} & \ldots \\ \hline \displaystyle \sum_{i=0}^nH_i & 1 & \frac{5}{2} & \frac{25}{6} & \ldots \\ \hline \end{array} \)

W tym przypadku zamienimy kolejność wyrazów w sumie po czym okaże się, że nowa postać jest prosta do przeliczenia. Wypiszmy więc wszystkie wyrazy w naszej podwójnej sumie, tak by kolejne wiersze były składnikami liczb harmonicznych:

\( \begin{array} {ccccc} 1 \\ 1 & \frac{1}{2} \\ 1 & \frac{1}{2} & \frac{1}{3} \\ \ldots & \ldots & \ldots & \ldots \\ 1 & \frac{1}{2} & \frac{1}{3} & \ldots & \frac{1}{n} \end{array} \)

Zauważmy, że oryginalny zapis nakazuje najpierw sumować wiersze, a później wartości tych wierszy. Zmieńmy zatem kolejność sumowania aby najpierw sumować kolumny:

\( \begin{align*}\sum_{i=1}^nH_i=\sum_{i=1}^n\sum_{j=1}^i\frac{1}{j} & =\sum_{i=1}^n\frac{1}{i}\cdot (n-i+1) \\ & =n\sum_{i=1}^n\frac{1}{i}-\sum_{i=1}^n1+\sum_{i=1}^n\frac{1}{i} \\ & =(n+1)H_n-n. \end{align*} \)

Zaburzanie

Gdy interesują nas skończone sumy odcinków początkowych ciągu \( {\{ {a_i} \}\ }_{i\in\mathbb{N}} \), czyli sumy postaci \( \displaystyle S_n=\sum_{i=0}^n a_i \). Metoda zaburzania polega na obliczeniu wartości \( S_{n+1} \) za pomocą \( S_n \) na dwa różne sposoby: na ogół wydzielając pierwszy i ostatni składnik sumy tzn.:

\( \displaystyle {S_n+a_{n+1}=a_0+\sum_{i=0}^n a_{i+1}}. \)
Jeśli uda się nam ostatnią sumę wyrazić za pomocą \( S_n \), to otrzymamy równanie, którego rozwiązanie jest poszukiwaną sumą. Niestety, metoda zaburzania dalece nie zawsze działa. Jednak w wielu sytuacjach bywa elegancka i skuteczna.

Przykład

Policzmy sumę \( \displaystyle \sum_{i=0}^n ax^i \) skończonego ciągu geometrycznego dla \( a,x\in\mathbb{Z} \), \( x\neq1 \). Zgodnie z ogólnym schematem zaburzania mamy:

\( \begin{align*}\sum_{i=0}^n ax^i+ax^{n+1} & =ax^0+\sum_{i=0}^n ax^{i+1} \\ & =a+x\sum_{i=0}^n ax^i. \end{align*} \)

Rozwiązując powyższe równanie dostajemy:

\( \displaystyle \sum_{i=0}^nax^i=\frac{a-ax^{n+1}}{1-x},\ \) dla \( x\neq 1. \)

Przykład

Tym razem jesteśmy zainteresowani sumą \( \displaystyle \sum_{i=0}^n i2^i \),która przyjmuje wartości:

\( \begin{array} {|c||c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & \ldots \\ \hline n2^n & 0 & 2 & 8 & 24 & 64 & \ldots \\ \hline \displaystyle \sum_{i=0}^n i2^i & 0 & 2 & 10 & 34 & 98 & \ldots \\ \hline \end{array} \)

Licząc przez zaburzanie dostajemy:

\( \begin{align*}\sum_{i=0}^n i2^i+(n+1)2^{n+1} & =0\cdot2^0+\sum_{i=0}^n (i+1)2^{i+1} \\ & =2\sum_{i=0}^n i2^i+2\sum_{i=0}^n2^i \\ & =2\sum_{i=0}^n i2^i+2\cdot(2^{n+1}-1), \end{align*} \)
gdzie suma skończonego ciągu geometrycznego \( \displaystyle{\sum_{i=0}^n2^i} \) została wyliczona w poprzednim przykładzie. Zatem ostatecznie

\( \displaystyle \sum_{i=0}^n i2^i=(n+1)2^{n+1}-2(2^{n+1}-1)=(n-1)2^{n+1}+2. \)

Przykład

Spróbujmy policzyć jeszcze raz sumę kwadratów \( \displaystyle \sum_{i=0}^ni^2, \) ale tym razem przez zaburzanie.

\( \begin{align*}\sum_{i=0}^n i^2 + (n+1)^2 & =0^2+\sum_{i=0}^n(i+1)^2 \\ & =\sum_{i=0}^n i^2+2\sum_{i=0}^n i+\sum_{i=0}^n 1 \\ & =\sum_{i=0}^n i^2+2\sum_{i=0}^n i+n \end{align*} \)

Niestety okazuje się, że sumy kwadratów się skracają. Zaburzanie okazało się w tym przypadku nieskuteczne. Zauważmy jednak, iż z otrzymanej równości \( \displaystyle 2\sum_{i=0}^n i=(n+1)^2-(n+1) \) dostajemy wzór na sumę kolejnych liczb naturalnych (a nie kwadratów jak chcieliśmy). Nasuwa się podejrzenie, że aby otrzymać wzór na sumę kwadratów trzeba zaburzyć sumę sześcianów. Spróbujmy:


\( \begin{align*}\sum_{i=0}^n i^3+(n+1)^3 & =0^3+\sum_{i=0}^n(i+1)^3 \\ & =\sum_{i=0}^n i^3+3\sum_{i=0}^n i^2+3\sum_{i=0}^n i+\sum_{i=0}^n 1 \\ & =\sum_{i=0}^n i^3+3\sum_{i=0}^n i^2+3\frac{n(n+1)}{2}+(n+1). \end{align*} \)

Rzeczywiście, sumy sześcianów się skracają i możemy wyprowadzić wzór na sumę kwadratów:


\( \begin{align*} 3\sum_{i=0}^n i^2 & =(n+1)^3-\frac{3}{2}n(n+1)-(n+1)= (n+1)((n+1)^2-\frac{3}{2}n -1), \\ \sum_{i=0}^n i^2 & =\frac{(n+1)(n^2+2n+1-\frac{3}{2}n-1)}{3}=\frac{n(n+\frac{1}{2})(n+1)}{3}. \end{align*} \)

Rachunek różnicowy

Rachunek różnicowy


Żadna z przedstawionych metod obliczania skończonych sum nie jest niezawodnym kompletnym algorytmem. Są to raczej wskazówki bądź zestaw sztuczek, które czasem działają. Zaprezentujemy teraz podstawy rachunku różnicowego - dobrego narzędzia do obliczania skończonych sum.

Rachunek różnicowy powstał przez analogię do rachunku różniczkowego - działu matematyki zajmującego się badaniem funkcji rzeczywistych i zespolonych, przy użyciu ich pochodnych i całek. Podstawą rachunku różniczkowego jest operator pochodnej \( D \), zdefiniowany jako

\( \displaystyle (Df)(x)=\lim_{h \rightarrow 0}\frac{f(x+h)-f(x)}{h}. \)

Przyporządkowuje on funkcję \( Df \) funkcji rzeczywistej \( f \). Odpowiednikiem operatora pochodnej w rachunku różnicowym jest operator różnicowy \( \Delta \), zdefiniowany jako

\( (\Delta f)(x)=f(x+1)-f(x). \)

Przyporządkowuje on funkcję \( \Delta f \) funkcji rzeczywistej \( f \). Będziemy go jednak rozważać tylko dla funkcji określonych na zbiorze liczb naturalnych (czyli dla ciągów). Operator \( \Delta \) to "skończony odpowiednik" operatora \( D \). Rozważając funkcję liczb całkowitych \( f \) nie mamy możliwości badać granicy występującej w definicji \( D \). W zamian za to rozważamy stosowny iloraz \( \frac{f(x+1)-f(x)}{1} \) przy najmniejszej możliwej wartości \( h \).

Przykład

Dla funkcji \( f(x)=x^2-4x+10 \) mamy

\( \begin{align*}(\Delta f)(x) & =f(x+1)-f(x)=(x+1)^2-4(x+1)+10-(x^2-4x+10) \\ & =2x-3. \end{align*} \)

\( \begin{array} {|c||c|c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & \ldots \\ \hline f(n) & 10 & 7 & 6 & 7 & 10 & 15 & \ldots \\ \hline (\Delta f)(n) & -3 & -1 & 1 & 3 & 5 & \ldots & \ldots \\ \hline \end{array} \)

Operator \( \Delta^n \) nazywamy n-tą iteracją operatora \( \Delta \), gdzie

\( \begin{align*}\Delta^0f & =f, \\ \Delta^{k+1}f & =\Delta(\Delta^k f). \end{align*} \)

Przykład

Dla funkcji \( \displaystyle f(x)=\sum_{i=0}^x i^2 \) mamy:

  • \displaystyle \( (\Delta f)(x)=f(x+1)-f(x)=\sum_{i=0}^{x+1}i^2-\sum_{i=0}^x i^2=(x+1)^2 \),
  • \displaystyle \( (\Delta^2 f)(x)=(\Delta f)(x+1)-(\Delta f)(x)=(x+1)^2-x^2=2x+1 \),
  • \displaystyle \( (\Delta^3 f)(x)=(\Delta^2 f)(x+1)-(\Delta^2 f)(x)=2(x+1)+1-(2x+1)=2 \),
  • \displaystyle \( (\Delta^4 f)(x)=(\Delta^3 f)(x+1)-(\Delta^3 f)(x)=2-2=0 \).

\( \begin{array} {|c||c|c|c|c|c|c|c} \hline x & 0 & 1 & 2 & 3 & 4 & 5 & \ldots \\ \hline\hline f(x) & 0 & 1 & 5 & 14 & 30 & 55 & \ldots \\ \hline (\Delta f)(x) & 1 & 4 & 9 & 16 & 25 & \ldots \\ \hline (\Delta^2 f)(x) & 3 & 5 & 7 & 9 & \ldots \\ \hline (\Delta^3 f)(x) & 2 & 2 & 2 & \ldots \\ \hline (\Delta^4 f)(x) & 0 & 0 & \ldots \\ \hline \end{array} \)

Bardzo łatwo jest sprawdzić własności opisane w następnej obserwacji.

Obserwacja 4.1

Operator różnicowy \( \Delta \) jest operatorem liniowym, tzn.:

\( \begin{align*}\Delta (c\cdot f) & =c\cdot\Delta f, \\ \Delta(f+g) & =\Delta f+\Delta g. \end{align*} \)

Różniczkowanie jednomianów, czyli wielomianów typu \( x^k \), jest bardzo proste: \( Dx^k=kx^{k-1} \) dla dowolnego \( k\geq1 \). Własność ta nie przenosi się jednak na operator \( \Delta \).

Przykład

\( \begin{align*}\ Dx^2 & =2x, \\ \Delta x^2 & =(x+1)^2-x^2=2x+1, \\ Dx^3 & =3x^2, \\ \Delta x^3 & =(x+1)^3-x^3=3x^2+3x+1, \end{align*} \)

Na szczęście dla operatora różnicowego \( \Delta \) istnieją odpowiedniki jednomianów, czyli wielomianów o dowolnie dużych potęgach, które łatwo zróżnicować.

\( m \)-ta dolna silnia \( x \) to wielomian zmiennej \( x \), zdefiniowany jako


\( x^{\underline{m}}=x(x-1)\ldots(x-m+1), \) dla \( m\geq 1 \)

\( m \)-ta górna silnia \( x \) to wielomian zmiennej \( x \), zdefiniowany jako

\( x^{\overline{m}}=x(x+1)\ldots(x+m-1), \) dla \( m\geq 1. \)

Dodatkowo przyjmujemy, że \( x^{\underline{0}}=x^{\overline{0}}=1 \).

Zauważmy, że w odróżnieniu od zwykłego potęgowania mamy tu

\( x^{\underline{m+n}} =x^{\underline{m}}(x-m)^{\underline{n}} =(x-n)^{\underline{m}}x^{\underline{n}}. \)

Obserwacja 4.2

Dla \( m\geq 1 \) zachodzi \( \Delta x^{\underline{m}}=mx^{\underline{m-1}}. \)

Dowód

\( \begin{align*}\Delta x^{\underline{m}} & =(x+1)^{\underline{m}}-x^{\underline{m}} \\ & =(x+1)x(x-1)\ldots(x-m+2)-x(x-1)\ldots(x-m+1) \\ & =mx(x-1)\ldots(x-m+2) \\ & =mx^{\underline{m-1}}. \end{align*} \)

Twierdzenie 4.3

Dowolny wielomian \( k \)-tego stopnia \( p(x) \) można jednoznacznie przedstawić w postaci \( \displaystyle \sum_{i=0}^ka_ix^{\underline{k}} \), gdzie \( a_0=p(0) \), \( a_1=(\Delta p)(0) \), \( a_2=(\Delta^2 p)(0)/2 \) i ogólnie

\( \displaystyle p(x)=\sum_{i=0}^k\frac{(\Delta^i p)(0)}{i!}x^{\underline{i}}. \)

Twierdzenie to jest analogią Twierdzenia Taylora dla wielomianów. Dowód pomijamy w tym wykładzie. Korzysta on z faktu, iż ciąg dolnych silni jest bazą przestrzeni liniowej wielomianów.

Wykorzystując Twierdzenie 4.3 możemy szybko różnicować dowolny wielomian \( p(x) \) licząc jedynie kolejne różnice \( (\Delta^i p)(0) \). To z kolei dla wielomianu stopnia \( k \) sprowadza się do policzenia \( k+2 \) wartości początkowych \( p(0),\ldots, p(k+1) \).

Przykład

Aby policzyć \( \Delta (x^3-5x+13) \) najpierw wyrażamy nasz wielomian jako kombinacje dolnych silni. Do tego potrzebujemy współczynników z Twierdzenia 4.3.

\( \begin{array} {|c||c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & \ldots \\ \hline\hline n^3-5n+13 & 13 & 9 & 16 & 25 & 57 & \ldots \\ \hline \Delta(n^3-5n+13) & -4 & 5 & 9 & 22 & \ldots \\ \hline \Delta^2(n^3-5n+13) & 9 & 4 & 11 & \ldots \\ \hline \Delta^3(n^3-5n+13) & -5 & \ldots \\ \hline \end{array} \)

Potem różnicujemy wykorzystując podstawowe własności \( \Delta \).

\( n^3-5n+13 =\frac{-5}{6}n^{\underline{3}} +\frac{9}{2}n^{\underline{2}} +\frac{-4}{1}n^{\underline{1}} +\frac{13}{1}n^{\underline{0}} =-\frac{5}{6}n^{\underline{3}} + \frac{9}{2}n^{\underline{2}} -4n^{\underline{1}}+13, \)

by dostać

\( \begin{align*}\Delta(n^3-5n+13) & =\Delta(-\frac{5}{6}n^{\underline{3}}+ \frac{9}{2}n^{\underline{2}}-4n^{\underline{1}}+13) \\ & =-\frac{5}{6}\cdot3n^{\underline{2}}+\frac{9}{2}\cdot2n^{\underline{1}}-4\cdot1 \\ & =-\frac{5}{2}n^{\underline{2}}+9n^{\underline{1}}-4. \end{align*} \)

W rachunku różniczkowym operator pochodnej \( D \) ma operator odwrotny - jest nim operator całki \( \displaystyle{\int} \). Te dwa operatory powiązane są własnością:

\( g=Df \) wtedy i tylko wtedy, gdy \( \int g(x)dx=f(x)+C. \)

Zauważmy, że wychodząc od funkcji \( g:\mathbb{N}\longrightarrow\mathbb{R} \) i definiując \( f:\mathbb{N}\longrightarrow\mathbb{R} \) poprzez \( \displaystyle f(n) = \sum_{i=0}^{n-1} g(i) \) mamy \( \Delta f = g \). Moglibyśmy więc zdefiniować sumę nieoznaczoną jako \( \displaystyle \sum g(x)\delta x = \sum_{i=0}^{n-1} g(i) \). Ponieważ \( \Delta f = \Delta(f+C) \) dla dowolnej stałej \( C \), to - podobnie jak w przypadku całki nieoznaczonej - suma nieoznaczona zdefiniowana jest tylko z dokładnością do stałej addytywnej:

\( g=\Delta f \) wtedy i tylko wtedy, gdy \( \sum g(x)\delta x=f(x)+C. \)

Tak więc \( \sum g(x)\delta x \) (podobnie jak \( \displaystyle{\int g(x)dx} \)) jest klasą funkcji, których różnica (pochodna) równa jest \( g(x) \). Wyrażenie \( \sum g(x)\delta x \) to suma nieoznaczona funkcji \( g(x) \). Następujące własności sumy nieoznaczonej wynikają wprost z własności \( \Delta \):

Obserwacja 4.4

Dla funkcji \( f, g : \mathbb{N} \longrightarrow \mathbb{R} \) oraz \( c \in \mathbb{R} \) zachodzi:

  • \( \sum c\cdot g(x)\delta x=c\cdot\sum g(x)\delta x \),
  • \( \sum(f(x)+g(x))\delta x=\sum f(x)\delta x+\sum g(x)\delta x \),
  • \( \sum x^{\underline{m}}\delta x=\frac{1}{m+1}x^{\underline{m+1}} \), dla \( m\geq0 \).

Suma oznaczona funkcji \( g(x) \) o parametrach \( a,b\in\mathbb{N} \) to

\( \displaystyle \sum_a^b g(x)\delta x=f(b)-f(a), \)

dla funkcji \( f \) z klasy \( \sum g(x)\delta x \), tzn. takiej, że \( g=\Delta f \), czyli \( g(x)=f(x+1)-f(x) \). Zauważmy, ze definicja ta jest poprawna, tzn. nie zależy od wyboru funkcji \( f \), jako stała, o którą dwie takie funkcje się różnią zniesie się przy przy odejmowaniu. Nie będzie to bardzo zaskakujące po udowodnieniu poniższych własności sumy oznaczonej, które są analogiami własności całki oznaczonej.

Obserwacja 4.5

Dla dowolnych całkowitych \( a,b,c \) zachodzi:

  • \( \displaystyle \sum_a^a g(x)\delta x=0 \),
  • \( \displaystyle \sum_a^{a+1} g(x)\delta x=g(a) \),
  • \( \displaystyle \sum_a^b g(x)\delta x=-\sum_b^ag(x)\delta x \),
  • \( \displaystyle \sum_a^b g(x)\delta x+\sum_b^cg(x)\delta x=\sum_a^cg(x)\delta x \),
  • \( \displaystyle \sum_a^b g(x)\delta x=\sum_{a\leq i < b}g(i) \), o ile tylko \( a\leq b \).

Dowód

Pierwsze cztery własności wynikają natychmiast z definicji sumy oznaczonej. Dowód piątej poprowadzimy indukcyjnie z uwagi na \( b \geq a \). Dla \( b=a \) jest to pierwszy punkt naszej obserwacji. Nadto \( \displaystyle \sum_a^{b+1} g(x)\delta x =\sum_a^{b} g(x)\delta x + \sum_b^{b+1} g(x)\delta = \sum_{a\leq i < b}g(i) + g(b) =\sum_{a\leq i < b+1}g(i) \), gdzie pierwsza równość jest konsekwencją punktu czwartego, a druga punktu drugiego.

Rachunek różnicowy w liczeniu sum skończonych

Wracamy teraz do rozważań o sumach skończonych. Zobaczymy, jak rachunek różnicowy może być pomocny w ich obliczaniu. Widzieliśmy już, że suma \( \displaystyle \sum_{a\leq i < b}g(i) \)to dokładnie \( f(b)-f(a) \), gdzie \( f \) jest sumą nieoznaczoną funkcji \( g \), tzn. \( g(x)=f(x+1)-f(x) \). Wystarczy więc wyliczyć sumę nieoznaczoną. A proces ten jest bardzo podobny jak liczenie całek nieoznaczonych. W kolejnych przykładach zobaczymy, jak to można zrobić w praktyce.

Przykład

Dla policzenia sumy dolnych silni \( \displaystyle \sum_{i=0}^n i^{\underline{2}} \) odnotujmy najpierw, że skoro \( \Delta x^{\underline{3}}=3x^{\underline{2}} \), to \( \displaystyle \sum x^{\underline{2}}\delta x=\frac{x^{\underline{3}}}{3}+C \). Teraz już oczywiście \( \displaystyle \sum_{i=0}^n i^{\underline{2}} =\sum_0^{n+1}x^{\underline{2}}\delta x =\frac{(n+1)^{\underline{3}}}{3}-\frac{0^{\underline{3}}}{3} =\frac{(n+1)^{\underline{3}}}{3} \).
Podobnie przy liczeniu \( \displaystyle \sum_{i=0}^n i^{\underline{k}} \), gdzie \( k\geq 0 \), wykorzystujemy fakt, iż \( \Delta x^{\underline{k+1}}=(k+1)x^{\underline{k}} \) i dostajemy \( \displaystyle \sum_{i=0}^n i^{\underline{k}} =\sum_0^{n+1}x^{\underline{k}}\delta x =\frac{(n+1)^{\underline{k+1}}}{k+1} \).

Przykład

Dla policzenia sumy sześcianów \( \displaystyle \sum_{i=0}^n i^3 \) potrzebujemy najpierw znaleźć sumę nieoznaczoną \( \displaystyle \sum x^3\delta x \). W tym celu wykorzystujemy najpierw Twierdzenie 4.3 do przedstawienia wielomianu \( x^3 \) jako kombinacji liniowej dolnych silni, dla których znamy już sumy nieoznaczone. Liczymy więc współczynniki typu \( \frac{(\Delta^i x^3)(0)}{i!} \):

\( \begin{array} {|c||c|c|c|c|c|c} \hline x & 0 & 1 & 2 & 3 & 4 & \ldots \\ \hline\hline x^3 & 0 & 1 & 8 & 27 & 64 & \ldots \\ \hline \Delta x^3 & 1 & 7 & 19 & 37 & \ldots \\ \hline \Delta^2 x^3 & 6 & 12 & 18 & \ldots \\ \hline \Delta^3 x^3 & 6 & 6 & \ldots \\ \hline \end{array} \)

skąd


\( x^3= \frac{6}{3!}x^{\underline{3}}+\frac{6}{2!}x^{\underline{2}}+\frac{1}{1!}x^{\underline{1}}+0 =x^{\underline{3}}+3x^{\underline{2}}+x^{\underline{1}}, \)

a zatem

\( \sum x^3 =\sum (x^{\underline{3}}+3x^{\underline{2}}+x^{\underline{1}})\delta x =\frac{x^{\underline{4}}}{4}+x^{\underline{3}}+\frac{x^{\underline{2}}}{2}+C, \)

i wreszcie

\( \displaystyle \sum_{i=0}^n i^3 = \sum_0^{n+1}x^3\delta x = \sum_{0}^{n+1} (x^{\underline{3}}+3x^{\underline{2}}+x^{\underline{1}})\delta x = \frac{(n+1)^{\underline{4}}}{4}+(n+1)^{\underline{3}}+\frac{(n+1)^{\underline{2}}}{2}. \)

Uwalniając się teraz od dolnych silni dostajemy, że to ostatnie wyrażenie wynosi

\( \frac{(n+1)n(n-1)(n-2) + 4(n+1)n(n-1) + 2(n+1)n}{4}= \frac{(n+1)^2 n^2}{4}. \)

Rozszerzymy teraz pojęcie dolnej silni na ujemne wykładniki kładąc :

\( \displaystyle x^{\underline{-m}}=\frac{1}{(x+1)(x+2)\ldots(x+m)}, \) dla \( m>0. \)

Prawa dla dolnej silni, które odnotowaliśmy dla wykładników naturalnych są zachowane. W szczególności mamy:

Obserwacja 4.6

Dla dowolnych \( m,n\in \mathbb{Z} \) zachodzi:

  • \( x^{\underline{m+n}}=x^{\underline{m}}(x-m)^{\underline{n}} \),
  • \( \Delta x^{\underline{m}}=m\cdot x^{\underline{m-1}} \),
  • \( \sum x^{\underline{m}}\delta x=\frac{x^{m+1}}{m+1}+C \), dla \( m\neq-1 \).

Dowód tej obserwacji zostawiamy jako ćwiczenie. Zajmiemy się natomiast jedynym przypadkiem, którego nie potrafimy jeszcze sumować, tzn. wyrażeniem \( \sum x^{\underline{-1}}\delta x \). Oczywiście \( x^{\underline{-1}} \) to \( \frac{1}{x+1} \). Widzieliśmy również, że suma postaci \( \displaystyle \sum_{i=0}^n \frac{1}{i+1} \) to \( (n+1) \)-sza liczba harmoniczna \( H_{n+1} \) oraz zachowuję się podobnie do logarytmu:

\( \frac{\lfloor \lg{n}\rfloor+1}{2} \leq H_n \leq \lfloor \lg{n}\rfloor+1. \)

Z rachunku całkowego wiemy natomiast, że \( \int x^{-1}dx=\ln{x}+C \). Następna obserwacja pokazuje, że podobieństwo to nie jest przypadkowe:

Obserwacja 4.7

\( \Delta H_x=x^{\underline{-1}} \) oraz \( \sum x^{\underline{-1}}\delta x=H_x+C \).

Dowód

Mamy

\( \Delta H_x =\Delta(1+\frac{1}{2}+\ldots+\frac{1}{x}) =(1+\ldots+\frac{1}{x}+\frac{1}{x+1})-(1+\ldots+\frac{1}{x}) =\frac{1}{x+1}=x^{\underline{-1}}, \)

skąd natychmiast \( \sum x^{\underline{-1}}\delta x=H_x+C \).

Z kolei dyskretnym odpowiednikiem funkcji wykładniczej \( e^x \), która nie zmienia się przy różniczkowaniu, jest funkcja \( 2^x \):

Obserwacja 4.8

Dla liczby rzeczywistej \( c\neq1 \) mamy \( \Delta c^x=(c-1)c^x \) oraz \( \sum c^x\delta x=\frac{c^x}{c-1}+C \). W szczególności \( \Delta 2^x=2^x \) oraz \( \sum 2^x\delta x= 2^x+C \).

Dowód

Istotnie, \( \Delta c^x=c^{x+1}-c^x=(c-1)c^x \), skąd (jeśli tylko \( c\neq1 \)) dostajemy natychmiast \( \sum c^x\delta x=\frac{c^x}{c-1}+C \).

Przykład

Używając rachunku różnicowego policzymy teraz sumę skończonego ciągu geometrycznego \( \sum_{i=0}^n abq^i \) z ilorazem \( q\neq 1 \). Obserwacje 4.4 i 4.8 dają:

\( \displaystyle \sum aq^x\delta x=a\sum q^x\delta x=a\frac{q^x}{q-1}+C. \)
A zatem:

\( \displaystyle \sum_{i=0}^n aq^i=a\frac{q^n}{q-1}-a\frac{q^0}{q-1}=a\frac{q^n-1}{q-1}. \)

Sumowanie przez części

Poprzez analogię do rachunku różnicowego zastosujmy operator różnicowy do iloczynu funkcji

\( \begin{align*}\Delta(f(x)g(x)) & =f(x+1)g(x+1)-f(x)g(x) \\ & =f(x+1)g(x+1)-f(x)g(x+1)+f(x)g(x+1)-f(x)g(x) \\ & =g(x+1)\Delta f+f(x)\Delta g(x). \end{align*} \)

Dostajemy stąd natychmiast następującą regułę sumowania przez części

Obserwacja 4.9

\( \displaystyle \sum f(x)\cdot\Delta g(x)\delta x = f(x)\cdot g(x)-\sum (\Delta f)(x)\cdot g(x+1)\delta x \).
>Przykład

Dla policzenia sumy \( \displaystyle \sum_{i=0}^n i2^i \), wyznaczamy najpierw (przez części) sumę nieoznaczoną \( \displaystyle \sum (x2^x)\delta x \). Jest to łatwe, jako że \( 2^x=\Delta 2^x \), więc

\( \begin{align*}\sum (x2^x)\delta x & =x2^x-\sum ((\Delta x)2^{x+1})\delta x \\ & =x2^x-\sum (1 \cdot 2^{x+1})\delta x \\ & =x2^x-2^{x+1}+C=(x-2)2^x+C. \end{align*} \)
Teraz mamy już

\( \displaystyle \sum_{i=0}^ni2^i=\sum_0^{n+1}x2^x\delta x=(n+1-2)2^{n+1}-(0-2)2^0=(n-1)2^{n+1}-2. \)

Współczynniki dwumianowe

Zliczanie podzbiorów raz jeszcze

Zliczanie podzbiorów raz jeszcze


Wiemy już, że dowolny zbiór \( n \)-elementowy ma dokładnie \( 2^n \) podzbiorów. Teraz zajmiemy się pytaniem ile taki zbiór ma podzbiorów o dokładnie \( k \) elementach. Policzymy zatem liczność rodziny \( k \)-elemetowych podzbiorów zbioru \( X \). Rodzinę tę oznaczać będziemy przez \( {\mathcal P}_k(X) \).

Współczynnik dwumianowy \( {n\choose k} \) to liczba \( k \)-elementowych podzbiorów zbioru \( n \)-elementowego, tzn. \( {n\choose k} = \ {|{\mathcal P}_k(\mathbb{Z}_n)|} \). Wyrażenie \( {n\choose k} \) czytamy \( n \) po \( k \).

Prawdopodobnie jako pierwszy tej notacji użył Andreas von Ettingshausen w 1826. Jednak liczby te już wcześniej pojawiały się wielokrotnie, choćby w Trójkącie Pascala. Sama nazwa "współczynniki dwumianowe" bierze się stąd, że liczby te pojawiają się w rozwinięciu dwumianu \( (x+y)^n \). Zobaczymy to dokładnie w Twierdzeniu 5.7

Przykład

Aby policzyć \( {4\choose 2} \) wypiszmy wszystkie \( 2 \)-elementowe podzbiory \( 4 \)-elementowego zbioru \( \mathbb{Z}_4=\{0,1,2,3\} \). Sa to \(\{0,1\} \), \(\{0,2\} \), \(\{0,3\} \), \(\{1,2\} \), \(\{1,3\} \), \(\{2,3\} \), skąd \( {4\choose 2}=6 \).

Bezpośrednio z definicji liczb \( {n\choose k} \) dostajemy:

Obserwacja 5.1

Dla \( n,k \in \mathbb{R} \) zachodzi:

  • \( {n\choose 0}={n\choose n}=1 \),
  • \( {n\choose k}=0 \), dla \( k>n \),
  • \( {n\choose 1}=n \), dla \( n>0 \),
  • \( {n\choose k}={n\choose n-k} \), dla \( n\geq k\geq0 \).

Dowód

Pierwszy punkt jest natychmiastową konsekwencją faktu, że dowolny zbiór \( n \)-elementowy ma tylko jeden \( 0 \)-elementowy podzbiór -podzbiór pusty i tylko jeden podzbiór \( n \)-elementowy - cały zbiór.

Drugi punkt jest oczywisty, jako że zbiór \( n \)-elementowy nie może mieć podzbiorów o \( k>n \) elementach.

Dla dowodu trzeciego punktu, zauważmy jedynie, że podzbiorów jednoelementowych jest dokładnie tyle ile elementów w zbiorze.

Wreszcie dla dowodu ostatniego punktu załóżmy, że \(|{X}|=n\geq k\geq 0 \). Wtedy funkcja

\( {\mathcal P}_k(X)\ni A \mapsto X\setminus A \in {\mathcal P}_{n-k}(X) \)

jest bijekcją. A zatem istotnie \( {n\choose k}={n\choose n-k} \).

Nasza następna obserwacja stanowi fundament dla rekurencyjnej procedury obliczania współczynników dwumianowych.

Obserwacja 5.2

Dla \( 0 < k\leq n \) mamy:

\( {n\choose k}={n-1\choose k-1}+{n-1\choose k}. \)

Dowód

Podobnie jak przy budowaniu zależności rekurencyjnej przy zliczaniu wszystkich podzbiorów zbioru \( n \)-elementowego załóżmy, że \(|{Z}|=n \). Wtedy, po usunięciu ze zbioru \( Z \) elementu \( a\in Z \) dostajemy \( (n-1) \)-elementowy zbiór \( Z' \). Oczywiście wszystkie \( k \)-elementowe podzbiory zbioru \( Z \) można podzielić na dwa typy:

  • albo mają w sobie element \( a \),
  • albo go nie mają.

W drugim przypadku są to \( k \)-elementowe podzbiory \( (n-1) \)-elementowego zbioru \( Z' \). Jest więc ich dokładnie \( {n-1 \choose k} \).

Każdy zaś podzbiór pierwszego typu, czyli \( A \in {\mathcal P}_k(Z) \) takie, że \( a\in A \) jest jednoznacznie wyznaczony przez swoje pozostałe \( k-1 \) elementów, czyli \( A=A'\cup \{a\} \) dla pewnego \( A' \in {\mathcal P}_{k-1}(Z') \). A zatem

\( {n \choose k} = {|{\mathcal P}_k(Z)|} = {|{\mathcal P}_k(Z')|} + {|{\mathcal P}_{k-1}(Z')|} = {n-1\choose k}+{n-1\choose k-1}. \)

Trójkąt Pascala (nazwany na cześć Blaise'a Pascala, który napisał znakomitą rozprawę o współczynnikach dwumianowych) bazuje na własności \( {n \choose k} = {n-1 \choose k-1} + {n-1 \choose k} \) i ustawia liczby w następujący sposób:

  • wiersze trójkąta numerowane są kolejnymi liczbami naturalnymi

\( n=0,1,2,\ldots \),

  • w każdym wierszy trójkąta występuje dokładnie \( n+1 \) liczb.

Są to kolejno \( {n \choose 0}, {n \choose 1}, {n \choose 2},\ldots, {n \choose n-1},{n \choose n} \)

\( 0\choose 0 \)
\( 1\choose 0 \) \( 1\choose 1 \)
\( 2\choose 0 \) \( 2\choose 1 \) \( 2\choose 2 \)
\( 3\choose 0 \) \( 3\choose 1 \) \( 3\choose 2 \) \( 3\choose 3 \)
\( 4\choose 0 \) \( 4\choose 1 \) \( 4\choose 2 \) \( 4\choose 3 \) \( 4\choose 4 \)
\( 5\choose 0 \) \( 5\choose 1 \) \( 5\choose 2 \) \( 5\choose 3 \) \( 5\choose 4 \) \( 5\choose 5 \)
... ... ... ... ...

Przesunięcie w wierszach, pozwala wyliczyć \( {n \choose k} \) jako sumę \( {n-1 \choose k-1} + {n-1 \choose k} \) dwu liczb stojących bezpośrednio nad \( {n \choose k} \):

Przykład

Napisz program drukujący trójkąt Pascala, ale z liczbami \( {n \choose k} \) modulo \( 2 \), tzn. w miejsce \( {n \choose k} \) wstaw jedynie resztę \( 0 \) lub \( 1 \) z dzielenia liczby \( {n \choose k} \) przez \( 2 \). Zaobserwuj na wydruku powstały fraktal. Wyjaśnij dlaczego tak się dzieje.

W trójkącie Pascala współczynniki o tym samym górnym indeksie, np.

\( \langle {4\choose 0},{4\choose 1},{4\choose 2},{4\choose 3},{4\choose 4} \rangle = \langle {1,4,6,4,1} \rangle \)

tworzą wiersz; natomiast współczynniki o ustalonym dolnym indeksie, np.

\( \langle {5\choose 5},{6\choose 5},{7\choose 5},{8\choose 5},\ldots \rangle = \langle {1,6,21,56,},\ldots \rangle \)

tworzą przekątną.

Trójkat Pascala ma zera na obrzeżach, a jego wiersze są symetryczne względem pionowej osi przebiegającej przez środek trójkąta. Jest to konsekwencja Obserwacji 5.1. Współczynniki dwumianowe spełniają bardzo wiele ciekawych zależności. Wymienimy tylko te najważniejsze. Zaczniemy od wzoru w postaci zwartej.

Obserwacja 5.3

Dla dowolnych \( 0\leq k\leq n \)

\( {n\choose k}=\frac{n!}{(n-k)!k!}. \)

Dowód

Podamy dwa dowody: kombinatoryczny i indukcyjny.

Dowód kombinatoryczny. Ustalmy pewien \( n \)-elementowy zbiór \( X \), i wybierajmy po kolei \( k \) różnych jego elementów, tzn. utwórzmy injekcję \( \mathbb{Z}_k X \). Z wykładu o zliczaniu zbiorów i funkcji wiemy, ze takich injekcji jest \( \frac{n!}{(n-k)!} \). W wyniku takiego wyboru, dostajemy wszakże pewien uporządkowany ciąg \( k \) elementów zbioru \( X \). Wiele takich ciągów wyznacza ten sam \( k \)-elementowy podzbiór zbioru \( X \). Ciągi takie różnią sie jedynie kolejnością elementów, a zatem jest ich tyle ile permutacji zbioru \( k \)-elemetowego, czyli \( k! \). Zatem jest dokładnie

\( \frac{n(n-1)\cdot\ldots\cdot(n-k+1)}{k!}=\frac{n!}{(n-k)!k!} \)

podzbiorów \( k \)-elementowych zbioru \( n \)-elementowego.

Dowód indukcyjny. Indukcję poprowadzimy względem górnego indeksu \( n \). Dla \( n=0 \) mamy tylko jeden interesujący nas współczynnik \( {0\choose 0}=1 \), i rzeczywiście \( \frac{0!}{(0-0)!0!}=1 \). Załóżmy zatem, że wszystkie współczynniki w \( n \)-tym wierszu spełniają wzór z tezy i rozważmy \( {n+1\choose k} \) dla \( k\in \{0,\ldots,n+1\} \). Jeśli \( k=0 \) to \( {n+1\choose k}=1=\frac{n!}{(n-0)!0!} \). Załóżmy więc, że \( k>0 \). Wtedy:

\( \begin{align*}{n+1\choose k} & ={n\choose k-1}+{n\choose k} \\ & =\frac{n!}{(n-k+1)!(k-1)!}+\frac{n!}{(n-k)!k!} \\ & =\frac{n!}{(n-k)!(k-1)!}\cdot(\frac{1}{n-k+1}+\frac{1}{k}) \\ & =\frac{n!}{(n-k)!(k-1)!}\cdot\frac{k+(n-k+1)}{(n-k+1)k} \\ & =\frac{(n+1)!}{(n-k+1)!k!}. \end{align*} \)

Przykład

\( {15\choose 3}=\frac{15!}{(15-3)!3!}=\frac{13\cdot14\cdot15}{2\cdot3}=13\cdot7\cdot5=455. \)

Przykład

Wyobraźmy sobie, że znajdujemy się w mieście zbudowanym na planie prostopadle przecinających się ulic. Powiedzmy, że znajdujemy się w punkcie \( A \) i chcemy dojść do punktu \( B \), tak jak zaznaczono na rysunku.

Łatwo zauważyć, że jest wiele najkrótszych dróg prowadzących z \( A \) do \( B \). Dla przykładu: możemy pójść \( 3 \) razy na północ i potem cały czas na wschód, ale także możemy iść najpierw \( 6 \) razy na na wschód i dopiero wtedy skręcić na północ.

Ile jest najkrótszych dróg z \( A \) do \( B \)?

Zauważmy, że każda najkrótsza droga biegnie przez dokładnie \( 9 \) skrzyżowań (licząc skrzyżowanie w punkcie \( A \) i nie licząc skrzyżowania w punkcie \( B \)). Na każdym takim skrzyżowaniu musimy podjąć decyzję, czy pójść na wschód czy na północ, przy czym musimy iść dokładnie \( 3 \) razy na północ i dokładnie \( 6 \) razy na wschód.

Zatem liczba najkrótszych dróg z \( A \) do \( B \) to liczba wyborów spośród \( 9 \) skrzyżowań, trzech, na których pójdziemy na północ, bądź \( 6 \) na których pójdziemy na wschód. A zatem liczba ta wynosi \( {9\choose 3}={9\choose 6}=94 \).

W ogólności załóżmy, że mamy kratkę \( m\times n \) i chcemy narysować najkrótszą łamaną po krawędziach kratki łączącą lewy dolny wierzchołek z prawym górnym. Na ile sposobów możemy narysować taką łamaną?
Widzimy, że musimy narysować \( m+n \) odcinków jednostkowych, z których dokładnie \( m \) jest pionowych i dokładnie \( n \) jest poziomych. Zatem jest

\( {m+n\choose m}={m+n\choose n}=\frac{(m+n)!}{m!n!} \)

sposobów połączenia dwóch przeciwległych wierzchołków.

Przykład

Ile rozwiązań ma równanie

\( x_0+x_1+x_2+x_3+x_4=7, \)

gdzie \( x_i \) są liczbami naturalnymi?

Użyjmy kratki rozważanej w poprzednim przykładzie do połączenia przeciwległych jej rogów. W kratce rozmiaru \( 4\times7 \) suma poziomych odcinków daje \( 7 \) i jest dokładnie \( 5 \) takich odcinków, po jednym na każdym poziomie. Jeśli długości tych odcinków oznaczymy odpowiednio przez \( x_0,x_1,x_2,x_3,x_4 \), to każda taka droga (łamana) na kratce ustala pewne rozwiązanie naszego równania, i każde rozwiązanie równania wyznacza dokładnie jedna drogę (łamaną). Dla przykładu - animacja obok.

Zatem istnieje \( {7+4\choose 4}=330 \) rozwiązań naszego równania.

W ogólności, równanie

\( x_0+x_1+\ldots+x_{k-1}=n, \)

ma dokładnie tyle rozwiązań w liczbach naturalnych gdzie \( x_i \), ile jest łamanych w kratce \( k \times n \), czyli \( {n+k-1\choose n}={n+k-1\choose k-1} \).

Przykład

Ile rozwiązań ma równanie

\( x_0+\ldots+x_{k-1}=n, \)

gdzie \( x_i \) są dodatnimi liczbami naturalnymi?

Zauważmy, że każde rozwiązanie tego równania z warunkami \( x_i\geq 1 \), można otrzymać z rozwiązania w liczbach naturalnych równania

\( y_0+\ldots+y_{k-1}=n-k, \)

poprzez podstawienie \( x_i=y_i+1 \). Na podstawie poprzedniego przykładu poszukiwanych rozwiązań jest zatem \( n-1 \choose k-1 \). Rozważmy \( n \) obiektów (np. punktów) ustawionych w ciągu jeden przy drugim.
Separatorem nazywamy pionową kreskę położoną pomiędzy dwoma punktami. Zatem pomiędzy \( n \) punktami mamy \( n-1 \) możliwych pozycji dla separatora. Zauważmy, że każde rozwiązanie naszego równania jednoznacznie odpowiada jednemu z możliwych rozmieszczeń \( k-1 \) separatorów wśród \( n-1 \) pozycji. Liczba punktów do pierwszego separatora to wartość \( x_0 \), liczba punktów pomiędzy pierwszym a drugim separatorem to \( x_1 \), itd., liczba punktów za ostatnim \( k-1 \)-szym separatorem to \( x_{k-1} \). Dla przykładu:

Na odwrót każde rozwiązanie \( x_0,x_1,\ldots,x_{k-1} \) naszego równania wyznacza jednoznacznie rozłożenie \( k-1 \) separatorów: pierwszy kładziemy po \( x_0 \) punktach, drugi po \( x_0+x_1 \), itd. Zatem liczba rozwiązań naszego równania to liczba rozmieszczeń \( k-1 \) separatorów na \( n-1 \) pozycjach, czyli \( {n-1\choose k-1} \).

Przykład

Rozważmy znów kratkę, tym razem kwadratową, wielkości \( n\times n \), i policzmy na ile sposobów można w jej wnętrzu narysować prostokąt tak, aby wszystkie jego boki były równoległe do krawędzi kratki?

Zauważmy, że każdy taki prostokąt jest jednoznacznie wyznaczony przez dwie linie poziome (spośród \( n+1 \)) oraz dwie linie pionowe (znów spośród \( n+1 \)). Rzeczywiście, dowolny prostokąt wyznacza dwie linie poziome i dwie pionowe (te przylegające do jego boków). I na odwrót dowolny wybór linii pozwoli nam nakreślić jednoznacznie prostokąt w kratce.

Poziome linie możemy wybrać na \( {n+1\choose 2} \) sposobów i pionowe linie także na \( {n+1\choose 2} \) sposobów. Zatem prostokąt w kratce \( n\times n \) możemy narysować na dokładnie

\( {n+1\choose 2}^2=(\frac{n(n+1)}{2})^2 \)

sposobów. W przykładowej kratce na rysunku wymiarów \( 5\times 5 \) możemy więc umieścić \( (\frac{5(5+1)}{2})^2=225 \) prostokątów.

Przechodzimy teraz do kolejnych własności współczynników dwumianowych. Rozpoczniemy od sumowania liczb na przekątnej trójkąta Pascala. Przekątna taka jest oczywiście nieskończona - sumujemy więc tylko jej początkowy fragment.

Obserwacja 5.4 [reguła sumowania po górnym indeksie]

Dla \( n,k\in\mathbb{N} \) mamy

\( \displaystyle \sum_{i=0}^{n}{i\choose k}={n+1\choose k+1}. \)

Dowód

Ustalmy \( (n+1) \)-elementowy zbiór \( X=\{x_0,\ldots,x_n\} \) Rozważając jego \( (k+1) \)-elementowe podzbiory zwracamy uwagę na element tego podzbioru, który ma największy indeks. Oczywiście jest \( i\geq k \), gdyż \( X=\{x_0,\ldots,x_{k-1}\} \) nie ma \( (k+1) \)-elementowych podzbiorów. Równie łatwo jest zauważyć, że jest dokładnie jeden podzbiór \( (k+1) \)-elementowy w którym \( x_{k} \) jest elementem o najwyższym indeksie, jest to zbiór \(\{x_0,\ldots,x_{k-1}\} \).

Policzmy teraz podzbiory zbioru \( X \), w których \( x_i \) jest elementem o największym indeksie, przy czym \( i>k \). Oprócz elementu \( x_i \) każdy taki zbiór ma dokładnie \( k \) elementów wybranych z \( i \)-elementowego zbioru \( \{x_0,\ldots,x_{i-1}\} \). Wyboru tych elementów można dokonać na \( {i\choose k} \) sposobów. Zatem podzbiorów zbioru \( X \), w których \( x_i \) jest elementem o największym indeksie jest dokładnie \( {i\choose k} \). Sumując po wszystkich możliwych \( i \), czyli \( i\in \{k,\ldots,n\} \) otrzymujemy:

\( \displaystyle \sum_{i=0}^n{i\choose k}=\sum_{i=k}^n{i\choose k}={n+1\choose k+1}. \)

Podobnie możemy sumować liczby położone na linii "prostopadłej" do przekątnych Trójkąta Pascala, czyli liczby postaci \( {n+i\choose i} \).

Obserwacja 5.5 [reguła sumowania równoległego] Dla \( n,k\in\mathbb{N} \) mamy:

\( \displaystyle \sum_{i=0}^{k}{n+i\choose i}={n+k+1\choose k}. \)

Dowód

Tożsamość tę udowodnimy wykorzystując dwukrotnie {regułę symetrii} oraz {regułę sumowania po górnym indeksie}:

\( \begin{align*}\sum_{i=0}^{k}{n+i\choose i} & =\sum_{i=0}^k{n+i\choose (n+i)-i} =\sum_{i=0}^k{n+i\choose n} =\sum_{i=n}^{n+k}{i\choose n} \\ & ={n+k+1\choose n+1}={n+k+1\choose k}. \end{align*} \)

Obserwacja 5.6 [tożsamość Cauchy'ego, splot Vandermonde'a]

Dla liczb naturalnych \( m,n,k \) mamy:

\( \displaystyle \sum_{i=0}^k{m\choose i}{n\choose k-i}={m+n\choose k}. \)

Dowód

Policzymy liczbę wszystkich wyborów \( k \) osób z grona \( m \) mężczyzn i \( n \) kobiet, czyli liczbę \( {m+n\choose k} \) na jeszcze jeden sposób. Wybierając \( k \) osób wybieramy najpierw \( i \) mężczyzn na \( {m\choose i} \) sposobów, a potem \( k-i \) kobiet na \( {n\choose k-i} \) sposobów. Pozostaje teraz zsumować po wszystkich możliwych wartościach parametru \( i \).

Dwumiany

Dwumiany


Poniższe Twierdzenie o Dwumianie wyjaśnia pochodzenie tajemniczej nazwy "współczynniki dwumianowe". Twierdzenie to często przypisuje się Pascalowi. Tymczasem było ono już znane indyjskiemu matematykowi Pingala w III wieku p.n.e..

Obserwacja 5.7 [Twierdzenie o Dwumianie]

Dla \( x,y\in \mathbb{R} \) i \( n\in \mathbb{N} \)


\( \displaystyle (x+y)^n=\sum_{i=0}^n{n\choose i}x^iy^{n-i}. \)

Dowód

Przedstawmy najpierw potęgę \( (x+y)^n \) w rozwiniętej formie iloczynu:

\( \underbrace{(x+y)\cdot\ldots\cdot(x+y)}_{n\ razy}. \)

Korzystając z rozdzielności mnożenia, wyrażenie to staje się sumą składników. Każdy taki składnik to iloczyn pewnej liczby \( x \)-ów i pewnej liczby \( y \)-ów, przy czym łącznie iloczyn taki ma \( n \) czynników. A zatem każdy składnik ma postać \( x^k y^{n-k} \). Powstaje on poprzez wybór \( k \) (spośród \( n \)) czynników w iloczynie \( (x+y)\cdot\ldots\cdot(x+y) \), z których do składnika postaci \( x^k y^{n-k} \) wchodzi \( x \) (a tym samym \( (n-k) \) składników, z których wchodzi \( y \)). Tym samym składników postaci \( x^k y^{n-k} \) jest tyle, ile \( k \)-elementowych podzbiorów zbioru \( n \)-elementowego, czyli \( x^k y^{n-k} \) pojawi się w sumie \( {n\choose k} \)-krotnie.

Twierdzenie o Dwumianie można też udowodnić za pomocą indukcji, co pozostawiamy jako ćwiczenie.

Przykład

\( \begin{align*}(a+b)^2 & =a^2+2ab+b^2, \\ (a+b)^3 & =a^3+3a^2b+3ab^2+b^3, \\ (a+b)^4 & =a^4+4a^3b+6a^2b^2+4ab^3+b^4. \end{align*} \)

Dla dowolnego \( n\geq0 \)

  • \( (1+x)^n=\sum_{i=0}^n{n\choose i}x^i \),
  • \( {n\choose 0}+{n\choose 1}+\ldots+{n\choose n}=2^n \),
  • \( {n\choose 0}-{n\choose 1}+\ldots+(-1)^n{n\choose n}=0^n \). (Uwaga: \( {0\choose0}=1=0^0 \))

Dowód

Wszystkie punkty wynikają trywialnie z Twierdzenia o Dwumianie. (Pierwszy jest oczywisty. Dla dwu pozostałych zauważmy jedynie, że \( (1+1)^n=2^n \), \( (1-1)^n=0 \).) Jednak drugi i trzeci punkt mają ładną interpretację kombinatoryczną.

Istotnie, liczba podzbiorów zbiorów \( n \) elementowego to \( 2^n \). Z drugiej strony licząc te podzbiory, możemy kolejno zliczać podzbiory \( 0,1,2,\ldots \)-elementowe - jest ich \( {n\choose 0},{n\choose 1},{n\choose 2},\ldots \).

Nieco dłuższy jest argument kombinatoryczny dla naprzemiennej sumy \( {n\choose 0}-{n\choose 1}+\ldots+(-1)^n{n\choose n}=0 \). Dla \( n=0 \) jest to oczywiste. Natomiast dla \( n>0 \) jest to równoważne stwierdzeniu, że dla \( n \)-elementowego zbioru \( X \)

  • liczba podzbiorów zbioru \( X \) o parzystej liczbie elementów jest równa liczbie podzbiorów \( X \) o nieparzystej liczbie elementów.

Załóżmy najpierw, że \( n \) jest nieparzyste. Wtedy każdy podzbiór zbioru \( X \) o parzystej liczbie elementów ma dopełnienie o nieparzystej liczbie elementów, a każdy podzbiór zbioru \( X \) o nieparzystej liczbie elementów ma dopełnienie o parzystej liczbie elementów. Ta bijektywna odpowiedniość dowodzi, że w istocie jest ich tyle samo.

Załóżmy zatem, że \( n \) jest parzyste i ustalmy \( x\in X \). Zdefiniujmy funkcję \( f:\mathcal{P}(X) \mathcal{P}(X) \), kładąc

\( f(Y)= \begin{cases} (X - Y)-\{x\} \mbox{, jeśli } {x}\not\in {Y}\subseteq {X}, \\ (X - Y)\cup\{x\} \mbox{, jeśli } {x}\in {Y}\subseteq {X}. \end{cases} \)

Zauważmy, że \( f \) jest permutacją \( \mathcal{P}(X) \). Rzeczywiście, dla różnych podzbiorów \( Y_1,Y_2\subseteq X \) mamy:

  • jeśli \( x\notin Y_1 \) i \( x\notin Y_2 \) to

\( f(Y_1)=(X-Y_1)-\{x\}=X-Y_1\neq X-Y_2=(X-Y_2)-\{x\}=f(Y_2), \)

  • jeśli \( x\in Y_1 \) i \( x\in Y_2 \) to

\( f(Y_1)=(X-Y_1)\cup\{x\}\neq(X-Y_1)\cup\{x\}=f(Y_2), \)

  • jeśli \( x\in Y_1 \) i \( x\notin Y_2 \) to \( x\in f(Y_1) \) i \( x\notin f(Y_2) \), zatem \( f(Y_1)\neq f(Y_2) \).

To dowodzi, że \( f \) jest injekcją. Dla dowodu surjektywności weźmy dowolne \( Z\subseteq X \). Jeśli \( x\in Z \) to \( f((X-Z)\cup\{x\})=Z \), jeśli zaś \( x\notin Z \) to \( f((X-Z)-\{x\})=Z \). Zatem \( f \) jest permutacją zbioru \( \mathcal{P}(X) \). Co więcej łatwo zauważyć, że dla \( Y \) o parzystej (nieparzystej) liczbie elementów \( f(Y) \) ma nieparzystą (parzystą) liczbę elementów. To dowodzi, że dla parzystego \( n \) podzbiorów \( X \) o parzystej liczbie elementów jest tyle samo co podzbiorów \( X \) o nieparzystej liczbie elementów.

Uogólniony współczynnik dwumianowy

Uogólniony współczynnik dwumianowy


Wniosek 5.8 pozwala na ustalenie wartość sumy całego wiersza w Trójkącie Pascala i wartość naprzemiennej sumy całego wiersza Trójkąta Pascala. W praktyce często pojawia się konieczność (naprzemiennego) sumowania tylko pewnego fragmentu takiego wiersza.Do tego pomocne mogłyby być sumy postaci:


\( \begin{array} {lll} \displaystyle \sum_{i=0}^m{n\choose i} & ={n\choose0}+{n\choose1}+\ldots+{n\choose m} & \qquad(*) \\ \displaystyle \sum_{i=0}^m(-1)^i{n\choose i} & ={n\choose0}-{n\choose1}+\ldots+(-1)^m{n\choose m} & \qquad(**) \end{array} \)

dla \( 0\leq m < n \).

Niestety nie jest znana żadna zwarta postać \( (*) \). Zaskakująca jest natomiast zwarta postać modyfikacji tej sumy polegającej na wymnożeniu każdego składnika przez jego odległość od środka trójkąta. Indukcyjny dowód tak powstałej zależności pozostawiamy jako ćwiczenie.

Obserwacja 5.9 Dla \( m,n\geq0 \)

\( \displaystyle \sum_{i=0}^m\brackets{\frac{n}{2}-i}\cdot{n\choose i}=\frac{m+1}{2}{n\choose m+1}. \)

Natomiast naprzemienna częściowa suma \( (**) \) wiersza Trójkąta Pascala ma postać zwartą. Wyprowadzenie takiej postaci odwołuje się do uogólnienia współczynnika dwumianowego na dowolne rzeczywiste indeksy górne, i dowolne całkowite indeksy dolne. Wykorzystuje to poznane już przy okazji rachunku róznicowego pojęcie dolnej silni \( r^{\underline{k}} \).

Uogólniony współczynnik dwumianowy \( {r\choose k} \) dla \( r\in\mathbb{R} \) i \( k\in\mathbb{Z} \) to:

\( {r\choose k} = \begin{cases} \frac{r(r-1)\cdot\ldots\cdot(r-k+1)}{k(k-1)\cdot\ldots\cdot1}=\frac{r^{\underline{k}}}{k!}, & \mbox{dla }{k\geq0}, \\ 0, & \mbox{dla }{k < 0}. \end{cases} \)

Zauważmy, że w istocie dla \( r,k\in\mathbb{N} \) wartości \( {r\choose k} \) pozostają niezmienione. Oczywiście, dla \( r\in\mathbb{N}\), interpretacja \( {r\choose k} \) jako \( k \)-elementowych liczby podzbiorów zbioru \( r \)-elementowego pozostaje w mocy. Nie jest natomiast znana sensowna kombinatoryczna interpretacja uogólnionego współczynnika dwumianowego dla pozostałych rzeczywistych wartosci \( r \). Odnotujmy tylko, że \( {r\choose k} \) jest wielomianem \( k \)-tego stopnia zmiennej \( r \). Sporo własności współczynnika dwumianowego przenosi się na wersję uogólnioną. Poniższe zostawiamy bez dowodu jako ćwiczenie.

Obserwacja 5.10

Dla \( r\in\mathbb{R}\real \) i \( k\in\mathbb{Z}\integer \) mamy

  • \( {r\choose0}=1 \),
  • \( {r\choose1}=r \),
  • \( {r\choose2}=\frac{r(r-1)}{2} \),
  • \( {-1\choose k}=(-1)^{k+1} \), dla \( k\geq0 \).

Przykład

Z uwagi na to, że w indeksie dolnym mogą występować jedynie liczby całkowite, nie ma sensu reguła symetrii \( {r \choose k}= {r \choose k-1} \). Ale nawet dla całkowitych wartości \( r \) zawodzi:

\( {-1\choose k}\neq{-1\choose -1-k}, \qquad\mbox{dla dowolnych }{k}. \)

  • jeśli \( k < 0 \), to \( {-1\choose k}\neq{-1\choose -1-k}=(-1)^{-1-k+1} \),
  • jeśli \( k\geq0 \), to \( {-1\choose k}=(-1)^{k+1}\neq 0={-1\choose -1-k} \).

Zachowana jest natomiast reguła dodawania.

Obserwacja 5.11

Dla \( r\in\mathbb{R}\real \) i \( k\in\mathbb{Z}\integer \)

\( {r\choose k}={r-1\choose k}+{r-1\choose k-1}. \)

Dowód

Dla ujemnych wartości \( k \) wszystkie współczynniki równe są \( 0 \) i tożsamość trywialnie zachodzi. Niech teraz \( r\in\mathbb{R}\real \) i \( k\geq0 \). Oczywiście różnica

\( {r\choose k}-{r-1\choose k}-{r-1\choose k-1} \)

jest wielomianem co najwyżej \( k \). Może więc, o ile nie jest wielomianem stale równym zero, mieć co najwyżej \( k \) miejsc zerowych. Z drugiej strony wiemy już, że ta różnica zeruje się dla wszystkich liczb naturalnych \( r \), więc musi być zawsze równa \( 0 \).

Uogólniona reguła dodawania z Obserwacji 5.11 pozwala rozszerzyć Trójkąt Pascala na współczynniki o ujemnych wartościach górnego indeksu.

Kolejne wartości "ujemnej części" możemy wyliczać w następującej kolejności:

\( {-1\choose 0},{-2\choose0},{-1\choose1},{-3\choose0},{-2\choose 1},{-1\choose2},\ldots. \)

Przyjrzyjmy się wartościom \( {n\choose k} \) dla ustalonego \( k \) i całkowitych wartości \( n \). Zauważalny jest pewien rodzaj symetrii między tymi wartościami. W istocie zachodzi on dla wszystkich rzeczywistych wartości górnego indeksu.

Obserwacja 5.12 [reguła negacji górnego indeksu]

Dla \( r\in\mathbb{R}\real \), \( k\in\mathbb{Z}\integer \):

\( (-1)^k{r\choose k}={k-r-1\choose k}. \)

Dowód

Policzymy wartość obu stron po uprzednim wymnożeniu przez wspólny mianownik \( k! \):

\( \begin{align*}(-1)^k r^{\underline{k}} & =(-1)^k r(r-1)\cdot\ldots\cdot(r-k+1) \\ & =(-r)(1-r)\cdot\ldots\cdot(k-1-r) \\ & =(k-r-1)^{\underline{k}}. \end{align*} \)

Znaną nam już z Obserwacji 5.5 regułę równoległego sumowania możemy uogólnić za pomocą argumentu podobnego do użytego w dowodzie Obserwacji 5.11.

Obserwacja 5.13

Dla \( r\in\mathbb{R}\real \), \( k\in\mathbb{Z}\integer \)

\( \displaystyle \sum_{i\leq k}{r+i\choose i}={r+k+1\choose k}. \)

Zauważmy, że rozważana suma jest tylko pozornie nieskończona, gdyż dla wszystkich ujemnych wartości \( i \) odpowiednie składniki zerują się. W dalszych ciągu przyjmiemy będziemy również rozważać podobne sumy "nieskończone", ale przy założeniu, że tylko skończenie wiele składników jest niezerowych.

Wyposażeni w regułę negacji górnego indeksu wracamy teraz my do naprzemiennej, cześciowej sumy wierszy w Trójkącie Pascala, czyli do \( (**) \).

Obserwacja 5.14

Dla \( r\in\mathbb{R}\real \), \( m\in\mathbb{Z}\integer \)

\( \displaystyle \sum_{i\leq m}(-1)^i{r\choose i}=(-1)^m{r-1\choose m}. \)

Dowód

\( \begin{align*}\sum_{i\leq m}(-1)^i{r\choose i} & =\sum_{i\leq m}{i-r-1\choose i} \qquad\textrm{z reguły negacji górnego indeksu} \\ & ={-m+r\choose m} \qquad\qquad\textrm{z Obserwacji 5.13} \\ & =(-1)^m{r-1\choose m}. \qquad\textrm{z reguły negacji górnego indeksu} \end{align*} \)

Przedstawimy teraz tożsamość, której później użyjemy do zliczenia pewnych, szczególnych permutacji. Zaczniemy od pomocniczej obserwacji.

Obserwacja 5.15 [przestawienie trójmianowe]

Dla \( r\in\mathbb{R}\real \), \( i,j\in\mathbb{Z}\integer \)

\( {r\choose i}{i\choose j}={r\choose j}{r-j\choose i-j}. \)

Dowód

Zauważmy, że dla \( i < j \) obie strony równości się zerują. Także dla \( i < 0 \) teza jest trywialna. Zatem możemy założyć, że \( 0\leq i < j \). Wtedy:

\( \begin{align*}{r\choose i}{i\choose j} & =\frac{r^{\underline{i}}}{i!}\cdot\frac{i^{\underline{j}}}{j!} \\ & =\frac{r(r-1\cdot\ldots\cdot(r-i+1))}{i!}\cdot\frac{i(i-1)\cdot\ldots\cdot(i-j+1)}{j!} \\ & =\frac{r(r-1)\cdot\ldots\cdot(r-j+1)}{j!}\cdot\frac{(r-j)(r-j-1)\cdot\ldots\cdot(r-i+1)}{(i-j)!} \\ & ={r\choose j}{r-j\choose i-j}. \end{align*} \)

Obserwacja 5.16 [reguła odwracania]

Dla funkcji \( f,g:\mathbb{Z}\integer\map\mathbb{R}\real \)


\( \displaystyle f(n)=\sum_{i\in\mathbb{Z}\integer}{n\choose i}(-1)^ig(i) \)
wtedy i tylko wtedy, gdy


\( \displaystyle g(n)=\sum_{i\in\mathbb{Z}\integer}{n\choose i}(-1)^if(i). \)

Dowód

Z uwagi na symetrię założeń wystarczy udowodnić tylko jedne implikację. Zakładamy zatem, że \( \displaystyle f(n)=\sum_{i\in\mathbb{Z}\integer}{n\choose i}(-1)^ig(i) \) by dostać:

\( \begin{align*}\sum_i{n\choose i}(-1)^if(i) & =\sum_{i\in\mathbb{Z}\integer}{n\choose i}(-1)^i\sum_{j\in\mathbb{Z}\integer}{i\choose j}(-1)^jg(j) \\ & =\sum_{j\in\mathbb{Z}\integer} g(j)\sum_{i\in\mathbb{Z}\mathbb{Z}\integer}{n\choose i}{i\choose j}(-1)^{i+j} \\ & =\sum_{j\in\mathbb{Z}\integer} g(j)\sum_{i\in\mathbb{Z}\mathbb{Z}\integer} {n\choose j}{n-j\choose i-j}(-1)^{i+j} \\ & =\sum_{j\in\mathbb{Z}\integer} g(j){n\choose j}\sum_{i\in\mathbb{Z}\integer} {n-j\choose i-j}(-1)^{i+j} \\ & =\sum_{j\in\mathbb{Z}\integer} g(j){n\choose j}\sum_{i\in\mathbb{Z}\integer} {n-j\choose i}(-1)^i, \end{align*} \)

gdzie druga równość wynika ze zmiana kolejności sumowania, trzecia z przestawienia trójmianowego, a ostatnia przez podstawienie \( i:=i+j \).

Z Wniosku 5.8 wiemy, że suma \( \displaystyle \sum_{i\in\mathbb{Z}\integer}{n-j\choose i}(-1)^i \) jest niezerowa (i wynosi \( 1 \)) tylko dla \( j=n \). Zatem kontynuując:

\( \begin{align*} & =\sum_{j\in\mathbb{Z}\integer} g(j){n\choose j}\sum_{i\in\mathbb{Z}\integer}{n-j\choose i}(-1)^i \\ & =g(n){n\choose n} = g(n). \end{align*} \)

Permutacje bez punktów stałych

Nieporządek na zbiorze \( X \) to permutacja \( \alpha:X\to X \) taka, że \( \alpha(x)\neq x \) dla dowolnego \( x\in X \), czyli permutacja "bez punktów stałych".

Podsilnia liczby \( n \), w skrócie \( !n \), to liczba nieporządków zbioru \( n \)-elementowego. Przyjmujemy, że \( !0=1 \), jako ze jedyna permutacja zbioru pustego - funkcja pusta - w oczywisty sposób nie ma punktów stałych.

Przykład

Zbiór \( \mathbb{Z}\integer_4=\set\{0,1,2,3\} \) ma \( 4!=24 \) permutacje, ale tylko \( 9 \) z nich to nieporządki. Oto ich lista:

\( \begin{array} {cccccccccccccc} 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 \\ \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow \\ 1 & 0 & 3 & 2 & \qquad & 1 & 2 & 3 & 0 & \qquad & 1 & 3 & 0 & 2 \\ \\ 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 \\ \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow \\ 2 & 0 & 3 & 1 & \qquad & 2 & 3 & 0 & 1 & \qquad & 2 & 3 & 1 & 0 \\ \\ 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 & \qquad & 0 & 1 & 2 & 3 \\ \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow & \qquad & \downarrow & \downarrow & \downarrow & \downarrow \\ 3 & 0 & 1 & 2 & \qquad & 3 & 2 & 0 & 1 & \qquad & 3 & 2 & 1 & 0 \end{array} \)

Obserwacja 5.17

\( \displaystyle !n = n!\sum_{i=0}^n\frac{(-1)^i}{i!} \).

Dowód

Zauważmy najpierw, że liczba permutacji \( \alpha \) zbioru \( n \)-elementowego takich, że \( \alpha(x)\neq x \) dla dokładnie \( i \) elementów \( x\in X \), wynosi \( {n\choose i}!i \). Stąd:

\( \displaystyle n!= \sum_{i=0}^n {n\choose i}!i =\sum_{i=0}^n (-1)^i{n\choose i}(-1)^i(!i). \)
Stosując teraz regułę odwracania, dostajemy:


\( \begin{align*}!n & =\sum_{i=0}^n(-1)^{n-i}{n\choose i}i! \\ & =\sum_{i=0}^n(-1)^{n-i}\frac{n!}{(n-i)!} \\ & =n!\sum_{i=0}^n\frac{(-1)^i}{i!}. \end{align*} \)

Współczynniki multimianowe

Współczynniki multimianowe


Współczynniki dwumianowe pojawiały się przy rozwinięciu dwumianu \( (x+y)^n \). Odpowiadały one wyborom dwuwartościowym. Podobnie rozważając trójmian \( (x+y+z)^n \), czy ogólnie \( (x_1+\ldots +x_r)^n \), pojawią się współczynniki odpowiadające wyborom odpowiedni trój- i \( r \)-wartościowym. Wybieranie podzbioru \( k \)-elementowego ze zbioru \( n \)-elementowego to podział zbioru na dwie części o odpowiednio \( k \) i \( n-k \) elementach. Naturalnym uogólnieniem, będzie podział zbioru \( n \)-elementowego na \( r \) części o odpowiednio \( k_1,k_2,\ldots,k_r \) elementach, przy czym oczywiście \( k_1+\ldots k_r=n \).
Współczynnik multimianowy \( {n\choose k_1,k_2\ldots,k_{r}} \), dla \( n\in\mathbb{Z}\natur \), \( r\geq2 \) oraz całkowitych \( k_1,\ldots,k_r \) takich, że \( k_1+\ldots k_r=n \), to liczba sposobów umieszczenia \( n \) obiektów w \( r \) pudełkach z odpowiednio \( k_1 \) obiektami w pierwszym pudełku, \( k_2 \) w drugim, itd., oraz \( k_r \) w \( r \)-tym. Jeśli którakolwiek z liczb \( k_i \) jest ujemna to współczynnik jest równy \( 0 \). Zauważmy, że z uwagi na symetrię dolnych indeksów, ich kolejność nie jest istotna. Oczywiście \( {n \choose k} \) to w nowej notacji \( {n \choose k,n-k} \).

Następna obserwacja wynika wprost z definicji współczynników multimianowych.

Obserwacja 5.18
Dla \( n\in\mathbb{Z}\natur \), \( k,l,k_1,\ldots,k_r\in\mathbb{Z}\integer \) takich, że \( k_1+\ldots k_r=n= k+l \) zachodzi:

  • \( {n\choose n,0,\ldots,0}=1 \),
  • \( {n\choose 1,1,\ldots,1}=1 \),
  • \( {n\choose 0,k_1,\ldots,k_r}={n\choose k_1,\ldots,k_r} \),
  • \( {n\choose l,l,0,\ldots,0}={n\choose k}={n\choose l} \),
  • \( {n\choose k_1,\ldots,k_r} = {n\choose k_{\sigma(1)},\ldots,k_{\sigma(r)}} \), dla dowolnej permutacji \( \sigma \) zbioru \( \set\{1,2,\ldots,r\} \).

Następna obserwacja wymaga krótkiego uzasadnienia.

Obserwacja 5.19

Dla \( n,k_1,\ldots,k_r\geq0 \) takich, że \( k_1+\ldots+k_r=n \)

\( {n\choose k_1,\ldots,k_r} ={n\choose k_1}{n-k_1\choose k_2}{n-(k_1+k_2)\choose k_3} \cdot\ldots\cdot{n-(k_1+\ldots+k_{r-1})\choose k_r}. \)

Dowód

Rozmieszczenie \( n \)-obiektów w \( r \) pudełkach po \( k_i \) w każdym, polega na:

  • wyborze \( k_1 \) obiektów spośród wszystkich \( n \) i umieszczeniu ich w pierwszym pudełku - możemy to uczynić na \( {n\choose k_1} \) sposobów,
  • wyborze \( k_2 \) obiektów spośród pozostałych \( n-k_1 \) i umieszczeniu ich w drugim pudełku - możemy to uczynić na \( {n-k_1\choose k_2} \) sposobów,
  • wyborze \( k_3 \) obiektów spośród pozostałych \( n-(k_1+k_2) \)

i umieszczeniu ich w trzecim pudełku - możemy to uczynić na \( {n-(k_1+k_2)\choose k_3} \) sposobów,

  • ...
  • wyborze \( k_r \) obiektów spośród pozostałych \( n-(k_1+\ldots+k_{r-1})=k_r \) i umieszczeniu ich w ostatnim pudełku - możemy to uczynić na \( {n-(k_1+\ldots+k_{r-1})\choose k_r}={k_r\choose k_r}=1 \) sposobów.

Zatem wszystkich możliwych rozmieszczeń zgodnie z wymogami z definicji współczynnika multimianowego jest dokładnie \( {n\choose k_1}{n-k_1\choose k_2}{n-(k_1+k_2)\choose k_3} \cdot\ldots\cdot{n-(k_1+\ldots+k_{r-1})\choose k_r} \).

Wniosek 5.20

Dla \( n,k_1,\ldots,k_r\geq0 \) takich, że \( k_1+\ldots+k_r=n \)

\( {n\choose k_1,\ldots,k_r}=\frac{n!}{k_1!\cdot\ldots\cdot k_r!}. \)

Dowód

\( \begin{align*}{n\choose k_1,\ldots,k_r} & ={n\choose k_1}{n-k_1\choose k_2}{n-(k_1+k_2)\choose k_3}\cdot\ldots\cdot{n-(k_1+\ldots+k_{r-1})\choose k_r} \\ & =\frac{n!}{(n-k_1)!k_1!}\cdot\frac{(n-k_1)!}{(n-(k_1+k_2))!k_2!} \cdot\ldots\cdot\frac{(n-(k_1+\ldots+k_{r-1}))!}{(n-(k_1+\ldots+k_r))!k_r!} \\ & =\frac{n!}{k_1!\cdot\ldots\cdot k_r!\cdot(n-(k_1+\ldots+k_r))!} \\ & =\frac{n!}{k_1!\cdot\ldots\cdot k_r!}. \end{align*} \)

Przykład

Ile liczb możemy ułożyć zapisując w dowolnej kolejności \( 11 \) cyfr: \( 1,1,3,4,5,5,5,6,7,7,9 \)?

Zauważmy, że każda taka liczba powstaje przez wybór dwu pozycji dla cyfry \( 1 \), jednej dla cyfry \( 3 \), jednej dla cyfry \( 4 \), trzech dla cyfry \( 5 \), jednej dla cyfry \( 6 \), dwu dla cyfry \( 7 \) i wreszcie jednej pozycji dla cyfry \( 9 \). Zatem \( 11 \) pozycji to nasze obiekty, które rozmieszczamy w siedmiu pudełkach etykietowanych cyframi: \( 1,3,4,5,6,7,9 \). Zatem z definicji współczynnika multimianowego mamy:

\( {11\choose 2,1,1,3,1,2,1}=\frac{11!}{2!\cdot3!\cdot2!}=1663200. \)

Przykład

Rozważmy raz jeszcze podróż w mieście o ulicach na planie siatki. Tym razem jednak... \( 3 \)-wymiarową wersję. Mamy więc do dyspozycji trójwymiarową, prostopadłościenną kratownicę \( a\times b\times c \). Na ile sposobów można połączyć przeciwległe wierzchołki prostopadłoscianu najkrótszą możliwą łamaną Zauważmy, że każda najkrótsza możliwa łamana składa się z dokładnie \( a+b+c \) odcinków jednostkowych. Przy czym dokładnie \( a \) z nich jest poziomych, \( b \) pionowych i \( c \) idzie w głąb. Zatem najkrótszych łamanych jest tyle co rozmieszczeń \( a+b+c \) odcinków (obiekty) w \( 3 \) pudełkach: "poziomy", "pionowy", "w głąb" tak, by w było ich odpowiednio \( a,b \) i \( c \). Z definicji współczynnika multimianowego mamy zatem:

\( {a+b+c\choose a,b,c}=\frac{(a+b+c)!}{a!b!c!}, \)

łamanych.

Kratka z rysunku o wymiarach \( 3\times4\times2 \) ma zatem: \( {9\choose3,4,2}=\frac{9!}{3!\cdot4!\cdot2!}=420 \) interesujących nas łamanych.

Współczynniki multimianowe także zachowują pewną regułę dodawania.

Obserwacja 5.21

Dla \( n>0 \), całkowitych \( k_1,\ldots,k_r \) takich, że \( k_1+\ldots+k_r=n \)

\( {n\choose k_1}={n-1\choose k_1-1,k_2,\ldots,k_r}+{n-1\choose k_1,k_2-1,\ldots,k_r}+\ldots+{n-1\choose k_1,k_2,\ldots,k_r-1}. \)

Dowód

Ponieważ \( n>0 \), możemy wybrać i ustalić ulubiony obiekt \( x \). Możemy go umieścić w jednym z \( r \) pudełek. Jeśli jednak umieścimy go w pierwszym, to pozostałe \( n-1 \) obiektów musimy rozłożyć do \( r \) pudeł zgodnie z warunkami wyjściowymi, ale do pierwszej szuflady mamy włożyć już \( 1 \) obiekt mniej (\( k_1-1 \) a nie \( k_1 \)). Rozłożenia tego możemy dokonać na \( {n\choose k_1-1,k_2,\ldots,k_r} \). Analogicznie gdy \( x \) umieścimy w drugim pudle, to pozostałe przedmioty rozkładamy w pudłach odpowiednio po \( k_1, k_2-1, k_3,\ldots,k_r \). Po przesumowaniu po numerach pudła, w którym jest \( x \) dostajemy nasz wzór.

Jako ćwiczenie pozostawiamy dowód następującego uogólnienia wzoru dwumiennego:

Obserwacja 5.22


\( \displaystyle (x_1+\ldots +x_r)^n = \sum_{k_1+\ldots+k_r=n} {n \choose k_1,\ldots,k_r} x_1^{k_1} x_2^{k_2}\ldots x_r^{k_r}. \)

Permutacje i podziały

Permutacje

Permutacje


Rozważając permutacje zbiorów \( n \)-elementowych wystarczy ograniczyć się do permutacji zbioru \( \mathbb{Z}_n \). Każdy inny taki zbiór różni się bowiem od \( \mathbb{Z}_n \) jedynie nazwami elementów.

Poznaliśmy już algorytm rozkładu permutacji na rozłączne cykle. Przystąpmy do klasyfikacji permutacji względem struktury takiego rozkładu. Przypomnijmy, że rozkład permutacji na cykle jest jednoznaczny z dokładnością do kolejności, tzn. jeśli \( \sigma_1 \circ \ldots \circ \sigma_k = \pi_1 \circ \ldots \circ \pi_l \) są dwoma rozkładami tej samej permutacji na cykle to \( k=l \) i \( {\{ {\sigma_1,\ldots,\sigma_k} \} } = {\{ {\pi_1,\ldots,\pi_k} \} } \).

Pierwszym ważnym niezmiennikiem dla permutacji \( \pi\in S_n \) jest:

Liczba cykli permutacji \( \pi\in S_n \) zdefiniowana jako liczba cykli w jamimkolwiek rozkładzie \( \pi \) na cykle.

Jednoznaczność rozkładu na cykle pozwala nam zdefiniować również drugi ważny niezmiennik.

Typ permutacji \( \pi\in S_n \) to wektor \( (\alpha_1,\ldots,\alpha_n) \), gdzie \( \alpha_i \) jest liczbą \( i \)-elementowych cykli w rozkładzie \( \pi \). Zazwyczaj typ permutacji zapisujemy jako \( [1^{\alpha_1}2^{\alpha_2}\ldots n^{\alpha_n}] \), przy czym często pomijamy te wartości, dla których \( \alpha_i=0 \).

Przykład

Dla permutacji \( \pi\in S_7 \) zadanej przez

\( \begin{array} {c|c|c|c|c|c|c|c} n & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline \pi(n) & 3 & 6 & 2 & 4 & 0 & 5 & 1 \end{array} \)

mamy:

  • \( \pi=(0,3,4)(1,6)(2)(4)=(0,3,4)(1,6) \),
  • \( \pi \) jest typu \( [1^22^13^1] \).

Z samej definicji typu permutacji natychmiast wynika:

Obserwacja 6.1

Dla \( \pi\in S_n \) typu \( (\alpha_1,\ldots,\alpha_n) \) zachodzi

  • \( \alpha_1+\ldots+\alpha_n=c(\pi) \),
  • \( \alpha_1+2\alpha_2+\ldots+n\alpha_n=n \).

Obserwacja 6.2

Liczba permutacji w \( S_n \) typu \( (\alpha_1,\ldots,\alpha_n) \) to

\( \frac{n!}{1^{\alpha_1}2^{\alpha_2}\ldots n^{\alpha_n}\alpha_1!\ldots\alpha_n!}. \)

Dowód

Potraktujmy permutację typu \( (\alpha_1,\ldots,\alpha_n) \), jako uzupełnienie elementami z \( \mathbb{Z}_n \) następującego wzorca:

\( \underbrace{(\bullet)\ldots(\bullet)}_{\alpha_1\ razy} \underbrace{(\bullet\bullet)\ldots(\bullet\bullet)}_{\alpha_2\ razy}\ldots\ldots \underbrace{(\bullet\ldots\bullet)}_{\alpha_n\ razy\ (\alpha_n\leq 1)}. \)

W miejsce \( k \) kropek możemy wstawić \( k \)-elementów na \( k! \) sposobów. Jednak w ten sposób otrzymamy wielokrotnie te same permutacje. Każdy cykl \( i \)-elementowy możemy zadać na \( i \) sposobów (rozpoczynając od różnych elementów). Dodatkowo, zwróćmy uwagę, że w naszym wzorcu dopuszczamy różną kolejność cykli o tej samej długości. \( \alpha_i \) takich samych cykli \( i \)-elementowych może być wybranych na \( \alpha_i! \) sposobów. Podsumowując, aby otrzymać liczbę permutacji typu \( \alpha_1,\ldots,\alpha_n) \) musimy, dla wszystkich \( i\in{\{ {1,\ldots,n} \} } \), podzielić \( n! \) przez długość każdego cyklu z osobna, tzn. dla każdego cyklu długości \( i \) podzielić przez \( i \), oraz przez silnię liczby \( i \)-elementowych cykli. Zatem szukana liczba to \( \frac{n!}{1^{\alpha_1}2^{\alpha_2}\ldots n^{\alpha_n}\alpha_1!\ldots\alpha_n!} \).

Przykład

Lista typów wszystkich permutacji z \( S_3 \):

\( \begin{array} {|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & \textrm{rozklad na cykle} & \textrm{typ} \\ \hline \pi_0 & 0 & 1 & 2 & (0)(1)(2) & [1^3] \\ \pi_1 & 1 & 0 & 2 & (0,1)(2) & [1^12^1] \\ \pi_2 & 0 & 2 & 1 & (0)(12) & [1^12^1] \\ \pi_3 & 1 & 2 & 0 & (0,1,2) & [3^1] \\ \pi_4 & 2 & 0 & 1 & (0,2,1) & [3^1] \\ \pi_5 & 2 & 1 & 0 & (0,2)(1) & [1^12^1] \\ \hline \end{array} \)

Liczba permutacji z \( S_3 \) o kolejnych typach:

\( \begin{array} {|c|l|} \hline \hbox{\rm typ} & \hbox{\rm liczba permutacji} \\ \hline 1^3 & \frac{3!}{1^3\cdot3!}=1 \\ 1^1 2^1 & \frac{3!}{1^1\cdot2^1\cdot1!\cdot1!}=3 \\ 3^1 & \frac{3!}{3^1\cdot1!}=2 \\ \hline \end{array} \)


Jak zobaczymy za chwilę, typ permutacji jest zachowywany przez pewną bardzo ważną operację algebraiczną.

Permutacja sprzężona do permutacji \( \pi,\rho\in S_n \) to każda permutacja postaci \( \sigma\pi\sigma^{-1} \), gdzie \( \sigma\in S_n \).

Oczywiście, jeśli \( \sigma\pi\sigma^{-1}=\rho \) to \( \pi=\sigma^{-1}\rho\sigma \). Zatem dwuargumentowa relacja sprzężenia jest symetryczna. Łatwo udowodnić (jako ćwiczenie), że relacja ta jest również zwrotna i przechodnia oraz, że jedyną permutacją sprzeżoną do permutacji identycznościowej \( id \) jest ona sama.

Obserwacja 6.3

Permutacje \( \pi,\rho\in S_n \) mają ten sam typ wtedy i tylko wtedy, gdy są sprzężone.

Załóżmy najpierw, że \( \pi \) i \( \rho \) są sprzężone, czyli że \( \sigma\pi\sigma^{-1}=\rho \) dla pewnego \( \sigma \). Rozważmy jakiś cykl \( (x_0,\ldots,x_{k-1}) \) permutacji \( \pi \). Wtedy \( (\sigma(x_0),\ldots,\sigma(x_{k-1})) \) jest cyklem permutacji \( \rho \). Istotnie, dla \( i = 0,\ldots,k-1 \) mamy:

\( \rho(\sigma(x_i))=\sigma\pi\sigma^{-1}\sigma(x_i)=\sigma\pi(x_i)=\sigma(x_{i+1}), \)

i podobnie:

\( \rho(\sigma(x_{k-1})=\sigma\pi\sigma^{-1}\sigma(x_{k-1})=\sigma\pi(x_{k-1})=\sigma(x_0). \)

Każdy zatem cykl permutacji \( \pi \) wyznacza jednoznacznie cykl permutacji \( \rho \) o tej samej liczności. Tym samym \( \pi \) i \( \rho \) są tego samego typu.

Dla dowodu w drugą stronę załóżmy, że \( \pi \) i \( \rho \) mają ten sam typ. Wtedy możemy określić bijekcję przyporządkowującą każdemu cyklowi permutacji \( \pi \) pewien cykl \( \rho \) o tej samej długości. Po rozkładzie obu permutacji \( \pi,\rho \) na rozłączne cykle i nasza bijekcja między cyklami przyporzadkowuje cyklowi \( (x_0,\ldots,x_{k-1}) \) cykl \( (y_0,\ldots,y_{k-1}) \), definiujemy \( \sigma \in S_n \) kładąc \( \sigma(x_i)=y_i \). Łatwo sprawdzić, że wtedy \( \sigma\pi\sigma^{-1}=\rho \).

Transpozycja to permutacja w \( S_n \) (dla \( n\leq2 \)) typu \( [1^{n-2}2^1] \). Innymi słowy, transpozycja dokonuje tylko jednego przestawienia dwóch elementów ze zbioru \( n \)-elementowego.

Przykład

Dla permutacji \( \pi\in S_7 \) zadanej przez

\( \begin{array} {|c||c|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline \pi(n) & 0 & 1 & 5 & 3 & 4 & 2 & 6 \\ \hline \end{array} \)

mamy:

  • \( \pi=(0)(1)(25)(3)(4)(6)=(25), \)
  • \( \pi \) ma typ \( [1^52^1] \),
  • \( \pi \) jest transpozycją.

Waga transpozycji wynika z faktu, że dowolna permutacja jest złożeniem transpozycji. Ponieważ, dowolna permutacja jest rozkładalna na cykle wystarczy pokazać, że każdy cykl jest złożeniem transpozycji.

Obserwacja 6.4

Dowolny cykl z \( S_n \) jest złożeniem \( n-1 \) transpozycji.

Dowód

Cykl \( \pi=(x_0,\ldots,x_{n-1}) \) można przedstawić tabelką:

\( \begin{array} {|c||c|c|c|c|c|c|} \hline n & x_0 & x_1 & x_2 & \ldots & x_{n-2} & x_{n-1} \\ \hline \pi(n) & x_1 & x_2 & x_3 & \ldots & x_{n-1} & x_0 \\ \hline \end{array} \)

Zauważmy, że \( \pi \) jest następującym złożeniem transpozycji

\( (x_0,x_{n-1})(x_0,x_{n-2})\ldots(x_0,x_2)(x_0,x_1). \)

Rzeczywiście \( x_0 \) przejdzie:

  • w pierwszej transpozycji \( (x_0,x_1) \) w \( x_1 \),
  • a następne transpozycje już go nie przesuną.

Podobnie \( x_1 \) przejdzie

  • pierwszą transpozycją \( (x_0,x_1) \) w \( x_0 \),
  • drugą \( (x_0,x_2) \) w \( x_2 \),
  • a następne transpozycje już go nie przesuną.

Ogólnie, \( x_i \) (dla \( i\in{\{ {1,\ldots,n-2} \} } \))

  • pozostanie na swoim miejscu przez pierwsze \( i-1 \) transpozycji

\( (x_0,x_1),(x_0,x_2),\ldots,(x_0,x_{i-1}) \),

  • przejdzie \( i \)-tą transpozycją w \( x_0 \),
  • przejdzie \( (i+1) \)-szą transpozycją w \( x_{i+1} \),
  • po czym zostanie już nienaruszone.

Natomiast \( x_{n-1} \) zostanie przesunięte dopiero ostatnią transpozycją i przyjmie wartość \( x_0 \).

Wniosek 6.5

Dowolna permutacja jest złożeniem transpozycji. W szczególności każda permutacja typu \( [1^{\alpha_1}2^{\alpha_2}\ldots n^{\alpha_n}] \) ma rozkład na co najwyżej \( \alpha_2+2\alpha_3+\ldots(n-1)\alpha_n \) transpozycji.

Przykład

Dla permutacji \( \pi\in S_7 \) zadanej przez

\( \begin{array} {|c||c|c|c|c|c|c|c|} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\ \hline \pi(n) & 2 & 3 & 5 & 4 & 6 & 0 & 1 \\ \hline \end{array} \)

mamy

  • \( \pi=(0,2,5)(1,3,4,6) \),
  • \( (1,3,4,6)=(1,6)(1,4)(1,3) \),
  • \( (0,2,5)=(0,5)(0,2) \),
  • \( \pi=(0,5)(0,2)(1,6)(1,4)(1,3)=(1,6)(1,4)(1,3)(0,5)(0,2) \).

Zauważmy, że składanie transpozycji na rozłącznych zbiorach dwuelementowych jest przemienne. Na ogół jednak, ponieważ transpozycje nie działają na zbiorach rozłącznych, to nie możemy ich dowolnie przestawiać. W naszym przykładzie transpozycje generujące dwa różne cykle są parami rozłączne, więc ich kolejność jest bez znaczenia. Między innymi dlatego istnieje wiele rozkładów na transpozycje. Ale nie tylko dlatego - mamy bowiem również \( \pi=(1,6)(2,5)(0,2)(3,6)(0,5)(4,6)(2,5) \).

Nie mamy zatem jednoznaczności rozkładu na transpozycje, tak jak to miało miejsce przy rozkładzie na cykle. Nawet liczba transpozycji nie musi być ta sama w różnych rozkładach na transpozycje. Zobaczymy jednak, że nie zmienia się parzystość liczby transpozycji w rozkładzie.

Obserwacja 6.6

Jeśli \( \pi,\tau \in S_n \) i \( \tau \) jest transpozycją, to

\( c(\tau\pi)=c(\pi)\pm 1=c(\pi\tau). \)

Dowód

Udowodnimy tylko pierwszą równość. Załóżmy, że \( \tau=(a,b) \) tzn., \( \tau(a)=b \), \( \tau(b)=a \) i \( \tau(x)=x \) dla wszystkich pozostałych elementów \( x \in\mathbb{Z}_n \). Rozumowanie dzielimy na dwa przypadki:

  • \( a \) i \( b \) są w tym samym cyklu \( (a,x,\ldots,y,b,w,\ldots,z) \) permutacji \( \pi \).

Wtedy \( \tau\pi=(a,x,\ldots,y)(b,w,\ldots,z)\ldots \), gdzie ostatni wielokropek oznacza pozostałe cykle permutacji \( \pi \). Zatem w tym przypadku mamy \( c(\tau\pi)=c(\pi)+1 \).

  • \( a \) i \( b \) są w różnych cyklach permutacji \( \pi=(a,x\ldots,y)(b,\ldots,z)\ldots \).

Wtedy \( \tau\pi=(a,x,\ldots,y,b,\ldots,z)\ldots \). Mamy więc \( c(\tau\pi)=c(\pi)-1 \).

Obserwacja 6.7

Jeśli permutacja jest przedstawialna jako złożenia \( r \) i \( r' \) transpozycji, to liczby \( r \) i \( r' \) albo są obie parzyste albo obie nieparzyste.

Dowód

Niech \( \tau_{r-1}\ldots\tau_0=\tau_{r'-1}'\ldots\tau_0' \) będą dwoma rozkładami tej samej permutacji \( \pi \in S_n \) na transpozycje. Na mocy Obserwacji 6.6 mamy:

\( c(\tau_{r-1}\ldots\tau_0) = c(\tau_{r-2}\ldots\tau_0) \pm 1 = c(\tau_{r-3}\ldots\tau_0) \pm 1 \pm 1 = \ldots = c(\tau_0) \underbrace{\pm 1 \pm 1 \ldots \pm 1}_{r-1 \ razy} \)

Niech \( t \) opisuje iloć dodawań jedynki w powyższej formule. Wtedy \( r-1-t \) to liczba odejmowań jedynki. Transpozycja \( \tau_0 \) ma \( 1 \) cykl \( 2 \)-elementowy i \( n-2 \) cykli \( 1 \)-elementowych, czyli \( c(\tau_0)=1+(n-2)=n-1 \). Zatem

\( c(\pi)=c(\tau_{r-1}\ldots\tau_0)=n-1+t-(r-1-t)=n-r+2t \)
dla pewnego \( t \). Analogicznie

\( c(\pi)=c(\tau'_{r'-1}\ldots\tau'_0)=n-1+t'-(r'-1-t')=n-r'+2t' \)

dla pewnego \( t' \). Porównując obydwa wyniki otrzymujemy

\( r-r'=2a-2a', \)

czyli różnica \( r-r' \) jest zawsze parzysta.

Obserwacja 6.7 pozwala zdefiniować parzystość permutacji.

Permutacja parzysta to permutacja będąca złożeniem parzystej liczby transpozycji.

Permutacja nieparzysta to permutacja będąca złożeniem nieparzystej liczby transpozycji.

Znak permutacji \( \pi \) to \( \mbox{\sf sgn}(\pi)=(-1)^r \), gdzie \( r \) jest liczbą transpozycji, na które można rozłożyć \( \pi \).

Obserwacja 6.8

Dla dowolnych \( \pi,\sigma\in S_n \)

  • \( \mbox{\sf sgn}(id_{\mathbb{Z}_n})=1 \),
  • \( \mbox{\sf sgn}(\sigma\pi)=\mbox{\sf sgn}(\pi)\cdot\mbox{\sf sgn}(\sigma) \),
  • \( \mbox{\sf sgn}(\pi)=\mbox{\sf sgn}(\pi^{-1}) \),

Dowód

Identyczność jest złożeniem zera transpozycji. Drugi punkt wynika natychmiast z Obserwacji 6.6. Dla dowodu trzeciego odnotujmy tylko, że \( \mbox{\sf sgn}(\pi)\cdot\mbox{\sf sgn}(\pi^{-1}) =\mbox{\sf sgn}(\pi\pi^{-1})=\mbox{\sf sgn}(id_{\mathbb{Z}_n})=1 \).

Przykład

Dla relaksu rozważmy łamigłówkę logiczną rozgrywaną na kwadracie \( 3 \times 3 \). Wszystkie pola, poza prawym dolnym, wypełnione są kwadratowymi klockami z różnymi literami B,O,R,L,Y,M,E,P. Prawe dolne pole jest puste - oznaczamy go przez "". Celem gry jest ułożenie napisu "PROBLEMY_". Dopuszczalnym ruchem jest przesunięcie klocka sąsiadującego z pustym polem na to właśnie pole. Czy z pozycji "BORLYMEP_" można ułożyć napis "PROBLEMY_"?

Zauważmy, że pozycja startowa i końcowa mają puste pole "-" w tym samym miejscu. To oznacza, że wykonując roszadę bloków musimy wykonać tyle samo przesunięć do góry co w dół i tyle samo przesunięć w prawo co w lewo. To z kolei oznacza, że potencjalna ilość ruchów wiodących do rozwiązania musi być parzysta. Tłumacząc nasz problem na język permutacji odnotujmy, że:

  • mamy dokonać permutacji \( \pi\in S_9 \):

\( \begin{array} {ccccccccc} B & O & R & L & Y & M & E & P & \_ \\ \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \downarrow \\ P & R & O & B & L & E & M & Y & \_ \end{array} \)

  • każdy ruch zgodny z regułami gry to jakaś transpozycja wybranych klocków,

przy czym nie wszystkie transpozycje są dopuszczalne.

Zauważmy, że

  • rozwiązanie musi być wykonane przy pomocy parzystej liczby ruchów, zatem każda permutacja dokonująca żądanej rearanżacji klocków jest parzysta
  • \( \pi=(B,P,Y,L)(O,R)(M,E)(\_) \),
  • Wniosek 6.5 daje wtedy jednak, że \( \pi \) jest złożeniem \( 3+1+1=5 \) transpozycji, czyli \( \pi \) jest permutacją nieparzystą.

Ponieważ nie można złożyć nieparzystej permutacji z parzystej liczby transpozycji, nasza łamigłówka nie jest możliwa do rozwiązania.

Obserwacja 6.9

Dla \( n\geq2 \) w \( S_n \) jest dokładnie tyle samo permutacji parzystych co nieparzystych.

Dowód

Niech \( n\geq2 \) i \( \pi_0,\ldots,\pi_{k-1} \) będzie listą wszystkich parzystych permutacji w \( S_n \). Ponadto, rozważmy transpozycję \( \tau=(01)(2)\ldots(n) \). Wtedy oczywiście permutacje \( \tau\pi_0,\tau\pi_1,\ldots,\tau\pi_{k-1} \) są parami różne, gdyż jeśli \( \tau\pi_i=\tau\pi_j \) to \( \pi_i=\tau^{-1}\tau\pi=\tau^{-1}\tau\pi_j=\pi_j \). Ponadto dowolna \( \tau\pi \) jest nieparzysta, bo \( \mbox{\sf sgn}(\tau\pi)=\mbox{\sf sgn}(\tau)\mbox{\sf sgn}(\pi)=(-1)\cdot1=-1. \) Pozostaje pokazać, że dowolna nieparzysta permutacja \( \rho \) jest na liście \( \tau\pi_0,\tau\pi_1,\ldots,\tau\pi_{k-1} \). Ponieważ \( \mbox{\sf sgn}(\tau^{-1}\rho)=\mbox{\sf sgn}(\tau^{-1})\mbox{\sf sgn}(\rho)=(-1)\cdot(-1)=1, \) to \( \tau^{-1}\rho \) jest permutacją parzystą, a zatem jest postaci \( \pi_i \) dla pewnego \( i \). To zaś oznacza, że


\( \rho=\tau\tau^{-1}\rho=\tau\pi_i, \)
czyli \( \rho \) jest na liście \( \tau\pi_0,\tau\pi_1,\ldots,\tau\pi_{k-1} \). Uzyskana bijekcja \( \pi_i \mapsto \tau\pi_i \) dowodzi naszej obserwacji.

Podziały

Podziały


Liczby Stirlinga

Liczba Stirlinga dla cykli \( [\begin{array} {c}n \\ k\end{array} ] \) (często nazywana liczbą Stirlinga pierwszego rodzaju) to liczba permutacji zbioru \( n \)-elementowego złożonych z dokładnie \( k \) cykli, czyli takich permutacji \( \pi \in S_n \), że \( c(\pi)=k \). Przyjmujemy, że \( [\begin{array} {c}0 \\ 0\end{array} ]=1 \), a więc że jest jedna permutacja zbioru pustego bez cykli (funkcja pusta). Z powodów technicznych, w przekształceniach rachunkowych wygodnie jest mieć zdefiniowaną wartość \( [\begin{array} {c}n \\ k\end{array} ] \) dla wszystkich \( k\in\mathbb{Z} \). Przyjmujemy, że \( [\begin{array} {c}n \\ k\end{array} ]=0 \) dla \( k < 0 \).

Przykład

Lista permutacji \( \mathbb{Z}_4 \) złożonych z \( 2 \) cykli:

\( \begin{array} {ccc} (0,1,2)(3) & (0,2,3)(1) & (0,1)(2,3) \\ (0,2,1)(3) & (0,3,2)(1) & (0,2)(1,3) \\ (0,1,3)(2) & (1,2,3)(0) & (0,3)(1,2) \\ (0,3,1)(2) & (1,3,2)(0) \end{array} \)

  • Mamy \( 11 \) permutacji \( \mathbb{Z}_4 \) złożonych z dwóch cykli, zatem \( [\begin{array} {c}4 \\ 2\end{array} ]=11 \).

Obserwacja 6.10

Dla \( n\in\mathbb{N} \)

  • \( [\begin{array} {c}n \\ 0\end{array} ]=0 \), dla \( n>0 \)
  • \( [\begin{array} {c}n \\ 1\end{array} ]=(n-1)! \),
  • \( [\begin{array} {c}n \\ n-1\end{array} ]={n\choose2} \),
  • \( [\begin{array} {c}n \\ n\end{array} ]=1 \),
  • \( [\begin{array} {c}n \\ k\end{array} ]=0 \), dla \( k>n \)

Dowód

Pierwszy punkt jest natychmiastowa konsekwencją faktu, że nie można podzielić niepustego zbioru na \( 0 \) części (cykli).

Liczba \( [\begin{array} {c}n \\ 1\end{array} ] \) opisuje permutacje o jednym cyklu. Każda taka permutacja jest zadana wzorcem \( (\underbrace{\bullet,\ldots,\bullet}_{n\ pozycji}) \). Wzorzec taki może być wypełniony \( n \)-elementami na \( n! \) sposobów. Ale ten sam cykl ma wiele opisów różniących się jedynie przesunięciem. Zatem każdy \( n \)-elementowy cykl może być zapisany według takiego wzorca na \( n \) sposobów, czyli liczba cykli na zbiorze \( n \)-elementowym to \( \frac{n!}{n}=(n-1)! \), co dowodzi punktu drugiego.

Liczba \( [\begin{array} {c}n \\ n-1\end{array} ] \) opisuje permutacje o \( n-1 \) cyklach. Permutacja taka musi wiec być typu \( [1^{n-2}2^1] \), czyli jest transpozycją. Każda transpozycja jest jednoznacznie wyznaczona przez dwuelementowy zbiór elementów, które ze sobą zamienia. Zatem transpozycji jest dokładnie tyle co podzbiorów \( 2 \)-elementowych, czyli \( {n\choose2} \), co dowodzi punktu trzeciego.

Dla dowodu punktu czwartego zauważmy jedynie, że jedyną permutacją o \( n \) cyklach na zbiorze \( n \)-elementowym jest identyczność.

Równie łatwo jest stwierdzić, że zbiór \( n \)-elementowy nie może być podzielony na więcej niż \( n \) niepustych części (mających stanowić cykle).

Liczby Stirlinga dla cykli, podobnie jak współczynniki dwumianowe, można generować używając zależności rekurencyjnej. Na jej podstawie można zbudować Trójkąt Stirlinga dla cykli.

Obserwacja 6.11

Dla \( 0 < k\leq n \)

\( [\begin{array} {c}n \\ k\end{array} ]=(n-1)[\begin{array} {c}n-1 \\ k\end{array} ]+[\begin{array} {c}n-1 \\ k-1\end{array} ]. \)

Dowód

Niech \( x \) będzie wyróżnionym i ustalonym elementem \( n \)-elementowego zbioru \( X \). Permutacje zbioru \( X \) o \( k \) cyklach można podzielić na dwa typy, w których:

  • \( x \) stanowi jednoelementowy cykl,
  • \( x \) jest w cyklu co najmniej \( 2 \)-elementowym.

W pierwszym przypadku pozostałe \( n-1 \) elementów zbioru \( X \) muszą uformować \( k-1 \) cykli, co jest możliwe na \( [\begin{array} {c}n-1 \\ k-1\end{array} ] \) sposobów. W drugim przypadku, po usunięciu elementu \( x \) permutacje badanego typu wciąż będą mieć \( k \) cykli. Jest ich zatem tyle, co permutacji \( (n-1) \)-elementowego zbioru o \( k \) cyklach, czyli \( [\begin{array} {c}n-1 \\ k\end{array} ] \). Element \( x \) może rozbudować każdą permutację zbioru \( X-{\{ {x} \} }n-1 \) sposobów (wchodząc do cyklu jako następnik jednego z \( n-1 \) elementów). Zatem permutacji drugiego typu jest dokładnie \( (n-1)[\begin{array} {c}n-1 \\ k\end{array} ] \).

W Trójkącie Stirlinga dla cykli, \( n \)-ty wiersz zawiera liczby permutacji zbioru \( n \)-elementowego o kolejno \( 0,1,\ldots,n \) cyklach. Zatem suma wszystkich tych wartości to liczba wszystkich permutacji zbioru \( n \)-elementowego, czyli \( n! \). Dostajemy stąd natychmiast:

Obserwacja 6.12

Dla \( n\in\mathbb{N} \)

\( \displaystyle\sum_{i=0}^n[\begin{array} {c}n \\ i\end{array} ]=n! \)


Ciekawy jest nastepujacy związek liczb Stirlinga dla cykli z liczbami harmonicznymi \( H_n \).

Obserwacja 6.13

Dla \( n\in\mathbb{N} \)

\( \displaystyle \sum_{i=0}^ni[\begin{array} {c}n \\ i\end{array} ]=n!H_n. \)

Dowód

Dla \( n=0 \) tożsamość jest oczywista, a dla \( n>0 \) przybiera postać \( \displaystyle \sum_{i=1}^ni[\begin{array} {c}n \\ i\end{array} ]=n!H_n \) Pokażemy że obydwie liczby z naszej obserwacji to sumaryczna liczba cykli we wszystkich permutacjach zbioru \( n \)-elementowego, tzn. \( \displaystyle \sum_{\sigma\in S_n} c(\sigma) \).

  • Permutacji o \( i \) cyklach jest dokładnie \( [\begin{array} {c}n \\ i\end{array} ] \). W sumie permutacje o \( i \) cyklach mają więc \( i\cdot[\begin{array} {c}n \\ i\end{array} ] \) cykli, czyli \( \displaystyle \displaystyle \sum_{\sigma\in S_n} c(\sigma)= \sum_{i=1}^ni[\begin{array} {c}n \\ i\end{array} ] \).
  • Zliczymy najpierw \( i \)-elementowe cykle zbudowane z elementów zbioru \( n \)-elementowego. Każdy taki cykl jest wyznaczony przez wypełnienie wzorca \( (\underbrace{\bullet,\ldots,\bullet}_{i\ pozycji}) \), ale z dokładnością do przesunięcia. Wypełnień jest oczywiście tyle, ile injekcji postaci \( \mathbb{Z}_i\longrightarrow\mathbb{Z}_n \),

czyli \( n\cdot(n-1\cdot\ldots\cdot(n-i+1))=n^{\underline{i}} \). Zatem zliczanych cykli \( i \)-elementowych jest dokładnie \( \frac{n^{\underline{i}}}{i} \) .

Każdy cykl \( i \)-elementowy występuje w dokładnie \( (n-i)! \) permutacjach zbioru \( n \)-elementowego, gdyż tyle jest permutacji pozostałych \( n-i \) elementów. Zatem sumaryczna liczba cykli we wszystkich permutacjach zbioru \( n \)-elementowego wynosi:

\( \displaystyle \sum_{\sigma\in S_n} c(\sigma) =\sum_{i=1}^n\frac{n^{\underline{i}}}{i}(n-i)! =\sum_{i=1}^n\frac{n!}{i}=n!H_n. \)

W liczbach Stirlinga \( [\begin{array} {c}n \\ k\end{array} ] \) dla cykli wypełnialiśmy wzorce postaci:


\( \underbrace{(\bullet,\ldots,\bullet)(\bullet,\ldots,\bullet) \ldots (\bullet,\ldots,\bullet)}_{k \ cykli, \ w \ sumie \ o \ n \ miejscach} \)
w sposób injektywny i z dokładnością do:

  • kolejności cykli,
  • przesunięć cyklicznych w każdym z \( k \) cykli.

Jeśli zupełnie zaniedbamy kolejność elementów w cyklach, dostaniemy wzorzec:


\( \underbrace{{\{ {\bullet,\ldots,\bullet} \} }{\{ {\bullet,\ldots,\bullet} \} } \ldots {\{ {\bullet,\ldots,\bullet} \} }}_{k \ zbiorów, \ w \ sumie \ o \ n \ miejscach}, \)

czyli podział zbioru \( n \)-elementowego na \( k \) parami rozłącznych podzbiorów. W podziale, podzbiory takie nazywamy blokami. Przypomnijmy, że podział zbioru \( X \) na \( k \) bloków wyznacza relację równoważności na zbiorze \( X \) o \( k \) klasach równoważności.

Liczba Stirlinga dla podziałów\( \{\begin{array} {c}n \\ k\end{array} \} \) (często nazywana liczbą Stirlinga drugiego rodzaju) to liczba podziałów zbioru \( n \)-elementowego na dokładnie \( k \) bloki. Znów przyjmujemy, że \( \{\begin{array} {c}0 \\ 0\end{array} \}=1 \) oraz \( \{\begin{array} {c}n \\ k\end{array} \}=0 \) dla \( k < 0 \).

Przykład

Lista podziałów \( \mathbb{Z}_4 \) na dwa bloki:

\( \begin{array} {cc} {\{ {0,1,2} \} }{\{ {3} \} } \} }{\{ {2,3} \} } \\ {\{ {0,1,3} \} }{\{ {2} \} } \} }{\{ {1,3} \} } \\ {\{ {0,2,3} \} }{\{ {1} \} } \} }{\{ {1,2} \} } \\ {\{ {1,2,3} \} }{\{ {0} \} } \end{array} \)

  • Mamy \( 7 \) podziałów zbioru \( \mathbb{Z}_4 \) na dwa bloki,

zatem \( \{\begin{array} {c}4 \\ 2\end{array} \}=7 \).

Obserwacja 6.14

Dla \( n,k\in\mathbb{N} \)

  • \( \{\begin{array} {c}n \\ k\end{array} \} \leq [\begin{array} {c}n \\ k\end{array} ] \),
  • \( \{\begin{array} {c}n \\ 0\end{array} \}=0 \), dla \( n>0 \),
  • \( \{\begin{array} {c}n \\ 1\end{array} \}=1 \), dla \( n>0 \),
  • \( \{\begin{array} {c}n \\ 2\end{array} \}=2^{n-1}-1 \), dla \( n>0 \),
  • \( \{\begin{array} {c}n \\ n-1\end{array} \}={n\choose2} \),
  • \( \{\begin{array} {c}n \\ n\end{array} \}=1 \),
  • \( \{\begin{array} {c}n \\ k\end{array} \}=0 \), dla \( k>n \).

Dowód

Pierwszy punkt jest oczywisty po zauważeniu, że w liczbach Stirlinga dla podziałów zliczamy te same obiekty co w liczbach Stirlinga dla cykli, ale po zaniedbaniu kolejności elementów.

Drugi punkt to stwierdzenie, że niepusty zbiór nie może zostać podzielony na \( 0 \) bloków.

Trzeci punkt orzeka, że jest tylko jeden podział niepustego zbioru na jeden blok - blok ten musi być całym dzielonym zbiorem.

Dla dowodu czwartego załóżmy, że \( \vert X\vert=n \) i niech \( x\in X \). Zauważmy, że podział na dwa bloki jest zdeterminowany jednym z tych bloków - drugi to po prostu dopełnienie pierwszego. Niech więc blokiem determinującym podział, będzie blok zawierający \( x \). Element \( x \) może stanowić blok z dowolnym podzbiorem pozostałego \( (n-1) \)-elementowego zbioru \( X-{\{ {x} \} } \) poza podzbiorem pełnym, gdyż wtedy drugi blok byłby pusty. Zatem jest dokładnie \( 2^{n-1}-1 \) możliwości wyboru bloku dla \( x \), i tym samym tyleż jest podziałów \( X \).

Dowody pozostałych trzech własności można przeprowadzić jak dla liczb Stirlinga dla cykli.

Liczby Stirlinga dla podziałów, podobnie jak współczynniki dwumianowe, czy liczby Stirlinga dla cykli można generować używając zależności rekurencyjnej. Na jej podstawie można zbudować Trójkąt Stirlinga dla podziałów.

Obserwacja 6.15

Dla \( 0 < k\leq n \)

\( \{\begin{array} {c}n \\ k\end{array} \} =k\{\begin{array} {c}n-1 \\ k\end{array} \}+\{\begin{array} {c}n-1 \\ k-1\end{array} \}. \)

Dowód

Niech, jak zwykle, \( \vert X\vert=n \) i niech \( x\in X \) będzie ustalonym elementem. Znów, podziały zbioru \( X \) na \( k \) bloków można podzielić na dwa typy:

  • \( {\{ {x} \} } \) stanowi blok jednoelementowy,
  • \( x \) jest w bloku co najmniej dwuelementowym.

Każdy podział pierwszego typu jest jednoznacznie wyznaczony przez \( (n-1) \)-elementowego zbioru \( X-{\{ {x} \} } \) na \( k-1 \) bloków. Jest ich więc dokładnie \( \{\begin{array} {c}n-1 \\ k-1\end{array} \} \). W drugim przypadku pozostałe elementy dzielone są wciąż na \( k \) bloków. Można taki podział wykonać na \( \{\begin{array} {c}n-1 \\ k\end{array} \} \) sposobów. Element \( x \) może rozszerzyć każdy taki podział zbioru math>X</math> do podziału zbioru \( X \) na \( k \) sposobów wchodząc do któregoś z \( k \) bloków. Zatem jest dokładnie \( k\{\begin{array} {c}n-1 \\ k\end{array} \} \) podziałów drugiego typu.

Obserwacja 6.15 pozwala na szybką konstrukcję Trójkąta Stirlinga dla podziałów.

Kilka wykładów wcześniej wskazaliśmy liczbę funkcji, liczbę injekcji i liczbę bijekcji między zbiorami skończonymi. Przemilczeliśmy liczbę surjekcji, nie mając jeszcze wtedy wystarczających narzędzi do ich zliczenia. Zauważmy jednak, że każda surjekcja \( X \longrightarrow Y \) wyznacza podział zbioru \( X \) na \( \vert Y\vert \) bloków. Nie dziwi więc następujący związek z liczbami Stirlinga dla podziałów.

Obserwacja 6.16

Dla skończonych zbiorów \( X,Y \) liczba surjekcji \( X\longrightarrow Y \) wynosi \( \vert Y\vert!\cdot\{\begin{array} {c}\vert X\vert \\ \vert Y\vert\end{array} \} \).

Dowód

Niech \( Y={\{ {y_0,\ldots,y_{m-1}} \} } \). Jak już zauważyliśmy, surjekcja postaci \( f:X \longrightarrow Y \) wyznacza pewien podział zbioru \( X \) dodatkowo poetykietowany elementami zbioru \( X \) na \( m=\vert Y\vert \) bloków \( f^{-1}({\{ {y_0} \} }), \ldots, f^{-1}({\{ {y_{m-1}} \} }) \). Nieetykietowanych podziałów jest oczywiście \( \{\begin{array} {c}\vert X\vert \\ \vert Y\vert\end{array} \} \). Ponieważ każdy podział może być poetykietowany na \( \vert Y\vert! \) sposobów, możemy zakończyć dowód.

Obserwacja 6.17

Dla \( n,k\in\mathbb{N} \)

\( \displaystyle \{\begin{array} {c}n \\ k+1\end{array} \}=\frac{1}{(k+1)!}\sum_{0 < i_0 < \ldots < i_{k-1} < n}{n\choose i_{k-1}}{i_{k-1}\choose i_{k-2}}\ldots{i_1\choose i_0}. \)

Dowód

Niech \( \vert X\vert=n \). Pojedynczy składnik \( {n\choose i_{k-1}}{i_{k-1}\choose i_{k-2}}\ldots{i_1\choose i_0} \) rozważanej sumy to liczba wyborów ciągu zbiorów \( X\supsetneq A_{k-1}\supsetneq\ldots\supsetneq A_1\supsetneq A_{0} \), odpowiednio \( i_{k-1}>\ldots>i_1>i_0 \) elementowych. Rzeczywiście \( A_{i_{k-1}}\subsetneq X \) możemy wybrać na \( {n\choose i_{k-1}} \) sposobów, \( A_{i_k-2}\subsetneq A_{i_k-1} \) na \( {i_{k-1}}\choose i_{k-2} \) sposobów itd. Każdy taki ciąg zbiorów odpowiada jednoznacznie ciągowi \( k+1 \) bloków \( \langle B_0,\ldots,B_k \rangle \), gdzie \( B_0=A_0, B_1=A_1-A_0,\ldots,B_{k-1}=A_{k-1}-A_{k-2},B_k=X-A_{k-1} \). W podziale nie jest jednak istotne uporządkowanie bloków \( B_0,\ldots,B_k \), co oznacza, że powinniśmy przejść od ciągu \( \langle B_0,\ldots,B_k \rangle \) do rodziny bloków \( {\{ {B_0,\ldots,B_k} \} } \), wydzielając tym samym każdy składnik sumy przez \( (k+1)! \). Tak wydzielona suma to nic innego jak liczba podziałów zbioru \( n \)-elementowego na \( k+1 \) bloków, czyli \( \{\begin{array} {c}n \\ k+1\end{array} \} \).

Przykład

\( \begin{align*} \{\begin{array} {c}n \\ 3\end{array} \} & =\frac{1}{3!}\sum_{0 < j < i < n}{n\choose i}{i\choose j} =\frac{1}{6}\sum_{0 < i < n}{n\choose i}\sum_{0 < j < i}{i\choose j} \\ & =\frac{1}{6}\sum_{0 < i < n}{n\choose i}(2^i-2) =\frac{1}{6}\sum_{0 < i < n}{n\choose i}2^i-\frac{1}{3}\sum_{0 < i < n}{n\choose i} \\ & =\frac{1}{6}(3^n-1-2^n)-\frac{1}{3}(2^n-2) =\frac{3^{n-1}+1}{2}-2^{n-1} \end{align*} \)

Liczby Bella

W Trójkącie Pascala \( n \)-ty wiersz sumuje się do
liczby podzbiorów zbioru \( n \)-elementowego, czyli do \( 2^n \). W Trójkąta Stirlinga dla cykli \( n \)-ty wiersz sumuje się do liczby permutacji zbioru \( n \)-elementowego, czyli do \( n! \). Zajmiemy się teraz sumą \( n \)-tego wiersza Trójkąta Stirlinga dla podziałów. Oczywiście suma taka to liczba wszystkich podziałów zbioru \( n \) elementowego, lub inaczej liczby wszystkich relacji równoważności na zbiorze \( n \)-elementowym.

Liczba Bella \( B_n \)

to liczba podziałów zbioru \( n \)-elementowego, czyli

\( \displaystyle B_n=\sum_{i=0}^n\{\begin{array} {c}n \\ i\end{array} \}. \)

Lista kilku pierwszych liczb Bella:

\( \begin{array} {|c||c|c|c|c|c|c|c|c|c|c|c|c} \hline n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & \ldots \\ \hline B_n & 1 & 1 & 2 & 5 & 15 & 52 & 203 & 877 & 4140 & 21147 & 115975 & \ldots \\ \hline \end{array} \)

Liczby Bella spełniają piękną zależność rekurencyjną:

Obserwacja 6.18


\( \displaystyle B_{n+1}=\sum_{i=0}^n{n\choose i}B_i. \)

Dowód

Wybierzmy i ustalmy w \( (n+1) \)-elementowym zbiorze \( X \) pewien element \( x\in X \). Policzmy teraz ile jest podziałów zbioru \( X \) takich, że blok zawierający \( x \) ma dokładnie \( i+1 \) elementów. Oczywiście pozostałe \( i \) elementów tego bloku może zostać wybranych ze zbioru \( X-{x} \) na \( {n\choose i} \) sposobów. Każdy taki blok możemy rozbudować do podziału zbioru \( X \) poprzez podzielenie pozostałych \( n-i \) na bloki. Podział taki jest oczywiście możliwy na \( B_{n-i} \) sposobów, skąd sumując po wszystkich możliwych wartościach \( i \) otrzymujemy

\( \displaystyle B_{n+1}=\sum_{i=0}^n{n\choose i}B_{n-i}=\sum_{i=0}^n{n\choose i}B_i. \)

Bazy przestrzeni wielomianów

Przestrzeń wektorowa \( \mathbb{R}[x] \) wszystkich wielomianów jednej zmiennej rzeczywistej \( x \) ma naturalną bazę złożoną z jednomianów

\( 1,x,x^2,x^3,\ldots \)

W różnicowym odpowiedniku Twierdzenia Taylora widzieliśmy (bez dowodu), że każdy wielomian \( p(x) \) można przedstawić jako kombinację liniową \( \displaystyle p(x)=\sum_{i=0}^k\frac{(\Delta^i p)(0)}{i!}x^{\underline{i}} \) dolnych silni \( x^{\underline{i}} \). Pokażemy teraz, że rzeczywiście zarówno dolne silnie


\( 1,x^{\underline{1}},x^{\underline{2}},x^{\underline{3}},\ldots \)
jak i górne silnie


\( 1,x^{\overline{1}},x^{\overline{2}},x^{\overline{3}},\ldots \)

stanowią bazy dla przestrzeni wielomianów \( \mathbb{R}[x] \), oraz że współczynniki przejścia między tymi trzeba bazami są ściśle powiązane z liczbami Stirlinga.

W dalszych rozważaniach rezygnujemy z ograniczeń na indeksy sumowania. Zakładamy jedynie, że przebiegają one liczby całkowite pamiętając, że \( [\begin{array} {c}n \\ k\end{array} ] \) i \( \{\begin{array} {c}n \\ k\end{array} \} \) zerują się dla \( k < 0 \) oraz \( k>n \).

Obserwacja 6.19

Dla \( x\in\mathbb{R} \) oraz \( n\in\mathbb{N} \)

\( \displaystyle x^{\overline{n}}=\sum_i[\begin{array} {c}n \\ i\end{array} ]x^i. \)


Dowód <

Dla dowodu indukcyjnego zauważmy najpierw, że przy \( n=0 \) mamy \( x^{\overline{0}}=1=[\begin{array} {c}0 \\ 0\end{array} ] \). W kroku indukcyjnym korzystamy tym razem z faktu, że \( x^{\overline{n}}=x\cdot x^{\overline{n-1}}+(n-1)x^{\overline{n-1}} \), dostając

\( \begin{align*} x^{\overline{n}} & =x\sum_i[\begin{array} {c}n-1 \\ i\end{array} ]x^i+(n-1)\sum_i[\begin{array} {c}n-1 \\ i\end{array} ]x^i \\ & =\sum_i[\begin{array} {c}n-1 \\ i-1\end{array} ]x^i+\sum_i(n-1)[\begin{array} {c}n-1 \\ i\end{array} ]x^i \\ & =\sum_i ([\begin{array} {c}n-1 \\ i-1\end{array} ]+(n-1)[\begin{array} {c}n-1 \\ i\end{array} ])x^i \\ & =\sum_i[\begin{array} {c}n \\ i\end{array} ]x^i. \end{align*} \)

Obserwacja 6.20

Dla \( x\in\mathbb{R} \) oraz \( n\in\mathbb{N} \)

\( \displaystyle x^n=\sum_i\{\begin{array} {c}n \\ i\end{array} \}x^{\underline{i}}. \)

Dowód

Zaprezentujemy dwa dowody. Pierwszy - indukcyjny - pracuje dla dowolnego \( x\in\mathbb{R} \), a drugi - kombinatoryczny - w oczywisty sposób jedynie dla \( x\in\mathbb{N} \).

Dla dowodu indukcyjnego zauważmy najpierw, że przy \( n=0 \) mamy \( x^0=1=\{\begin{array} {c}0 \\ 0\end{array} \} \). W kroku indukcyjnym korzystamy z faktu, że \( x\cdot x^{\underline{i}}=x^{\underline{i+1}}+ix^{\underline{i}} \) dostając:

\( \begin{align*} x^n=x\cdot x^{n-1} & =x\sum_i \{\begin{array} {c}n-1 \\ i\end{array} \}x^{\underline{i}} \\ & =\sum_i \{\begin{array} {c}n-1 \\ i\end{array} \}(x^{\underline{i+1}}+ix^{\underline{i}}) \\ & =\sum_i \{\begin{array} {c}n-1 \\ i-1\end{array} \}x^{\underline{i}}+\sum_i \{\begin{array} {c}n-1 \\ i\end{array} \}ix^{\underline{i}} \\ & =\sum_i (i\{\begin{array} {c}n-1 \\ i\end{array} \}+\{\begin{array} {c}n-1 \\ i-1\end{array} \})x^{\underline{i}}. \end{align*} \)

Dla dowodu kombinatorycznego załóżmy, że \( x\in\mathbb{N}-{\{ {0} \} } \) i niech \( X \) będzie zbiorem \( x \)-elementowym. Oczywiście \( x^n \) to liczba funkcji postaci \( \mathbb{Z}_n \longrightarrow X \). Każda taka funkcja przyjmuje \( i=1,2,\ldots,x \) wartości. Policzmy więc ile funkcji \( \mathbb{Z}_n \longrightarrow X \) przyjmuje dokładnie \( i \) wartości. Ciąg \( i \) różnych wartości ze zbioru \( x \)-elementowego można wybrać na \( x(x-1)\cdot\ldots\cdot(x-i+1)=x^{\underline{i}} \) sposobów. Z każdym takim \( i \)-elementowym ciągiem możemy stowarzyszyć jakiś podział zbioru \( \mathbb{Z}_n \) na \( i \) bloków, tzn. kolejnym blokom tego podziału (uporządkowanym najpierw według najmniejszych elementów w blokach) przyporządkowujemy \( i \)-tą wartość wybranego ciągu. Tym sposobem mamy \( \{\begin{array} {c}n \\ i\end{array} \}n^{\underline{i}} \) funkcji \( \mathbb{Z}_n \longrightarrow X \) przyjmujących dokładnie \( i \) wartości. Sumując po wszystkich możliwych \( i \) otrzymujemy żądaną równość.

Wskazaliśmy współczynniki przejścia z bazy górnych silni w jednomiany oraz z jednomianów w dolne silnie. Nierówności


\( x^{\underline{n}} < x^n < x^{\overline{n}} \)

zachodzące dla \( x>n>1 \), sugerują, że niektóre współczynniki przejścia z górnych silni do jednomianów oraz z jednomianów do dolnych silni muszą być ujemne. Wskazując te współczynniki wykorzystamy prosty fakt:


\( \begin{align*} (-x)^{\overline{n}} & =(-x)(-x+1)\cdot\ldots\cdot(-x+n-1) \\ & =(-1)^nx(x-1)(x-2)\cdot\ldots\cdot(x-n+1) \\ & =(-1)^nx^{\underline{n}}. \end{align*} \)

Obserwacja 6.21

Dla \( x\in\mathbb{R} \) oraz \( n\in\mathbb{N} \)

\( \begin{align*} x^n & =\sum_i\{\begin{array} {c}n \\ i\end{array} \}(-1)^{n-i}x^{\overline{i}}, \\ x^{\underline{n}} & =\sum_i[\begin{array} {c}n \\ i\end{array} ](-1)^{n-i}x^i. \end{align*} \)

Dowód

Udowodnimy jedynie pierwszą równość, pozostawiając analogiczny dowód dla drugiej jako ćwiczenie.

\( \begin{align*} x^n=(-1)^n(-x)^n & =(-1)^n\sum_i\{\begin{array} {c}n \\ i\end{array} \}(-x)^{\underline{i}} \\ & =(-1)^n\sum_i\{\begin{array} {c}n \\ i\end{array} \}(-1)^ix^{\overline{i}} \\ & =\sum_i\{\begin{array} {c}n \\ i\end{array} \}(-1)^{n-i}x^{\overline{i}}. \end{align*} \)


Używając trzech powyższych obserwacji zauważmy, że przechodząc od jednomianów do górnych silni i z powrotem, a także niezależnie, od jednomianów do dolnych silni i z powrotem, otrzymujemy następujące zależności:

Obserwacja 6.22

Dla \( m,n\in\mathbb{N} \)


\( \begin{align*} \sum_i (-1)^{m-i}\{\begin{array} {c}m \\ i\end{array} \}[\begin{array} {c}i \\ n\end{array} ] & = \{ \begin{array} {ll} 0, & \mbox{\rm dla \ } m\neq n, \\ 1, & \mbox{\rm dla \ } m=n, \end{array} . \\ \sum_i (-1)^{m-i}[\begin{array} {c}m \\ i\end{array} ]\{\begin{array} {c}i \\ n\end{array} \} & = \{ \begin{array} {ll} 0, & \mbox{\rm dla \ } m\neq n, \\ 1, & \mbox{\rm dla \ } m= n. \end{array} . \end{align*} \)

Klasyfikacja podziałów

Rozważaliśmy wiele różnych sposobów podziału obiektów na różne kategorie. Czasem kolejność kategorii odgrywała rolę, a czasem nie. Czasem kolejność obiektów danej kategorii odgrywała rolę, a czasem nie. Interesowała nas zawsze liczba konfiguracji podziałowych powstałych w wyniku takich podziałów obiektów na kategorie. Liczba ta zależy oczywiście od tego czy obiekty, bądź kategorie, są rozróżnialne.

Obiekty są rozróżnialne jeśli zamiana miejscami dwu obiektów z różnych kategorii daje nową konfigurację.

Kategorie są rozróżnialne jeśli wzajemna wymiana wszystkich obiektów między dwiema kategoriami prowadzi do nowej konfiguracji.

Zobaczymy, że im mniej rozróżnialności, tym zliczanie staje się trudniejsze.

Często poza całkowitą liczbą konfiguracji istotna jest także liczba konfiguracji z wyłącznie niepustymi kategoriami. Gdy więc \( n \) obiektów klasyfikujemy w \( k \) kategorii pytamy o liczbę konfiguracji (klasyfikacji) o co najwyżej \( k \) kategoriach oraz o dokładnie \( k \) kategoriach.

Większość wariantów klasyfikacji \( n \) obiektów na \( k \) kategorii już przeanalizowaliśmy. Podsumujmy zatem:

  • obiekty rozróżnialne, kategorie rozróżnialne:

Klasyfikacja rozróżnialnych obiektów na rozróżnialne kategorie to po prostu funkcja ze zbioru obiektów w zbiór kategorii. Liczba funkcji ze zbioru \( n \)-elementowego w zbiór \( k \)-elementowy wynosi \( k^n \).

Klasyfikacja na dokładnie \( k \) kategorie to funkcja surjektywna. Zgodnie z Obserwacją 6.16, liczba takich klasyfikacji to, \( k!\{\begin{array} {c}n \\ k\end{array} \} \).

  • obiekty rozróżnialne, kategorie nierozróżnialne:

Nierozróżnialność kategorii oznacza, że nie jest ważna nazwa kategorii (tzn. wartość funkcji dla danego obiektu), a jedynie jej zawartość. Mamy więc do czynienia z podziałem zbioru obiektów na co najwyżej \( k \) bloków. Liczba takich konfiguracji to suma liczb Stirlinga dla podziałów \( \displaystyle \sum_{i=1}^{k}\{\begin{array} {c}n \\ i\end{array} \} \).

Oczywiście gdy wszystkie kategorie są niepuste, to zbiór obiektów jest podzielony na dokładnie \( k \) bloków. Liczba takich konfiguracji to \( \{\begin{array} {c}n \\ k\end{array} \} \).

  • obiekty nierozróżnialne, kategorie rozróżnialne:

Nierozróżnialność obiektów skutkuje tym, że ważna jest jedynie ich liczba w danej kategorii. A zatem konfiguracja to podział liczby \( n \) na sumę \( n=x_0+\ldots+x_{k-1} \) liczb naturalnych \( x_i \). Liczba rozwiązań takiego równania została policzona w jednym z przykładów wykładu o współczynnikach dwumianowych i wynosi \( {n+k-1\choose k-1} \).

I znów, gdy kategorii, czyli składników w rozkładzie \( n=x_0+\ldots+x_{k-1} \), ma być dokładnie \( k \), zliczamy jedynie rozwiązania spełniające dodatkowo \( x_0,\ldots,x_{k-1}\geq 1 \). Zgodnie z innym przykładem analizowanym w wykładzie o współczynnikach dwumianowych liczba takich rozwiązań to \( {n-1\choose k-1} \).

  • obiekty nierozróżnialne, kategorie nierozróżnialne:

To jedyny jeszcze nie analizowany przez nas przypadek. Załóżmy najpierw, że wszystkie kategorie są niepuste. Ponieważ są one nierozróżnialne, możemy dodatkowo założyć, że w rozkładzie liczby \( n \) na sumę \( n=x_0+\ldots+x_{k-1} \) zachodzi \( x_0\leq x_1 \leq \ldots \leq x_{k-1} \). Liczba \( P(n,k) \) takich rozkładów będzie przedmiotem ostatniej części wykładu. Jednak już teraz możemy powiedzieć, że nie jest znana żadna zwarta postać tych liczb. Co więcej, nawet aby otrzymać ciekawe zależności rekurencyjne dla liczb podziałów, potrzebne jest nowe, silne narzędzie: funkcje tworzące.

Oczywiście, gdy dopuszczamy puste kategorie liczba konfiguracji jest sumą \( \displaystyle \sum_{i=1}^k P(n,k) \).

Podziały liczby

Podziały liczby


Podział liczby \( n \) na \( k \) składników to przedstawienie \( n \) w postaci sumy


\( a_0+\ldots+a_{k-1}=n, \)

gdzie \( a_0 \leq a_1 \leq \ldots \leq a_{k-1}\leq 1 \).

Liczbę podziałów \( n \) na \( k \) składników oznaczamy przez \( P(n,k) \).

Przykład

Lista podziałów \( 7 \) na \( 4 \) składniki:


\( 1+1+1+4,\qquad 1+1+2+3,\qquad 1+2+2+2. \)

  • \( P(7,4)=3 \).

Obserwacja 6.23

Dla \( n,k\in\mathbb{N}-{\{ {0} \} } \)

  • \( P(n,1)=1 \),
  • \( P(n,2)=\lfloor \frac{n}{2}\rfloor \),
  • \( P(n,n)=1 \),
  • \( P(n,k)=0 \), dla \( n < k \)
  • \( \frac{1}{k!}{n-1\choose k-1}\leq P(n,k)\leq{n-1\choose k-1} \).

Dowód

Uzasadnimy jedynie ostatni punkt. Dla dowodu ograniczenia górnego liczby \( P(n,k) \) zauważmy, że interesujące nas podziały liczby \( n \) są rozwiązaniami równania \( n=x_0+\ldots+x_{k-1} \), a tych, jak już wiemy, jest dokładnie \( {n-1\choose k-1} \).

Z drugiej strony dowolny podział liczby \( n \) generuje co najwyżej \( k! \) rozwiązań równania \( n=x_0+\ldots+x_{k-1} \) (generuje dokładnie \( k! \), jeśli składniki podziału są parami różne) i wszystkie rozwiązania mogą zostać w ten sposób osiągnięte. To oczywiście daje ograniczenie dolne.

Ograniczenie górne dla \( P(n,k) \) można poprawić:

Obserwacja 6.24


\( P(n,k) \leq \frac{1}{k!}{n+{k\choose2}-1\choose k-1}. \)

Dowód

Dla podziału \( n=a_0+\ldots+a_{k-1} \) definiujemy

\( b_i=a_i+(k-1-i),\qquad\mbox{ dla }{0}\leq{i}\leq{k-1}. \)

Zauważmy, że wszystkie liczby \( b_i \) są różne oraz

\( b_0+\ldots+b_{k-1}=n+\frac{k(k-1)}{2}. \)

A zatem podziały liczby \( n \) na \( k \) składników stoją w bijektywnej odpowiedniości z podziałami liczby \( n+{k\choose 2} \) na \( k \) parami różnych składników. Każdy podział \( n+{k\choose2} \) na \( k \) parami różnych składników generuje dokładnie \( k! \) rozwiązań równania


\( x_0+\ldots+x_{k-1}=n+{k\choose 2}, \)

gdzie \( x_i>0 \). Wiemy zaś, że to ostatnie równanie posiada co najwyżej \( {n+{k\choose2}-1\choose k-1} \) rozwiązań. A zatem ciągów \( \langle b_i \rangle \), a tym samym podziałów \( n \) na \( k \) składników, jest co najwyżej \( \frac{1}{k!}{n+{k\choose2}-1\choose k-1} \).

Ostatnia obserwacja pozwala na opisanie granicznego zachowania liczb \( P(n,k) \) przy ustalonym \( k \).

Wniosek 6.25

Dla dowolnego \( k \)

\( \displaystyle \lim_{narrow\infty}\frac{P(n,k)}{n^{k-1}}=\frac{1}{k!(k-1)!}. \)
Dość skutecznym narzędziem do badania podziałów liczb naturalnych są tzw. diagramy Ferrersa.
Diagram Ferrersa dla podziału \( n=a_0+\ldots+a_{k-1} \) składa się z \( k \) wierszy o odpowiednio \( a_{i-1} \) elementach.

\( 2+5+6+6+9=28. \)

\( 1+3+3+3=10. \)

Użyteczność diagramów Ferrersa ilustrują dowody kilku nastepnych obserwacji.

Obserwacja 6.26

Liczba \( P(n,k) \) jest równa liczbie podziałów liczby \( n \) (na dowolną liczbę składników) o największym składniku równym \( k \).

Dowód

Odwracając o \( 90 \) stopni diagram podziału liczby \( n \) na \( k \) składników otrzymamy diagram podziału liczby \( n \), którego największy składnik równy jest \( k \). Oczywiście jest to odwzorowanie bijektywne, gdyż odwracając z powrotem o \( 90 \) stopni otrzymamy ten wyjściowy diagram.

Obserwacja 6.27

Liczba \( P(n+k,k) \) jest równa liczbie podziałów \( n \) na co najwyżej \( k \) składników.

Dowód

Wycinając ostatnią kolumnę w diagramie podziału liczby \( n+k \) na \( k \) składników otrzymamy podział liczby \( n \) na co najwyżej \( k \) składników. Łatwo zauważyc, że jest to odwzorowanie bijektywne.

Ćwiczenia

Ćwiczenia 1: indukcja, rekurencja, podłogi i sufity

Zadanie 1

Wyrazić przez podłogi i sufity moc zbioru \(\mathbb{Z}\cap[a,b]\), \(\mathbb{Z}\cap[a,b)\), \(\mathbb{Z}\cap(a,b]\), \(\mathbb{Z}\cap(a,b)\), dla dowolnych rzeczywistych a, b.

Zadanie 2

Czy dla każdego rzeczywistego \(x\ge 1\) zachodzi równość \(\lceil\lg\lceil x\rceil\rceil = \lceil\lg x\rceil\)? Co jeśli wszystkie/niektóre sufity zamienimy na podłogi?

Zadanie 3

Spróbuj udowodnić przez indukcję nierówność \(\sum_{k=1}^n 1/k^2\le 2\). Jeśli nie wychodzi, to spróbuj wzmocnić tezę.

Zadanie 4

Udowodnij przez indukcję dolne oszacowanie dla liczb harmonicznych: \(H_{2^n}\ge \frac{n}{2}+1\).

Zadanie 5

Udowodnij przez indukcję nierówność Bernoulli'ego:
\[
1+nh\le (1+h)^n\ ,
\]
która zachodzi dla rzeczywistego \(h\ge-1\) i naturalnego \(n\).

Zadanie 6

Do problemu wież z Hanoi dokładamy dodatkowe ograniczenie: nie wolno przekładać krążka bezpośrednio między słupkami A i C. Ile teraz potrzeba ruchów? W oryginalnym problemie pojawia się \(2^n\) konfiguracji krążków na słupkach, podczas gdy wszystkich jest \(3^n\). Jak rozpoznać, czy dana konfiguracja wystąpi podczas przekładania krążków w oryginalnym problemie?

Ćwiczenia 2: sumy

Zadanie 1

Oblicz sumy
(a) \( \sum_{0\leq i < n} (-1)^i i^3 \)
(b) \(\sum_{0 < i < n}i\,(i-1) 3^i\)
(c) \(\sum_{k=2}^n \frac{1}{(k-1)k(k+1)}\)

Zadanie 2

Oblicz następujące sumy podwójne:
(a) \(\sum_{1\le j\le i \le n} 2^i \)
(b) \(\sum_{1\le i\le j\le n}(j-i) \)
(c) \(\sum_{1\le k, j\le n} k\cdot j\)
(d) \(\sum_{1 \le j< k \le n}\frac{1}{k-j}\)

Zadanie 3

Oblicz sumę \(\sum_{0 \le i \le n} \left\lceil \sqrt{i} \right\rceil\)

Zadanie 4

Pokaż następującą równość, sumując przez części:
\[
\sum_{0\le i < n}i\, H_i \,=\, \frac{n^{\underline{2}}}{2}\,\Bigl(H_n-\frac{1}{2} \Bigr)\ .
\]

Ćwiczenia 3: współczynniki dwumianowe

Zadanie 1

Dla jakich wartości \(i\) współczynnik dwumianowy \({n \choose i}\) przyjmuje wartość maksymalną, przy ustalonym \(n\)?

Zadanie 2

Wyprowadź wzór sumowania równoległego przez interpretację kombinatoryczną.

Zadanie 3

Wyprowadź wzór na sumowanie po górnym wskaźniku:
\[\sum_{i=0}^n {{i}\choose{ k}} = {{n+1}\choose{ k+1}}\]
na trzy sposoby:
a) indukcja z tożsamości Pascala,
b) interpretacja kombinatoryczna,
c) sumując przez różnice skończone.

Zadanie 4

Uprość następujące sumy:
(a) \(\sum_{i} i\, {{n}\choose{ i}} \)
(b) \(\sum_{i}i^2\, {{n}\choose{ i}}\)
(c) \(\sum_{k=0}^n (-1)^k {{n}\choose{ k}} {{k}\choose{ j}}\)
(d) \(\sum_{k=0}^{\lfloor n/2 \rfloor} {{n}\choose{2k}}\, 2^{2k} \);
(e) \(\sum_{k=0}^m (-1)^k \,{{n}\choose{ k}}\, {{n}\choose{ m-k}}\)

Zadanie 5

Oblicz sumę
\[ \sum_{ A,B\subseteq X}|A\cup B|\ , \]
sumując po wszystkich parach \(\langle A, B\rangle \)
podzbiorów zbioru X, gdzie \(|X|=n\).

Ćwiczenia 4: permutacje i liczby Stirlinga

Zadanie 1

Znajdź wzór na liczbę n-permutacji o danej sygnaturze.

Zadanie 2

Permutacja f jest inwolucją gdy \(f\circ f = id\). Pokaż, że
(a) permutacja jest inwolucją w.t.w. gdy ma sygnaturę \(1^{\alpha_1}2^{\alpha_2}\);
(b) każda permutacja jest złożeniem dwóch inwolucji.

Zadanie 3

Dane są liczby naturalne \(n\ge k>0\). Jakie jest prawdopodobieństwo, że w losowej n-permutacji jedynka należy do cyklu o długości k?

Zadanie 4

Pokaż, że losowa n-permutacja z prawdopodobieństwem $H_{n-1}/n$ składa się dokładnie z dwóch cykli.

Zadanie 5

Mamy n skarbonek i n kluczy, przy czym każdy klucz pasuje do dokładnie jednej skarbonki. Wrzucamy losowo po jednym kluczu do każdej skarbonki, po czym rozbijamy k skarbonek, \(1\leq k\leq n\). Oblicz prawdopodobieństwo tego, że dzięki temu będzie można otworzyć wszystkie pozostałe skarbonki.

Zadanie 6

Pokaż tożsamość
\[ x^n = \sum_k \left\{{n}\atop{k}\right\}\, x^{\underline{k}} \]
przez interpretację kombinatoryczna.

Zadanie 7

Pokaż następujące wzory:
\[ \left\{{n}\atop{k}\right\} = \sum_{i_1,\ldots,i_{n-k}}i_1\cdot i_2\dots i_{n-k} \cdot [1\le i_1\le i_2 \le \ldots \le i_{n-k}\le k]\ ,\]
\[\left[{n}\atop{k}\right] = \sum_{i_1,\ldots,i_{n-k}}i_1\cdot i_2\dots i_{n-k} \cdot [0< i_1 < i_2 < \ldots < i_{n-k} < n]\]

Ćwiczenia 5: funkcje tworzące

Zadanie 1

Znajdź funkcje tworzące ciągów \(\langle H_n\rangle\) i \(\langle n^2\rangle\).

Zadanie 2

Oblicz \( a_n = \sum_{0\le i\le n} F_i\cdot F_{n-i}\).

Zadanie 3

Niech
\[
G_k(z)=\sum_n\left\{{n}\atop{k}\right\}\,\frac{z^n}{n!}
\]
będzie w.f.t. dla liczb Stirlinga drugiego rodzaju, przy ustalonym dolnym wskaźniku. Pokaż, że \(G_k(z)=\frac{(e^z-1)^k}{k!}\), dowodząc kolejno tożsamości:
(a) \(\left\{{n+1}\atop{k+1}\right\} = \sum_{m}{{n}\choose{ m}}\left\{{m}\atop{k}\right\} \)
(b) \(\left\{{n+1}\atop{k+1}\right\} = \left\{{n}\atop{k+1}\right\}(k+1)+\left\{{n}\atop{k}\right\}\)
(c) \(G_k\, e^z = (k+1)\, G_{k+1} + G_k\).
Znajdź zwarty wzór na wykładniczą funkcję tworzącą liczb Bella \(B_n = \sum_k\left\{{n}\atop{k}\right\}\).

Zadanie 4

Permutacja f jest inwolucją, gdy złożenie f ze sobą jest identycznością. Pokaż, że wykładniczą f.t. dla liczby inwolucji jest \(e^{z+\frac{z^2}{2}}\) .

Ćwiczenia 6: enumeratory

Zadanie 1

Oblicz, na ile sposobów można zapisać liczbę naturalną n jako sumę k nieujemnych całkowitych składników, gdzie rozkłady \(n=s_1+\cdots+s_k\) i \(n=t_1+\cdots+t_k\) są różne, gdy \(s_i\ne t_i\) dla pewnego \(1\le i\le k\).

Zadanie 2

Niech n będzie liczbą naturalną. Znajdź liczbę rozwiązań równania
\[
x_1+2\cdot x_2+2\cdot x_3 = n
\]
w~liczbach naturalnych \(x_1,x_2,x_3\).

Zadanie 3

Niech \(a_n\) oznacza liczbę ciągów długości n złożonych z liter A, B, C i nie zawierających dwóch sąsiednich liter A, ani dwóch sąsiednich liter B. Znajdź zwarty wzór na~\(a_n\).

Zadanie 4

Z kostek o wymiarach 1x2 układamy prostokąt o pionowej krawędzi długości 2 i poziomej krawędzi długości n. Kostki nie mogą na siebie
nachodzić; każda z połówek kostki może być pomalowana na jeden z dwóch kolorów (biały lub czarny). Kostki układamy od strony lewej do prawej: pierwszą kostkę kładziemy pionowo, a pozostałe tak, aby cała lewa krawędź każdej nowo kładzionej kostki dotykała kostek ułożonych wcześniej. Obowiązuje przy tym zasada, że kładziona kostka wzdłuż lewej krawędzi musi mieć takie same kolory, jak występujące na sąsiadujących z nią z lewej strony polach. Oblicz, na ile sposobów można ułożyć taki prostokąt.

Zadanie 5

Niech \(h_n\) oznacza liczbę sposobów pokolorowania szczebli n-szczeblowej drabiny na cztery kolory (czerwony, biały, niebieski i zielony) tak, że liczba szczebli czerwonych jest parzysta, a białych --- nieparzysta. Znajdź wykładniczą funkcję tworzącą ciągu \(h_n\) i oblicz \(h_{2001}\).
`

Zadanie 6

Na ile sposobów można rozdzielić 33 tys. zł. premii pomiędzy 22 pracowników firmy, w tym prezesa i jego zastępcę, jeśli szeregowy pracownik może dostać 1000 lub 1500 zł., a członek kierownictwa - nic, 1500 lub 3000 zł.?

Ćwiczenia 7: zasada włączania-wyłączania, wieżomiany

Zadanie 1

Udowodnij, że liczba elementów zbioru X należących do co najmniej \(r>0\) spośród zbiorów \(A_1,\ldots,A_n\), gdzie \(A_i\subseteq X\) dla \(i=1,\ldots n\), wynosi
\[\sum_{k=r}^n (-1)^{k-r}{{k-1}\choose{r-1}} S_k\ ,\]
gdzie \(S_k=\sum_{1\leq i_1 < \ldots < i_k\leq n}|A_{i_1}\cap\ldots\cap A_{i_k}|\).

Zadanie 2

Oblicz, ile jest liczb 8-cyfrowych nie zawierających cyfry 0 ani ciągu kolejnych cyfr \(\ldots 121\ldots\).

Zadanie 3

Znajdź liczbę permutacji zbioru \(\{1,\ldots,7\}\) nie zawierających czterech kolejnych elementów w porządku rosnącym.

Zadanie 4

Pokaż, że wielomiany \(ax+1, ax^2+(a+2)x+1, abx^2+(a+b+1)x+1\) są wieżowe dla dow. a,b naturalnych.

Zadanie 5

Znajdź liczbę n-nieporządków za pomoca wieżomianow (liczba rozstawień wież na dopełnieniu przekątnej).

Zadanie 6

7 krasnoludków \(k_1,\ldots,k_7\) ma codziennie do wykonania 7 prac \(k_1,\ldots,k_7\), przy czym:
\(k_1\) nie umie wykonać \(p_2, p_3\)
\(k_2\) nie umie wykonać \(p_1, p_5\)
\(k_4\) nie umie wykonać \(p_2, p_7\)
\(k_5\) nie umie wykonac \(p_4\).
Przez ile dni mogą rozdzielać prace codziennie inaczej?

Zadanie 7

Udowodnij, że wielomianem wieżowym planszy \(\{(i,i), (i,i+1): i = 1,\ldots,n\}\) jest \(\sum_{k=0}^n {{2n+1-k}\choose{k}} x^k\).

Zadanie 8

Na ile sposobów można rozstawić 6 nie atakujących się wież na czarnych polach szachownicy 8x8?

Ćwiczenia 8: podziały liczby

Zadanie 1

Pokaż następujące rekurencje na liczby \(p_k(n)\) (liczba podziałów n na k składników):
\(p_k(n) = p_{k-1}(n-1)+p_{k}(n-k)\)
\(p_k(n) = p_{k}(n-k)+p_{k-1}(n-k) +\cdots+p_{1}(n-k)\)

Zadanie 2

Oblicz \(p_2(n)\) i \(p_3(n)\).

Zadanie 3

Pokaż oszacowanie
\[\frac{1}{k!}\cdot{{n-1}\choose{k-1}}\ \le \ p_k(n)\ \le \ \frac{1}{k!}\cdot{{n+\frac{k(k-1)}{2}-1}\choose{k-1}} .\]

Zadanie 4

Pokaż, że liczba \(P(n)-P(n-1)\) jest równa liczbie podziałów~n na składniki większe niż 1.

Zadanie 5

Niech \(D(n;a_1,\ldots,a_m)\) oznacza liczbę podziałów n na części rozmiarów należących do zbioru \(\{a_1, a_2,\ldots, a_m\}\).
(a) Pokaż, że ten ciąg ma \(1/(1-t^{a_1})(1-t^{a_2})\ldots(1-t^{a_m})\) jako swoją f.t.
(b) Z rozkładu na ułamki proste
\[ \frac{1}{(1-t)(1-t^2)}=\frac{1}{2(1-t)^2}+\frac{1}{4(1-t)}+\frac{1}{4(1+t)} \]
wyprowadź wzór na D(n;1,2).

Zadanie 6

Wykaż, że łączna liczba składników we wszystkich podziałach liczby n jest równa \(\sum_{k=0..n-1} P(k) \tau(n-k)\), gdzie P(k) to liczba
podziałów k, a \(\tau(m) = \sum_{d | m} 1\) jest liczbą (dodatnich) dzielników m.

Ćwiczenia 9: powtórka przed kolokwium

Zadanie 1

Rozwiąż równanie rekurencyjne
\(f_n = \frac{2n-1}{n}f_{n-1} - \frac{n-1}{n} f_{n-2} + 1, \quad f_0 = 0, f_1 = 1\ .\)

Zadanie 2

Jakie jest prawdopodobieństwo, że w losowej 6-permutacji 1 i 2 są w tym samym cyklu, a 3 -- w innym?

Zadanie 3

Udowodnij tożsamość
\[ {{i+j}\choose{i}}\left\{{n}\atop{i+j}\right\} = \sum_{k=0}^n {{n}\choose{k}}\left\{{k}\atop{i}\right\}\left\{{n-k}\atop{j}\right\}\ .\]

Zadanie 4

Znajdź \( \sum_{n=0}^\infty \sum_{k=0}^n \frac{F_{2k}F_{n-k}}{10^n}, \) gdzie \(F_n\) to n-ta liczba Fibonacciego.

Ćwiczenia 10: grafy - podstawowe pojęcia

Zadanie 1

Udowodnij, że na każdym przyjęciu są dwie osoby o takiej samej liczbie
znajomych.

Zadanie 2

Udowodnij, że przynajmniej jeden z grafów G, G' (dopełnienie) jest spójny. Niech diam(G) oznacza średnicę grafu G (nieskończoność jeśli G jest niespójny) i niech f(G) = min(diam(G), diam(G')). Znajdź sup f(G) po wszystkich grafach G.

Zadanie 3

Udowodnij, że w K6 dowolnie pokolorowanym krawędziowo na 2 kolory jest
monochromat. trojkat (są nawet dwa!), ale w K5 niekoniecznie.

Zadanie 4

Rozstrzygnij, czy istnieje:
a) graf o ciągu stopni wierzchołków (3 3 3 3 5 6 6 6 6 6 6)
b) (3 3 3 3 3 5 6 6 6 6 6 6)
c) dwudzielny (3 3 3 3 3 5 6 6 6 6 6 6)
d) drzewo (dowolny ciąg długości n o sumie 2n-2)

Zadanie 5

Podaj przykład dwóch nieizomorficznych grafów spójnych o takich samych
ciągach stopni wierzchołków.

Zadanie 6

Graf niezorientowany jest orientowalny, jeśli można na jego krawędziach
dorysować strzałki tak, żeby dostać digraf silnie spójny. Pokaż, że graf spójny
jest orientowalny wtedy i tylko wtedy, gdy nie ma mostów.

Ćwiczenia 11: drzewa, cykle Eulera i Hamiltona

Zadanie 1

Centrum grafu G to zbiór wierzchołków v, dla których maxw d(v,w) jest najmniejsze. Udowodnij, że centrum drzewa to pojedynczy wierzchołek albo para wierzchołków połaczonych krawędzią.

Zadanie 2

Udowodnij twierdzenie Cayleya o zliczaniu drzew etykietowanych: Kn ma nn-2 drzew rozpinających
(a) wskazując bijekcję między takimi drzewami a (n-2)-ciągami o elementach ze zbioru {1,...,n} (kody Prufera);
(b) sumując liczby drzew o ustalonym układzie stopni wierzchołków.

Zadanie 3

Podaj przykłady grafów na wszystkie cztery kombinacje:
(istnieje/nie istnieje) x (cykl Eulera/cykl Hamiltona)

Zadanie 4

Udowodnij, ze jeśli G jest spójny o k>0 wierzchołkach nieparzystych stopni,
to k jest parzyste i k/2 jest najmniejszą liczbą krawędziowo rozłącznych
łańcuchów pokrywających wszystkie krawędzie G.

Zadanie 5

Z kompletu 28 kamieni domina (od 0-0 do 6-6) usuwamy kamienie 0-1, 0-2,
0-3. Ile jeszcze trzeba usunać, żeby resztę dało się ułożyć w łańcuch
zamknięty?

Zadanie 6

Które pełne grafy dwudzielne i trójdzielne są eulerowskie?
hamiltonowskie?

Zadanie 7

Pokaż, że graf Petersena jest maksymalny niehamiltonowski.

Zadanie 8

Pokaż, że turniej jest hamiltonowski <=> jest silnie spójny.

Zadanie 9

Udowodnij, że jesli z kodu Graya zdefiniowanego rekurencyjnie
G(0) = pusty ciąg; G(n+1) = (0G(n); 1G(n)R)
wypisać wektory zawierające k jedynek, to dwa sąsiednie (cyklicznie)
wektory mają odległość Hamminga równą 2. Napisać wzór rekurencyjny na taki
'okrojony' kod Graya G(n,k).