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ą:
Wiele z powyższych zagadnień będzie omawiane w trakcie późniejszych kursów. Część już poznaliście w trakcie kursów:
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:
\( \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} \).
Definicja rekurencyjna (indukcyjna):
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.
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 \)
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. \)
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:
Mnisi pracują od zarania dziejów dzień i noc ... .Ile czasu im to zajmie?
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:
\( A \to C, \ \ A \to B, \ \ C \to B \)
\( A \to C \)
\( 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:
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.
W tym momencie możemy pokusić się o zgadywanie i przypuścić, że \( l_n=2^n \). Jednakże
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.
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} \)
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 \).
- ustawiamy obie kostki poziomo, lub obie pionowo,
a zatem \( d_2=2 \).
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:
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 \):
\( 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:
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} \).
\( \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 \).
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*} \)
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}. \)
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:
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:
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:
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:
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
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:
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:
Dowód
Niech \( S\subseteq\mathbb{T} \) będzie zbiorem drzew binarnych spełniających powyższe własności.
\( \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 \).
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:
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.
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.
Wielomian to funkcja:
\( x \mapsto a_nx^n + a_{n-1}x^{n-1} + \ldots + a_2x^2 + a_1 x + a_0 \)
gdzie
Surjekcja to funkcja \( f : X \longrightarrow Y \) spełniająca warunek
\( \forall y\in Y \ \exists x\in X \ \ 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) \)
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ą.
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ą?
A zatem: funkcja posiada funkcję odwrotną, wtedy i tylko wtedy, gdy jest bijekcją.
Przykład
\( 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). \)
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)) \).
\( X \longrightarrow Y \longrightarrow Z \)
Przykład
Morał: złożenia \( fg \) i \( gf \) to (na ogół) różne funkcje.
\( (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ą.
\( (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:
Przykład
Zbadaj czy dla funkcji \( X \stackrel{f}{\longrightarrow} Y \stackrel{g}{\longrightarrow} Z \) zachodzi:
Przykład
Przykładem funkcji dwóch zmiennych są działania arytmetyczne:
a także konkatenacja (sklejenie) słó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:
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
\( 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} \).
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:
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.
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?
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:
\( 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.
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:
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.
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.
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:
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.
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} \}\ }. \)
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ą?
Zbiór potegowy, lub inaczej zbiór podzbiorów, zbioru \( X \) oznaczamy przez \( \mathcal{P}(X) \).
Przykład
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:
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}. \)
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 \).
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 \):
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} \)
Dowolną permutację \( \alpha \) zbioru \( X \) można rozłożyć na rozłączne cykle w sposób następujący:
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:
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.
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.
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.
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*} \)
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*} \)
Ż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:
\( \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:
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:
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.
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:
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}. \)
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. \)
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:
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:
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:
\( n=0,1,2,\ldots \),
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 \).
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 \)
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 \)
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:
\( f(Y_1)=(X-Y_1)-\{x\}=X-Y_1\neq X-Y_2=(X-Y_2)-\{x\}=f(Y_2), \)
\( f(Y_1)=(X-Y_1)\cup \{x\}\neq(X-Y_1)\cup \{x\}=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.
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
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}. \)
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*} \)
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 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:
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:
i umieszczeniu ich w trzecim pudełku - możemy to uczynić na \( {n-(k_1+k_2)\choose k_3} \) 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}. \)
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:
Z samej definicji typu permutacji natychmiast wynika:
Obserwacja 6.1
Dla \( \pi\in S_n \) typu \( (\alpha_1,\ldots,\alpha_n) \) zachodzi
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:
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:
Podobnie \( x_1 \) przejdzie
Ogólnie, \( x_i \) (dla \( i\in{\{ {1,\ldots,n-2} \} } \))
\( (x_0,x_1),(x_0,x_2),\ldots,(x_0,x_{i-1}) \),
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
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:
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 \).
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 \)
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:
\( \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} \)
przy czym nie wszystkie transpozycje są dopuszczalne.
Zauważmy, że
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.
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} \)
Obserwacja 6.10
Dla \( n\in\mathbb{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:
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) \).
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:
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} \)
zatem \( \left\{\begin{array} {c}4 \\ 2\end{array} \right\}=7 \).
Obserwacja 6.14
Dla \( n,k\in\mathbb{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:
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*} \)
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. \)
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*} \)
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:
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\} \).
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 \} \).
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} \).
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ł 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. \)
Obserwacja 6.23
Dla \( n,k\in\mathbb{N}-{\{ {0} \} } \)
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.
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)
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.
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
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:
\( r_n\ =\ \alpha\rho_1^n+\beta\rho_2^n, \)
gdzie \( \alpha \) oraz \( \beta \) są liczbami rzeczywistymi.
\( r_n\ =\ (\alpha n+\beta)\rho_1^n, \)
gdzie \( \alpha \) oraz \( \beta \) są liczbami rzeczywistymi.
\( 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. \)
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.
Drzewo binarne to dowolny obiekt powstały zgodnie z regułami:
Węzeł wewnętrzny drzewa binarnego jest zdefiniowany rekurencyjnie:
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:
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
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:
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} \)
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.
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). \)
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} \).
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
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łą.
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:
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:
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:
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
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)) \).
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:
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:
Przykład
Dla funkcji zadanej przez:
\( \displaystyle T(n)=16T\left( \frac{n}{4} \right)+n\lg{n}, \)
dostajemy kolejno:
Podobnie dla funkcji
\( \displaystyle T(n)=2T\left( \frac{n}{2}\right )+5n-15, \)
mamy:
Niech teraz
\( \displaystyle T(n)=2T\left( \frac{n}{3}\right )+n\lg{n}. \)
Wtedy
Z kolei dla funkcji spełniającej
\( \displaystyle T(n)=2T\left( \frac{n}{2} \right)+n\lg{n}, \)
dostajemy
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 \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 \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*} \)
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*} \)
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 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).
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ą.
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:
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 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.
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 } \).
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 \).
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*} \)
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
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} \).
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)}. \)
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ść:
lub
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:
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:
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}) \).
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.
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} \).
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:
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:
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:
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.:
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
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ą.
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:
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} \),
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,
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:
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 \).
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 \).
Wreszcie rozważmy równanie \( 9x\equiv_{21}12 \).
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.
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:
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*} \)
czyli możemy zaaplikować Chińskie Twierdzenie o Resztach,
Zgodnie z procedurą czterokrotnie używamy rozszerzonego algorytmu Euklidesa otrzymując \( x_1,\ldots,x_4 \):
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*} \)
czyli możemy zaaplikować Chińskie Twierdzenie o Resztach,
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. 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:
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 =? \)
Przykład
\( 3^{51} \ {\sf mod} \ 13 =? \)
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.
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 \).
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:
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) \):
Oraz \( \varphi(1980) \):
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 . \)
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 \).
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 \).
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:
(czasami zwanymi węzłami lub punktami grafu)
czyli jedno- i dwu-elementowych podzbiorów \( V \).
Graf prosty to para \( \mathbf{G}=( V,E ) \), gdzie:
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:
\( \mathbf{G}/\theta=( V/\theta,\lbrace \lbrace v/\theta,w/\theta \rbrace:\lbrace v,w \rbrace\in E \rbrace ), \)
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
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.
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.
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
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:
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.
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:
Graf planarny to graf, który jest prezentowalny jako graf płaski.
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.
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.
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:
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.
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
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.
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:
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:
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:
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 \).
Graf płaski to para: \( \mathbf{\overline{G}}=( \overline{V},\overline{E} ) \), gdzie
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:
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
\( \mathbf{G}/\theta=( V/\theta,\lbrace \lbrace v/\theta,w/\theta \rbrace:\lbrace v,w \rbrace\in E \rbrace ), \)
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:
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.
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}) \).
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:
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
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:
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:
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.
Definicja rekurencyjna (indukcyjna):
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ć:
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.
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 \)
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. \)
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:
Mnisi pracują od zarania dziejów dzień i noc ... .Ile czasu im to zajmie?
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:
\( A \rightarrow C, \ \ A \rightarrow B, \ \ C \rightarrow B \)
\( A \rightarrow C \)
\( 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:
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.
W tym momencie możemy pokusić się o zgadywanie i przypuścić, że \( l_n=2^n \). Jednakże
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:
Ponownie rozwiążemy równanie rozwijając je:
gdzie ostatnia równość wynika z - już udowodnionego - wzoru na sumę kolejnych liczb naturalnych.
Wszystkie wyrazy ciągu, oprócz pierwszych dwu, są sumą dwu poprzednich elementów. Oto kilka pierwszych wartości ciągu Fibonacciego:
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 \)?
Oznaczmy, tę liczbę przez \( d_n \) w zależności od \( n \).
- ustawiamy obie kostki poziomo, lub obie pionowo,
a zatem \( d_2=2 \).
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:
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 \):
co kończy dowód kroku indukcyjnego.
Twierdzenie 2.3 [wzór Eulera-Bineta]
Dowód
Rozważmy równanie:
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:
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} \).
\( \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
Dowód
gdzie ostatnia równość wynika z faktu, iż
jako że \( \vert\frac{1-\varphi}{\varphi}\vert < 1 \).
Rozważając specjalne kwadratowe macierze \( 2\times2 \) liczb Fibonacci'ego postaci
łatwo zauważamy, że
Ponieważ równocześnie:
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*} \)
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}. \)
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:
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ą
zdefiniowana rekurencyjnie (z uwagi na budowę drzewa) jako:
Szerokość drzewa binarnego jest wyznaczona funkcją
zdefiniowana rekurencyjnie (z uwagi na budowę drzewa) jako:
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:
Przykład
Obserwacja 2.7
Dla \( T=T_0\wedge T_1 \) mamy
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:
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:
Dowód
Niech \( S\subseteq\mathbb{T} \) będzie zbiorem drzew binarnych spełniających powyższe własności.
\( \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 \).
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:
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.
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.
Wielomian to funkcja:
\( x \mapsto a_nx^n + a_{n-1}x^{n-1} + \ldots + a_2x^2 + a_1 x + a_0 \)
gdzie
Surjekcja to funkcja \( f : X \longrightarrow Y \) spełniająca warunek
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:
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ą.
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ą?
A zatem: funkcja posiada funkcję odwrotną, wtedy i tylko wtedy, gdy jest bijekcją.
Przykład
\( 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). \)
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)) \).
\( X \longrightarrow Y \longrightarrow Z \)
Przykład
Morał: złożenia \( fg \) i \( gf \) to (na ogół) różne funkcje.
\( (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ą.
\( (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:
Przykład
Zbadaj czy dla funkcji \( X \stackrel{f}{\longrightarrow} Y \stackrel{g}{\longrightarrow} Z \) zachodzi:
Przykład
Przykładem funkcji dwóch zmiennych są działania arytmetyczne:
a także konkatenacja (sklejenie) słó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:
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:
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
\( 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} \).
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:
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.
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?
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:
\( 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.
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:
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.
Dla skończonych i rozłącznych zbiorów \( A \) i \( B \) mamy:
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.
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:
\( \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:
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.
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} \}\ }. \)
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ą?
Zbiór potegowy, lub inaczej zbiór podzbiorów, zbioru \( X \) oznaczamy przez \( \mathcal{P}(X) \).
Przykład
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:
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}. \)
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 \).
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 \):
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
Dowolną permutację \( \alpha \) zbioru \( X \) można rozłożyć na rozłączne cykle w sposób następujący:
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:
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.
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.
Przykład
Rozważmy sumę skończonego ciągu arytmetycznego o parametrach \( a,b\in\mathbb{Z} \):
Zauważmy, że
Dodając odpowiednie równości stronami otrzymujemy:
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.
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*} \)
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*} \)
Ż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
Operator \( \Delta^n \) nazywamy n-tą iteracją operatora \( \Delta \), gdzie
Przykład
Dla funkcji \( \displaystyle f(x)=\sum_{i=0}^x i^2 \) mamy:
\( \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:
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:
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.
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:
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}. \)
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. \)
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:
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:
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:
\( n=0,1,2,\ldots \),
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.
tworzą wiersz; natomiast współczynniki o ustalonym dolnym indeksie, np.
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 \)
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
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
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
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
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
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:
Dowód
Tożsamość tę udowodnimy wykorzystując dwukrotnie {regułę symetrii} oraz {regułę sumowania po górnym indeksie}:
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 \).
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 \)
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 \)
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:
\( f(Y_1)=(X-Y_1)-\{x\}=X-Y_1\neq X-Y_2=(X-Y_2)-\{x\}=f(Y_2), \)
\( f(Y_1)=(X-Y_1)\cup\{x\}\neq(X-Y_1)\cup\{x\}=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.
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:
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
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}. \)
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:
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 \):
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*} \)
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 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:
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:
i umieszczeniu ich w trzecim pudełku - możemy to uczynić na \( {n-(k_1+k_2)\choose k_3} \) 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}. \)
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:
Z samej definicji typu permutacji natychmiast wynika:
Obserwacja 6.1
Dla \( \pi\in S_n \) typu \( (\alpha_1,\ldots,\alpha_n) \) zachodzi
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:
i podobnie:
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
mamy:
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:
Podobnie \( x_1 \) przejdzie
Ogólnie, \( x_i \) (dla \( i\in{\{ {1,\ldots,n-2} \} } \))
\( (x_0,x_1),(x_0,x_2),\ldots,(x_0,x_{i-1}) \),
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
mamy
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:
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 \).
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 \)
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:
przy czym nie wszystkie transpozycje są dopuszczalne.
Zauważmy, że
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.
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:
Obserwacja 6.10
Dla \( n\in\mathbb{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:
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} \)
Ciekawy jest nastepujacy związek liczb Stirlinga dla cykli z liczbami harmonicznymi \( H_n \).
Obserwacja 6.13
Dla \( n\in\mathbb{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) \).
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:
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:
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:
zatem \( \{\begin{array} {c}4 \\ 2\end{array} \}=7 \).
Obserwacja 6.14
Dla \( n,k\in\mathbb{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:
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*} \)
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
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. \)
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*} \)
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:
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} \} \).
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} \} \).
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} \).
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ł 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. \)
Obserwacja 6.23
Dla \( n,k\in\mathbb{N}-{\{ {0} \} } \)
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.
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.