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