3 Metody zliczania obiektów
Transkrypt
3 Metody zliczania obiektów
3 Metody zliczania obiektów Metoda bijektywna 3.1 Metoda bijektywna zliczania obiektów kombinatorycznych polega na wska- zaniu bijekcji pomi¦dzy badanym obiektem, a obiektem, którego ilo±¢ elementów jest nam ju» znana. Nie b¦dziemy tu rozwija¢ jakiej± ogólnej teorii, a skoncentrujemy sie na ilustracji metody za pomoc¡ kilku przykªadów. Przykªady te b¦d¡ jednocze±nie stanowiªy baz¦ przykªadowych obiektów, do których b¦dzie mo»na w przyszªo±ci odwoªywa¢ si¦. 3.2 Przykªad. Ile jest podzbiorów zbioru nelementowego? Niech A = [n]. Podzbiorowi B ⊂ A przyporz¡dkowujemy ci¡g zerojedynkowy χB = (b1 , b2 . . . , bn ), przyjmuj¡c 1, gdy i ∈ B bi = 0, gdy i 6∈ B. Przyporz¡dkowanie to ustala bijekcj¦ pomi¦dzy podzbiorami A i wszystkimi ci¡gami zerojedynkowymi dªugo±ci n. Poniewa» takich ci¡gów jest 2n , wi¦c i podzbiorów zbioru nelementowego jest 2n . 3.3 Drogi w prostok¡cie Rozwa»my prostok¡t o wymiarach m × n, gdzie m, n ∈ N. Drog¡ w tym prostok¡cie nazywamy dowoln¡ ªaman¡ ª¡cz¡c¡ lewy dolny wierzchoªek prostak¡ta z przeciwlegªym wierzchoªkiem i zªo»on¡ z m + n odcinków jednostkowych równolegªych do boków prostok¡ta. Zauwa»my, »e spo±ród n+m odcinków, z których skªada si¦ droga, dokªadnie m jest poziomych. Ponumerujmy odcinki jednostkowe tworz¡ce drog¦ liczbami od 1 do m + n i niech {i1 , i2 , . . . , im } b¦dzie zbiorem numerów odcinków poziomych. Dla ka»dej drogi jest to pewien podzbiór melementowy zbioru [m + n]. Na odwrót, dla dowolnego podzbiou m elementowego w [m+n] mo»na zbudowa¢ drog¦, dla której ten wªa±nie podzbiór jest zbiorem numerów odcinków poziomych i otrzymujemy bijekcj¦ mi¦dzy drogami i melementowymi podzbiorami [m + n]. Wszystkich dróg jest wi¦c m+n . m 3.4 Przykªad. Ile jest naturalnych rozwi¡za« równania X1 +X2 +· · ·+Xr = n? Rozwa»my prostok¡t o wymiarach (r − 1) × n i oznaczmy kolejne punkty podstawy o wspóªrz¦dnych naturalnych symbolami X1 , X2 , . . . , Xr . Rozwi¡zanie. 1 Z ka»dym rozwi¡zaniem (x1 , x2 , . . . , xr ) powy»szego równania stowarzyszymy drog¦ w prostok¡cie w sposób nast¦puj¡cy. Zaczynamy z punktu X1 , rysujemy x1 odcinków pionowych i jeden poziomy i kontynuujemy wedªug nast¦puj¡cej reguªy: je±li znale¹li±my si¦ nad Xi , to rysujemy xi odcinków pionowych i jeden poziomy. Otrzymujemy bijekcj¦ pomi¦dzy rozwi¡zaniamirównania i drogami w prostok¡cie, wi¦c na mocy (3.3) rozwi¡za« jest n+r−1 . n 3.5 Metoda bijektywna mo»e sªu»y¢ nie tylko do prostego porównania liczno±ci dwóch zbiorów, ale mo»e te» posªu»y¢ do dowodu bardziej skomplikowanych wzorów. Poni»ej poka»emy kilka wa»nych i interesuj¡cy przykªadów. 3.6 Stwierdzenie. Dla liczb naturalnych n, k takich, »e k ≤ n mamy n n = . k n−k Niech A b¦dzie zbiorem n-elementowym. Prawa strona równo±ci zlicza podzbiory k elementowe w A, a lewa strona podzbiory n − k elementowe. Operacja brania dopeªnienia podzbioru w A zadaje bijekcj¦ pomi¦dzy obiektami zliczanymi przez obie strony. Dowód. 3.7 Stwierdzenie. Dla ka»dego n ∈ N n n n + + ··· + = 2n . 0 1 n Dowód. Obie strony zliczaj¡ wszystkie podzbiory zbioru [n]. 3.8 Wzór ChuVandermonde'a Dla dowolnych r, s, k ∈ N k X s r+s r = . i k−i k i=0 Niech A b¦dzie zbiorem relementowym, a B zbiorem selementowym rozª¡cznym z A i niech C = A ∪ B . Mo»emy sobie wyobra»a¢, »e zbiór C skªada si¦ z elementów dwóch ró»nych rodzai (np. kobiet i m¦»czyzn, kul biaªych i czarnych itp.). Ka»dy k elementowy podzbiór X ⊂ C wyznacza par¦ (A∩X, B∩ X) podzbiorów zbioru A i B odpowiednio, przy czym |A ∩ X| + |B ∩ X| = k . Na odwrót ka»da taka para wyznacza podzbiór k elementowy w C , co dowodzi równo±ci. Dowód. Wniosek. Dla dowolnych liczb rzeczywistych x i y oraz dla dowolnego k ∈ N k X x y x+y = . i k−i k i=0 2 Ustalmy k i potraktujmy obie strony jako wielomiany od x i y . Poprzednie twierdzenie dowodzi, »e wielomiany po obu stronach przyjmuj¡ te same warto±ci dla wszystkich par naturalnych x i y , a wi¦c s¡ równe jako wielomiany. Dowód. Reguªa wª¡czania i wyª¡czania 3.9 Jest jasne, »e je±li zbiory A i B s¡ rozª¡czne, to |A ∪ B| = |A| + |B|. Je±li zbiory A i B nie s¡ rozª¡czne, to w sumie |A| + |B| elementy nale»¡ce do przekroju A ∩ B zliczane s¡ dwukrotnie. St¡d (1) |A ∪ B| = |A| + |B| − |A ∩ B|. Analogicznie dla trzech zbiorów A, B i C mamy |A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C|. Procedura zliczania zastosowana w obu przykªadach nosi nazw¦ schematu wª¡czania i wyª¡czania. Ogólnie prawdziwe jest nast¦puj¡ce twierdzenie. Twierdzenie. Dla dowolnego ci¡gu (A1 , A2 , . . . , An ) zbiorów sko«czonych | n [ Ai | = i=1 n X X (−1)k+1 | Ai1 ∩ Ai2 ∩ . . . Aik | . 1≤i1 <i2 <···<ik ≤n k=1 Stosujemy indukcj¦ wzgl¦dem n. Dla n = 2 wzór jest po prostu wzorem (1). Zaªó»my wi¦c, »e wzór jest prawdziwy dla wszystkich ci¡gów zbiorów sko«czonych dªugo±ci n ≥ 2. Poka»emy, »e wzór zachodzi te» dla ci¡gu (A1 , A2 . . . , An , An+1 ). Mamy Dowód. | n+1 [ Ai | = | i=1 n [ Ai | + | An+1 | − | ( i=1 n [ Ai ) ∩ An+1 | i=1 na podstawie wzoru dla i = 1, 2, . . . , n przyjmijmy Bi = Sndwóch zbiorów. SDla n Ai ∩ An+1 . Wówczas ( i=1 Ai ) ∩ An+1 = i=1 Bi i na mocy zaªo»enia indukcyjnego zastosowanego do n-wyrazowych ci¡gów (A1 , A2 . . . , An ) i (B1 , B2 . . . , Bn ) otrzymujemy | n [ Ai | n X = i=1 |( n [ Ai ) ∩ An+1 | = i=1 = = | k=1 n [ i=1 n X k=1 n X k=1 X (−1)k+1 | Ai1 ∩ Ai2 ∩ . . . Aik | (2) 1≤i1 <i2 <···<ik ≤n Bi | = X (−1)k+1 | Bi1 ∩ Bi2 ∩ . . . Bik | = 1≤i1 <i2 <···<ik ≤n X (−1)k+1 1≤i1 <i2 <···<ik ≤n 3 | Ai1 ∩ Ai2 ∩ . . . Aik ∩ An+1 (3)| Ostatnia równo±¢ daje | An+1 | − | ( n [ Ai ) ∩ An+1 | = i=1 = | An+1 | − n X n+1 X l=1 X (−1)l+1 | Ai1 ∩ Ai2 ∩ . . . Aik ∩ An+1 | 1≤i1 <i2 <···<ik ≤n k=1 = X (−1)k+1 | Ai1 ∩ Ai2 ∩ . . . Ail | (4) 1≤i1 <i2 <···<il =n+1 Ci¡gi pojawiaj¡ce si¦ po prawych stronach (2) i (4) wyczerpuj¡ wszystkie mo»liwe ci¡gi 1 ≤ i1 < i2 < · · · < ik ≤ n + 1, co ko«czy dowód twierdzenia. 3.10 Przykªad. Ile jest caªkowitych rozwi¡za« równania x1 + x2 + · · · + x6 = 20, które speªniaj¡ warunek 0 ≤ xi ≤ 8 dla ka»dego i = 1, 2, . . . , 6? Rozwi¡zanie. Niech A = {(x1 , . . . , x6 ) | x1 + · · · + x6 = 20, xi ≥ 0, i = 1, . . . , 6} i niech dla ka»dego i = 1, 2, . . . , 6 Ai = {(x1 , . . . , x6 ) ∈ A | xi ≥ 9}. Interesuj¡ca nas liczba to # A\ 6 [ ! Ai =| A | − | i=1 6 [ Ai | . i=1 Na podstawie rezultatu z przykªadu (3.4) 25 25 |A|= = . 20 5 Aby policzy¢ ilo±¢ elementów w zbiorze Ai , zastosujmy podstawienie y1 = x1 , . . . , yi−1 = xi−1 , yi = xi − 9, yi+1 = xi+1 , . . . , y6 = x6 . Podstawienie to zadaje bijekcj¦ pomi¦dzy zbiorem Ai oraz zbiorem A0 = {(y1 , . . . , y6 ) | y1 + · · · + y6 = 11, yi ≥ 0, i = 1, . . . , 6}, st¡d 16 | Ai | = | A | = . 5 0 4 Stosuj¡c podobne podstawienie ªatwo zobaczy¢, »e dla i 6= j zbiór Ai ∩ Aj ma tyle samo elementów, co zbiór A00 = {(z1 , . . . , z6 ) | z1 + · · · + z6 = 2, zi ≥ 0, i = 1, . . . , 6}, czyli | Ai ∩ Aj |= 75 . Poniewa» dla trzech ró»nych wska¹ników i, j, k przekrój Ai ∩ Aj ∩ Ak jest zbiorem pustym, wi¦c reguªa wª¡czania i wyª¡czania daje odpowied¹ 25 16 6 7 − 6· − · = 27 237. 5 5 2 5 3.11 Funkcja Eulera ϕ(n) αk 1 α2 b¦dzie rozkªadem liczby naturalnej n na czynniki Niech n = pα 1 p2 . . . pk pierwsze. Ile jest liczb naturalnych s ≤ n wzgl¦dnie pierwszych z n? Liczb¦ t¦ oznacza si¦ symbolem ϕ(n). Funkcja ϕ nosi nazw¡ funkcji Eulera. Rozwi¡zanie. Dla ka»dego i = 1, 2, . . . , k niech Ai = {s ∈ [n] | pi dzieli s}. Wówczas ϕ(n) = # [n] \ k [ ! Ai . i=1 Poniewa» liczby p1 , p2 . . . , pk s¡ parami wzgl¦dnie pierwsze, wi¦c n pi1 pi2 . . . pir | Ai1 ∩ Ai2 ∩ · · · ∩ Air | = i zastosowanie wzoru wª¡cze« i wyª¡cze« daje X X X n n n + − + ··· = ϕ(n) = n − pi pi1 pi2 pi1 pi2 pi3 i1 <i2 i1 <i2 <i3 i 1 1 1 = n 1− 1− ··· 1 − . p1 p2 pk 3.12 Permutacje bez punktów staªych Niech p = (p1 , p2 , . . . pn ) b¦dzie permutacj¡ zbioru [n]. Mówimy, »e i jest punktem staªym permutacji p, je±li pi = i (tzn. i jest punktem staªym funkcji p; zob. punkt 1.1). Twierdzenie. Ilo±¢ permutacji [n] bez punktów staªych jest równa n! n X (−1)k k! k=0 . Niech Ai , i = 1, 2, . . . , n, b¦dzie zbiorem permutacji [n], dla których i jest punktem staªym. Wówczas interesuj¡ca nas liczba jest równa Dowód. n!− | n [ i=1 5 Ai | . Aby skorzysta¢ ze wzoru wª¡cze« i wyª¡cze«, trzeba dla dowolnego ci¡gu i1 < i2 < · · · < ik policzy¢ ilo±¢ elementów w zbiorze Ai1 ∩ Ai2 ∩ · · · ∩ Aik . Jest to zbiór permutacji p, dla których p(i1 ) = i1 , p(i2 ) = i2 , . . . , p(ik ) = ik . Permutacje takie s¡ w oczywistej wzajemnej odpowiednio±ci z permutacjami zbioru [n] \ {i1 , i2 , . . . , ik }, st¡d | Ai1 ∩ Ai2 ∩ · · · ∩ Aik | = (n − k)! i ilo±¢ permutacji bez punktów staªych jest równa n! − n X (−1)k+1 k=1 n n X X n (−1)k n! . (n − k)! = (−1)k = n! k! k! k k=0 k=0 Wniosek. (1) Ilo±¢ permutacji bez punktów staªych zbioru [n] jest równa E( n! e ), gdzie e jest podstaw¡ logarytmów naturalnych, a E(x) oznacza liczb¦ caªkowit¡ najbli»sz¡ liczbie rzeczywistej x. (2) Prawdopodobie«stwo tego, »e losowo wybrana permutacja [n] nie ma punktów staªych zmierza przy n → ∞ do 1e = 0,36787944 . . . . Dowód. Wniosek jest konsekwencj¡ znanego z analizy rozwini¦cia e−1 = ∞ X (−1)k k=0 k! oraz faktu, »e ró»nic¦ pomi¦dzy sum¡ szeregu naprzemiennego, a jego sum¡ cz¦±ciow¡ mo»na oszacowa¢ z góry przez warto±¢ bezwzgl¦dn¡ pierwszego odrzuconego wyrazu. Rekurencja 3.13 Zazwyczaj w zadaniach kombinatoryki enumeratywnej wyliczamy ilo±¢ elementów w zbiorach, które ukªadaj¡ si¦ w pewne rodziny parametryzowane jedn¡ lub kilkoma liczbami naturalnymi (np. ilo±¢ podzbiorów zbioru n-elementowego, ilo±¢ n-elementowych permutacji, ilo±¢ n elementowych ci¡gów zero-jedynkowych, które zawieraj¡ dokªadnie k jedynek itp.). Do tej pory szukali±my wówczas wzoru, który dla dowolnych warto±ci parametrów pozwalabezpo±rednio obliczy¢ ilo±¢ badanych obiektów (a wi¦c wzorów typu 2n , n!, nk itp.). W sytuacjach praktycznych rzadko udaje si¦ od razu wypisa¢ taki wzór jawny. Cz¦sto o wiele ªatwiej powiedzie¢, w jaki sposób ilo±¢ badanych obiektów dla warto±ci parametru równej n zale»y od ilo±ci obiektów dla mniejszych warto±ci parametru (wszystkich lub niektórych). Przyjrzyjmy si¦ kilku przykªadom. 6 W rozdziale tym b¦dziemy mieli do czynienia gªównie z niesko«czonymi ci¡gami postaci a = (a0 , a1 , a2 , . . . ), które mo»emy traktowa¢ jako funkcje okre±lone na N. 3.14 Przykªad. Wzdªu» ulicy wyznaczono ci¡g zªo»ony z n miejsc parkin- gowych. Parkuj¡cy samochód osobowy zajmuje jedno miejsce, podczas gdy samochód ci¦»arowy potrzebuje dwóch miejsc. Ile jest ró»nych sposobów wypeªnienia parkingu samochodami osobowymi i ci¦»arowymi? (Dwa wypeªnienia uznajemy za ró»ne je±li na co najmniej jednym miejscu stoi samochód innego typu). Rozwi¡zanie. Oznaczmy przez fn ilo±¢ ró»nych mo»liwych zapeªnie« parkingu zªo»onego z n miejsc. Je±li n = 1, to w miejsce to mo»emy postawi¢ jedynie samochód osobowy i f1 = 1. Je»eli n = 2, to na takim parkingu mo»emy postawi¢ albo dwa samochody osobowe, albo jeden ci¦»arowy i f2 = 2. Zaªó»my teraz, »e mamy do dyspozycji parking zªo»ony z n ≥ 3 miejsc. Przyjrzyjmy si¦ procesowi wypeªniania tego parkingu. Jako pierwszy mo»emy ustawi¢ samochód osobowy i pozostanie nam do wypeªnienia parking zªo»ony z n − 1 miejsc, albo mo»emy postawi¢ samochód ci¦»arowy i zostanie nam do obsadzenia parking zªo»ony z n − 2 miejsc. Mamy wi¦c fn = fn−1 + fn−2 , (5) n ≥ 3. Zwi¡zek ten wraz z warunkami pocz¡tkowymi f1 = 1 i f2 = 2 pozwala wyliczy¢ liczb¦ fn dla dowolnego zadanego n. Zauwa»my, »e je±li przyj¡¢ f0 = 1, to zwi¡zek (5) b¦dzie obowi¡zywaª te» dla n = 2 i mo»emy zapisa¢ 1 dla n = 0, 1; fn = fn−1 + fn−2 dla n ≥ 2. 3.15 Ci¡g z poprzedniego zadania ró»ni si¦ jedynie numeracj¡ wyrazów od chyba najbardziej znanego ci¡gu deniowanego rekurencyjnego, ci¡gu (Fn ) liczb Fibonacciego. Ci¡g ten zazwyczaj zadaje si¦ warunkami 1 dla n = 1, 2; Fn = Fn−1 + Fn−2 dla n ≥ 3. Gdyby±my chcieli zdeniowa¢ F0 tak, aby relacja rekurencyjna byªa speªniona dla n ≥ 2, to musimy przyj¡¢ F0 = 0 i wówczas mo»emy napisa¢ 0 dla n = 0; 1 dla n = 1; Fn = (6) Fn−1 + Fn−2 dla n ≥ 2. Warto±ci liczb Fibonacciego dla maªych warto±ci n podano w nast¦puj¡cej tabeli: n Fn 0 0 1 1 2 1 3 2 4 3 5 5 6 8 7 8 9 13 21 34 7 10 11 12 55 89 144 13 233 14 15 377 610 ... ... Liczby te pojawiªy si¦ po raz pierwszy w zadaniu Fibonacciego o rozmna»aniu królików w pocz¡tku XIII wieku. Wiele interesuj¡cych interpretacji i wªasno±ci tych liczb mo»na znale¹¢ w ksi¡»ce Matematyka konkretna. 3.16 Wie»e z Hanoi Nast¦puj¡ce zadanie pochodzi od Edouarda Lucasa z 1883 r. Przykªad. Na jeden z trzech pionowych pr¦tów nadzianych jest n kr¡»ków o ró»nych ±rednicach, w ten sposób »e rozmiary kr¡»ków malej¡ od doªu ku górze. Mo»emy przenosi¢ kr¡»ki po jednym z jednego pr¦ta na drugi, ale tak aby nie kªa±¢ nigdy kr¡»ka wi¦kszego na mniejszy. Ile ruchów trzeba wykona¢, aby przenie±¢ wszystkie kr¡»ki na drugi pr¦t? Rozwi¡zanie. Oznaczmy przez rn ilo±¢ ruchów potrzebn¡ do przeªo»enia n kr¡»ków. Oczywi±cie r1 = 1. Je±li mamy przenie±¢ n > 1 kr¡»ków, to musi by¢ taki moment, kiedy jest przekªadany kr¡»ek o najwi¦kszej ±rednicy. W tym czasie pozastaªe kr¡»ki musz¡ znajdowa¢ si¦ na trzecim pr¦cie. Aby je tam przeªo»y¢ potrzeba rn−1 ruchów. Po ich wykonaniu mo»emy przeªo»y¢ najwi¦kszy kr¡»ek i zapomnie¢ o jego istnieniu. Wykonuj¡c znowu rn−1 ruchów mo»emy pozostaªe kr¡»ki przenie±¢ z trzeciego pr¦ta na drugi. Mamy wi¦c r1 = 1 rn = 2rn−1 + 1. Wyliczaj¡c na podstawie powy»szego wzoru rn dla n = 1, 2, 3, . . . , otrzymujemy po kolei 1, 3, 7, 15, 31, 63 itd. Przygl¡daj¡c si¦ tym wynikom, nietrudno zauwa»y¢, »e zachodzi wzór rn = 2n − 1. Prosty dowód indukcyjny pokazuje, »e odgadni¦ty wzór rzeczywi±cie speªnia rekurencj¦. Potem poka»emy, jak z takimi zagadnieniami radzi¢ sobie w sposób bardziej systematyczny. Oryginalne zadanie Lukasa zostaªo sformuªowane dla n = 8. Maj¡c wzór, mo»na policzy¢, »e r8 = 28 − 1 = 255. Zauwa»my, »e rozwi¡zanie problemu dla o±miu kr¡»ków jest równie trudne jak dla n kr¡»ków. 3.17 Zadanie Józefa Flawiusza Na obwodzie koªa zaznaczono n punktów ponumerowanych zgodnie z ruchem wskazówek zegara liczbami od 1 do n. Wychodzimy z punktu oznaczonego numerem 1, idziemy zgodnie z ruchem wskazówek zegara i eliminujemy co drugi z napotkanych, nie wyeliminowanych do tej pory punktów. Zabaw¦ mo»emy kontynuowa¢ do chwili, gdy pozostanie ju» tylko jeden punkt. Punkt o jakim numerze nie zostanie wyeliminowany? Rozwi¡zanie. Oznaczmy przez j(n) numer punktu, który pozostanie, gdy startowali±my z n punktów. Oczywi±cie j(1) = 1. Je»eli n = 2k jest parzyste, to za pierwszym obej±ciem eliminujemy punkty o numerach 2, 4, . . . , 2k i powracamy do punktu 1. Pozostaje nam teraz k punktów ponumerowanych liczbami 1, 3, . . . , 2k − 1. Sytuacja b¦dzie wi¦c taka sama jak w przypadku k punktów, ale musimy uwzgl¦dni¢ inny sposób numeracji. St¡d j(2k) = 2j(k) − 1. Analogicznie, gdy n = 2k + 1, to za pierwszym obej±ciem eliminujemy punkty o numerach 2, 3, . . . , 2k , przeskakujemy punkt o numerze 2k + 1, eliminujemy 8 punkt o numerze 1 i l¡dujemy w punkcie o numerze 3. St¡d mo»emy zacz¡¢ nowy obieg po kole z k punktami ponumerowanymi liczbami 3, 5, . . . , 2k + 1, czyli j(2k + 1) = 2j(k) + 1. Otrzymujemy wi¦c rekurencj¦ j(1) = 1, j(2k) = 2j(k) − 1 dla k ≥ 1, j(2k + 1) = 2j(k) + 1 dla k ≥ 1, która pozwala wyliczy¢ j(n) dla wszystkich n ≥ 1. Pocz¡tkowe warto±ci obliczone z tego wzoru wygl¡daj¡ tak n 1 j(n) 1 2 1 3 3 4 1 5 3 6 5 7 7 8 1 9 3 10 11 12 5 7 9 13 14 15 11 13 15 16 . . . 1 ... Przygl¡daj¡c si¦ tej tabeli, nietrudno zgadn¡¢, »e je±li n = 2k + s, gdzie s < 2k , to j(n) = 2s + 1. Wzór ten znowu mo»na udowodni¢ indukcyjnie. 3.18 Rekurencja liniowa o staªych wspóªczynnikach Zajmiemy si¦ teraz pewn¡ szczególn¡ klas¡ ci¡gów rekurencyjnych. Niech u = (un )∞ n=0 b¦dzie ci¡giem o wyrazach rzeczywistych (lub zespolonych). Zaªó»my, »e istnieje liczba naturalna r > 0, liczby rzeczywiste (lub zespolone) a0 6= 0, a1 , . . . , ar−1 oraz ci¡g (fn )∞ n=0 taki, »e dla ka»dej liczby naturalnej n zachodzi un+r + ar−1 un+r−1 + · · · + a1 un+1 + a0 un = fn . (7) Na (7) mo»na patrze¢ jako na równanie, w którym niewiadom¡ jest ci¡g u i pyta¢ si¦ o wszystkie ci¡gi speªniaj¡ce ten warunek. Równanie takie nazywa si¦ liniowym równaniem ró»nicowym (dokªadniej liniowym równaniem ró»nicowym rz¦du r o staªych wspóªczynnikach). Je»eli ci¡g fn jest to»samo±ciowo zerowy, to równanie przybiera posta¢ un+r + ar−1 un+r−1 + · · · + a1 un+1 + a0 un = 0 (8) i nazywa si¦ równaniem jednorodnym. Teoria liniowych równa« ró»nicowych ma wiele wspólnego z teori¡ ukªadów równa« liniowych. W szczególno±ci prawdziwe jest nast¦puj¡ce twierdzenie. Twierdzenie. (1) Je»eli ci¡gi u0 i u00 speªniaj¡ równanie jednorodne postaci (8), to ci¡g u0 + u00 te» speªnia to równanie. (2) Je»eli u0 i u00 s¡ rozwi¡zaniami równania (7), to ich ró»nica u0 − u00 jest rozwi¡zaniem równania jednorodnego zwi¡zanego z tym równaniem. Dowód polega na prostym przeliczeniu. Powy»sze twierdzenie sugeruje nast¦puj¡cy sposób rozwi¡zywania równa« rekurencyjnych postaci (7): (1) znajdujemy wszystkie rozwi¡zania stowarzyszonego równania jednorodnego postaci (8); 9 (2) znajdujemy jakiekolwiek rozwi¡zanie równania (7); (3) rozwi¡zanie ogólne (7) jest suma rozwi¡za« znalezionych w (1) i (2). Poni»ej poka»emy metod¦ rozwi¡zania zagadnienia (1). Dla zagadnienia (2) taka ogólna metoda nie istnieje. Poka»emy, jak rozwi¡za¢ ten problem, gdy ci¡g fn jest funkcj¡ wielomianow¡ n. 3.19 Metoda rozwi¡zywania równania ró»nicowego jednorodnego. Z równaniem postaci (8) stowarzyszamy równanie algebraiczne λr + ar−1 λr−1 + · · · + a1 λ + a0 = 0 (9) i nazywamy równaniem charakterystycznym dla (8). Twierdzenie. Zaªó»my, »e równanie charakterystyczne (9) równania (8) posiada r ró»nych pierwiastków zespolonych λ1 , λ2 , . . . , λr . Wówczas ci¡g (un )∞ n=0 speªnia równanie rekurencyjne (8) wtedy i tylko wtedy, gdy jest kombinacj¡ liniow¡ ci¡gów geometrycznych λn1 , λn2 , . . . , λnr . Dowód. Niech V b¦dzie zespolon¡ przestrzeni¡ liniow¡ ci¡gów u = (u0 , u1 , . . . ) o warto±ciach zespolonych. Niech E : V −→ V b¦dzie operacj¡ lewego przesuni¦cia"tzn. E(u) = v , gdzie vn = un+1 dla ka»dego n ∈ N. Dowód podzielimy na szereg kroków, które w wi¦kszo±ci b¦d¡ prostymi uwagami. 1. E jest odwzorowaniem liniowym. 2. Ci¡g u speªnia równanie rekurencyjne (8) wtedy i tylko wtedy, gdy (E r + ar−1 E r−1 + · · · + a1 E + a0 )u = 0. 3. Zbiór V0 rozwi¡za« (8) jako j¡dro odwzorowania liniowego jest podprzestrzeni¡ liniow¡. 4. Ka»dy ci¡g u ∈ V0 jest jednoznacznie wyznaczony przez r swoich wyrazów pocz¡tkowych u0 , u1 , . . . , ur−1 , przy czym wyrazy te mo»na wybra¢ dowolnie. 5. Ci¡gi, w których pocz¡tkowe wyrazy wybrano w sposób nast¦puj¡cy u(1) u(2) = (1, 0, . . . , 0, . . . ) = (0, 1, . . . , 0, . . . ) ...... = (0, 0, . . . , 1, . . . ) u(r) tworz¡ baz¦ V0 ; w szczególno±ci dim(V0 ) = r. Q 6. Niech (λ − λi ) b¦dzie rozkªadem wielomianu charakterystycznego na czynniki liniowe. Równanie (8) mo»na zapisa¢ w postaci Y (E − λi )u = 0. i 10 7. Dla ci¡gu geometrycznego u = λni mamy (E − λi )u = 0, wi¦c wszystkie ci¡gi λn1 , λn2 , . . . , λnr s¡ rozwi¡zaniami (8). 8. Powy»sze ci¡gi geometryczne s¡ wektorami wªasnymi odwzorowania liniowego E nale»¡cymi do ró»nych warto±ci wªasnych, wi¦c s¡ liniowo niezale»ne. A poniewa» jest ich tyle, ile wynosi wymiar przestrzeni rozwi¡za«, wi¦c stanowi¡ baz¦. W przypadku, gdy równanie charakterystyczne posiada pierwiastki wielokrotne, to przepis na rozwi¡zanie rekurencji komplikuje si¦. Wrócimy do tego zagadnienia przy okazji funkcji tworz¡cych. 3.20 Przykªad. Liczby Fibonacciego Fn zdeniowane w (3.15) speªniaj¡ równanie rekurencyjne un+2 − un+1 − un = 0. Równanie charakterystyczne λ2 − λ − 1 = 0 ma dwa pierwiastki √ √ 1− 5 1+ 5 i λ2 = , λ1 = 2 2 a wi¦c istniej¡ staªe a1 i a2 takie »e Fn = a1 λn1 + a2 λn2 . Bior¡c pod uwag¦ warunki pocz¡tkowe F0 = 0, F1 = 1, otrzymujemy a1 = a2 = − √15 i ostatecznie 1 Fn = √ 5 Wniosek. lim (Fn+1 /Fn ) = n→∞ √ !n 1+ 5 1 −√ 2 5 √1 , 5 √ !n 1− 5 . 2 √ 1+ 5 2 3.21 Uwaga. Z powy»szych rozwa»a« wynika, »e rozwi¡zanie ogólne rów- nania (8) jest w istocie równowa»ne rozwi¡zaniu równania algebraicznego (9). Niestety, nie ma »adnej algorytmicznej metody rozwi¡zania takiego równania. Mo»na jednak ªatwo oszacowa¢ pierwiastki równania, nie rozwi¡zuj¡c go. Pozwala to na okre±lenie asymptotyki ci¡gu. Wi¦cej na ten temat w 3.26 3.22 Poka»emy teraz, jak mo»na znale¹¢ pewne szczególne rozwi¡zanie niejed- norodnego równania (7) w przypadku, gdy ci¡g fn jest funkcj¡ wielomianow¡ od n. Twierdzenie. Liniowe równanie rekurencyjne ar un+r + ar−1 un+r−1 + · · · + a1 un+1 + a0 un = bk nk + · · · + b1 n + b0 , 11 (10) gdzie ai oraz bj s¡ pewnymi ustalonymi liczbami i ar 6= 0, posiada rozwi¡zanie (un )∞ n=0 , które jest wielomianem stopnia co najwy»ej k + r . Zanim udowodnimy twierdzenie, poka»emy jak praktycznie wyliczy¢ takie rozwi¡zanie za pomoc¡ metody nieoznaczonych wspóªczynników, je±li ju» wiemy, »e ono istnieje. Zaªó»my, »e un = cs ns + · · · + c1 n + c0 jest rozwi¡zaniem, gdzie c0 , c1 , . . . cs , cs 6= 0, s¡ pewnymi, na razie nieznanymi wspóªczynnikami. Wówczas dla dowolnego i ≥ 0 mamy un+i = cs (n + i)s + · · · + c1 (n + i) + c0 . (11) Rozwijaj¡c pot¦gi dwumianu n+i ze wzoru Newtona, mo»emy przedstawi¢ un+i w postaci wielomianu od n, którego wspóªczynniki s¡ kombinacjami liniowymi nieznanych wspóªczynników cj . Podstawiaj¡c tak wyliczone wyra»enia un+i do równania (10), otrzymamy po lewej stronie znowu wielomian od n, którego wspóªczynnikami s¡ kombinacje liniowe nieznanych wspóªczynników cj . Ci¡g un jest rozwi¡zaniem (10) wtedy i tylko wtedy, gdy dla ka»dego n zachodzi równo±¢. Wielomiany otrzymane po obu stronach musz¡ wi¦c by¢ równe. Porównuj¡c wspóªczynniki po obu stronach, otrzymujemy ukªad równa« liniowych ze wzgl¦du na niewiadome cj , który wystarczy rozwi¡za¢, aby otrzyma¢ wzór na un . Zauwa»my, »e gdyby±my z góry potrali zagwarantowa¢, »e otrzymany w powy»szy sposób ukªad liniowy posiada rozwi¡zanie, to w istocie udowodniliby±my twierdzenie. W tym celu jednak b¦dziemy musieli nasze jako±ciowe rozwa»ania zast¡pi¢ precyzyjnym rachunkiem Dowód twierdzenia. Niech un = cs ns + · · · + c1 n + c0 . Wówczas un+i = s X cj (n + i)j j=0 ! j X j j−m m = cj i n = m m=0 j=0 s s X X j ij−m cj nm . = m m=0 j=m s X Podstawiaj¡c po lewej stronie (10) wyliczone wyra»enie, otrzymujemy r r s s X X X X j ai un+i = ai ij−m cj nm = m m=0 j=m i=0 i=0 ! s s X r X X j ai ij−m cj nm = m m=0 j=m i=0 12 Pr j Przyjmijmy oznaczenie βj = i=0 ai i . Wówczas un jest rozwi¡zaniem (10) wtedy i tylko wtedy, gdy s ≥ k i s X j j=m m βj−m cj = bm , m = 0, 1, . . . , s, (12) przy czym przyjmujemy, »e bm = 0 dla m > k . Ukªad (12) jest ukªadem trójk¡tnym: s-te równanie zawiera jedynie zmienn¡ cs , (s − 1)-sze zawiera cs−1 i cs , ogólnie m-te równanie zawiera zmienne cm , . . . , cs−1 , cs . Gdyby wspóªczynnik przy zmiennej o najni»szym numerze byª zawsze niezerowy, to taki ukªad mo»na by rozwi¡za¢, i to jednoznacznie, wyliczaj¡c poszczególne zmienne od ko«ca. Tego w ogólnym przypadku niestety nie mo»emy zagwarantowa¢. Jako±ciowo ogólna sytuacja nie odbiega jednak zbytnio od tego co powy»ej. Prawdziwy jest bowiem nast¦puj¡cy lemat. Lemat. Co najmniej jedna z liczb β0 , β1 , . . . , βr jest niezerowa. Dowód lematu. Zaªó»my przeciwnie, »e β0 = β1 = · · · = βr = 0 i potraktujmy te równania jako warunki na ai . Otrzymujemy w ten sposób ukªad r + 1 jednorodnych równa« liniowych od r + 1 zmiennych. Macierz gªówna tego ukªadu jest macierz¡ Vandermonde'a, a wi¦c jedynym rozwi¡zaniem jest rozwi¡zanie zerowe, wbrew zaªo»eniu ar 6= 0. Mo»emy teraz powróci¢ do dowodu twierdzenia. Niech j0 b¦dzie najmniejszym wska¹nikiem j , dla którego βj 6= 0. Na mocy lematu 0 ≤ j0 ≤ r. Niech s = k + j0 . Wówczas dla m = s, s − 1, . . . , s − j0 + 1 obie strony równa« (12) s¡ to»samo±ciowo zerowe. Dla m = s − j0 = k otrzymujemy równanie s k βj0 cs = bk . Ogólnie, równanie dla m = s − j0 − i = k − i, k ≥ i ≥ 0, przyjmuje posta¢ kombinacja liniowa s−i βj0 cs−i + = bk−i , cj dla j > s − i k−i a wi¦c ukªad jest niesprzeczny i jednoznacznie wyznacza wspóªczynniki cj dla j ≥ j0 . Zauwa»my, »e na wspóªczynniki cj dla j < j0 nie dostajemy »adnych warunków, a wi¦c mo»na je wybra¢ dowolnie. (W rzeczywisto±ci zazwyczaj interesuje nas konkretny ci¡g, a wi¦c oprócz równania (10) danych jest r wyrazów pocz¡tkowych ci¡gu. Wówczas tak»e te wspóªczynniki mo»na wyznaczy¢ jednoznacznie.) 3.23 Przykªad. Spróbujmy poszuka¢ zwartego wzoru na sum¦ s(n) = 13 + 23 + · · · + n3 . Z okre±lenia ci¡gu sn wynika, »e sn+1 − sn = (n + 1)3 . 13 Rozwi¡zaniem ogólnym równania jednorodnego stowarzyszonego z tym równaniem s¡ ciagi staªe. Poszukajmy rozwi¡zania wielomianowego tej rekurencji. Ma ono posta¢: un = c4 n4 + c3 n3 + c2 n2 + c1 n + c0 . St¡d un+1 = c4 (n + 1)4 + c3 (n + 1)3 + c2 (n + 1)2 + c1 (n + 1) + c0 = = c4 n4 + (4c4 + c3 )n3 + (6c4 + 3c3 + c2 )n2 + (4c4 + 3c3 + 2c2 + c1 )n + +(c4 + c3 + c2 + c1 + c0 ), co prowadzi do ukªadu równa« 4c4 = 1 6c4 + 3c3 = 3 4c4 + 3c3 + 2c2 = 3 c4 + c3 + c2 + c1 = 1, którego rozwi¡zaniem jest c4 = 41 , c3 = 12 , c2 = 14 , c1 = 0. Wspóªczynnik c0 mo»emy wyznaczy¢ z warunku pocz¡tkowego s0 = 0. Ostatecznie otrzymujemy 13 + 23 + · · · + n3 = 1 1 4 (n + 2n3 + n2 ) = n2 (n + 1)2 . 4 4 3.24 Przykªad. Na jak¡ maksymaln¡ ilo±¢ cz¦±ci dzieli pªaszczyzn¦ n prostych? Jedna prosta dzieli pªaszczyzn¦ na 2 cz¦±ci. Dwie nierównolegªe proste dziel¡ pªaszczyzn¦ na 4 cz¦±ci. Zaªó»my, »e pªaszczyzna zostaªa podzielona n prostymi na pewn¡ ilo±¢ cz¦±ci i dorysowujemy now¡ prost¡. Prosta ta dzieli niektóre z cz¦±ci na dwie, a inne pozostawia bez zmian. Je»eli nowa prosta dzieli jaki± obszar na 2 cz¦±ci, to musi przecina¢ któr¡± z prostych stanowi¡cych brzeg tego obszaru. Ustalmy na dorysowanej prostej zwrot i ka»demu obszarowi dzielonemu przez t¦ prost¡ przyporz¡dkujmy `"punkt wyj±cia"prostej z tego obszaru. Punkt taki posiada ka»dy obszar z wyj¡tkiem ostatniego i jest to punkt przeci¦cia z jedna ze starych prostych. Przy dorysowaniu (n + 1)-szej prostej mo»e przyby¢ co najwy»ej n + 1 nowych obszarów. B¦dzie tak dokªadnie wtedy, gdy nowa prosta nie b¦dzie równolegªa do »adnej z poprzednich. Je±li wi¦c oznaczymy przez `n maksymaln¡ ilo±¢ obszarów na jakie n prostych dzieli pªaszczyzn¦, to `n+1 − `n = n + 1. Rozwi¡zanie. Poniewa» jedynymi rozwi¡zaniami równania jednorodnego stowarzyszone z tym równaniem s¡ ci¡gi staªe, wi¦c poszukiwany ci¡g `n b¦dzie wielomianem od n stopnia co najwy»ej 2: `n = c2 n2 + c1 n + c0 . Równo±¢ [c2 (n + 1)2 + c1 (n + 1) + c0 ] − [c2 n2 + c1 n + c0 ] = n + 1 14 daje ukªad równa« 2c2 = 1 c2 + c1 = 1 Rozwi¡zaniami ukªadu s¡ c2 = c1 = 21 , sk¡d `n = 12 n(n + 1) + c0 . Uwzgl¦dniaj¡c warto±¢ `1 = 2, otrzymujemy c0 = 1 i ostatecznie `n = 12 n(n + 1) + 1. 3.25 Uwaga. W powy»szych przykªadach dzi¦ki rekurencji zawsze udawaªo si¦ wyprowadzi¢ zwarty wzór dla szukanego ci¡gu. Nie nale»y s¡dzi¢, »e rekurencja jest narz¦dziem sªu»¡cym jedynie do znajdowania takich wzorów. W wielu przykªadach rekurencji nie daje si¦ rozwi¡za¢, a nawet je±li takie wzory istniej¡ to mog¡ okaza¢ si¦ maªo praktyczne (porównaj szybko±¢ obliczania symboli dwu n! mianowych na podstawie trójk¡ta Pascala i ze wzoru zwartego nk = k!(n−k)! oraz wzór zwarty i wzór rekurencyjny dla liczb Fibonacciego). 3.26 Notacja O i Θ. Denicja. Niech f i g b¦d¡ dwoma ci¡gami o warto±ciach rzeczywistych. Pi- szemy f = O(g) wtedy i tylko wtedy, gdy istnieje liczba n0 ∈ N taka, »e dla ka»dej liczby naturalnej n > n0 (1) warto±ci f (n) i g(n) s¡ dodatnie; oraz (2) istnieje staªa dodatnia C ∈ R taka, »e f (n) ≤ Cg(n). Przykªad. n2 − 3n + 5 = O(n2 ). Uwagi: (1) Zapis ma wygodn¡ form¦ równo±ci, ale w rzeczywisto±ci jest pewn¡ nierówno±ci¡. St¡d rola wyra»e« si¦ po obu stronach nie jest √ pojawiaj¡cych 2 n = O(n ) jest prawdziwe, to zapis n2 = symetryczna: o ile wyra»enie n √ O(n n) jest bª¦dny. (2) Jakkolwiek zapisy n2 = O(n3 ) i n2 = O(n2 +ln ln n) s¡ formalnie rzecz bior¡c poprawne, to ide¡ notacji O jest ograniczenie ci¡gu po lewej stronie przez ci¡g, którego opis (wzór) jest prostszy i który nie ro±nie zbyt szybko w porównaniu z danym ci¡giem. Denicja. Piszemy f = Θ(g) je±li jednocze±nie f = O(g) oraz g = O(f ). Oznacza to, »e istniej¡ dwie staªe dodatnie C1 oraz C2 takie »e dla wszystkich liczb n wi¦kszych od pewnej liczby n0 ∈ N zachodzi C1 g(n) ≤ f (n) ≤ C2 g(n). W szczególno±ci, je±li istnieje niezerowa granica limn→∞ f (n) g(n) , to f = Θ(g). Przykªad. Z 3.20 wynika, »e je±li Fn jest n-t¡ liczb¡ Fibonacciego i λ1 = to 1 Fn =√ , n n→∞ λ 5 1 lim a wiec Fn = Θ(λn1 ) = O(1, 62n ). Powy»sz¡ obserwacj¦ mo»na uogólni¢. 15 √ 1+ 5 2 , Twierdzenie. Je»eli ci¡g u = (un )∞ n=0 liczb dodatnich speªnia liniowe jedno- rodne równanie rekurencyjne (8), przy czym równanie charakterystyczne nie ma pierwiastków wielokrotnych, to istnieje taka staªa dodatnia C , »e u = O(C n ). Dowód. Niech λ1 , λ2 ,. . . ,λk b¦d¡ wszystkimi pierwiastkami równania charakterystycznego. Mo»emy zaªo»y¢, »e |λ1 | ≥ |λ2 | ≥ . . . ≥ |λk | i niech C b¦dzie dowoln¡ staªa tak¡, »e C ≥ |λ1 |. Z twierdzenia w 3.19 wiemy, »e un = α1 λn1 + α2 λn2 + · · · + αk λnk . Wówczas stosunek un Cn n n n λ1 λ2 λk + α2 + · · · + αk ≤ C C C n n n λ2 λk λ1 ≤ |α1 | + |α2 | + · · · + |αk | ≤ C C C ≤ |α1 | + |α2 | + · · · + |αk |, = α1 a wi¦c jest ograniczony przez staª¡ niezale»n¡ od n. Oczywi±cie im wi¦cej jeste±my w stanie powiedzie¢ o ci¡gu u (Jakie s¡ pierwiastki λi ? Które ci¡gi geometryczne (λni )∞ n=0 wchodz¡ do przedstawienia ci¡gu u z niezerowym wspóªczynnikiem?), tym dokªadniejsze b¦dzie nasze oszacowanie. Je±li nie potramy rozwi¡za¢ równania charakterystycznego, to mo»emy posªu»y¢ si¦ oszacowaniem Gaussa dla pierwiastków równania algebraicznego i przyj¡¢ C = max |ai | + 1, gdzie ai s¡ wspóªczynnikami rekurencji (8). 16