Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Studium Talent

Lista 5. Rekurencje - wskazówki i rozwiązania.

1. Kroki indukcyjne:

a) (F1 + F2 + . . . + Fn ) + Fn+1 = (Fn+2 − 1) + Fn+1 = (Fn+1 + Fn+2 ) − 1 = Fn+3 − 1


b) (F1 + F3 + F5 + . . . + F2n−1 ) + F2(n+1)−1 = (F2n ) + F2n+1 = F2n+2
c) (F12 + F22 + . . . + Fn2 ) + Fn+1
2 2
= (Fn Fn+1 ) + Fn+1 = Fn+1 (Fn + Fn+1 ) = Fn+1 Fn+2
d) Indukcja po n przy k ustalonym (może być też odwrotnie).
zal
F(n+1)+k = Fn+k + Fn−1+k ind.
= (Fk Fn+1 + Fk−1 Fn ) + (Fk Fn + Fk−1 Fn−1 )
= Fk (Fn + Fn+1 ) + Fk−1 (Fn + Fn−1 ) = Fk Fn+2 + Fk−1 Fn+1 .
Należy zwrócić uwagę, że powyższe obliczenia mają sens dopiero od n = 2 (ponieważ występuje Fn−1 ),
więc w pierwszym kroku indukcji należy sprawdzić nie tylko n = 1, ale również n = 2.
Dodatkowo, powyżej skorzystaliśmy z założenia indukcyjnego nie tylko dla n, ale również n − 1. Nie
omawialiśmy takiej możliwości, ale należy rozumieć to tak, że indukcja matematyczna działa jak
reakcja łancuchowa - prawdziwośc wzoru dla ustalonego n oznacza tak naprawdę prawdziwość dla
wszystkich mniejszych liczb n.

2. Złoty podział wyraża się ułamkiem ϕ = 1+2 5 . Korzystając ze wzoru jawnego na ciąg Fibonacciego,
pokazać że
Fn+1 p
a) lim = ϕ, b) lim n Fn = ϕ.
n→∞ Fn n→∞

Przypomnijmy:
√ !n √ !n
1 5+1 1 1− 5
Fn = √ −√
5 2 5 2

a) √ √ √
1 1 2 5−1 2( 5 − 1) 1− 5
− =−√ = −√ ·√ =− = .
ϕ 5+1 5+1 5−1 4 2
2

b) Ponieważ ϕ > 1, mamy


 n+1  n+1
Fn+1 ϕn+1 − − ϕ1 ϕ − ϕ1n − ϕ1 ϕ−0
=  n =  n −→ =ϕ
Fn ϕn − − ϕ1 1 − ϕ1n − ϕ1 1−0

c) Ponownie korzystamy z faktu, że ϕ > 1:


v  n   n 1/n
u
ϕ n − −1 1 − − 1
1−0 0
u  
p n ϕ ϕ 2
n
√ √ −→ ϕ √
t
Fn = =ϕ   = ϕ.
5 5 5

3. Podzielmy wszystkie możliwe sposoby przejścia w zależności od liczby kroków podwójnych. Jeśli nie
wykonamy żadnego kroku podwójnego, to mamy jeden sposób wejcia (który możemy zapisać jako n0 ).


Przyjednym kroku podwójnym wykonamy w sumie n − 1 kroków, tylko musimy zdecydować (na n − 1 =
n−1
1 sposobów), który z nich będzie podwójny. Przy dwóch krokach podwójnych wykonamy w sumie
n − 2 wszystkich kroków, z czego na n−2

2 sposobów możemy wybrać, które z nich będą podwójne. Itd.
4. Liczby Lucasa opisane są rekurencją Ln+2 = Ln+1 + Ln , L0 = 2, L1 = 1. Znajdź wzór na Ln .
Równanie charakterystyczne jak dla ciągu Fibonacciego (ta sama rekurencja), więc z wykładu wiemy, że
√ !n √ !n
1+ 5 1− 5
Ln = A +B
2 2

dla pewnych liczb B. Aby je policzyć, skorzystamy z warunku początkowego L0 = 2, L1 = 1. Mianowicie


wstawiając n = 0 i n = 1 w powyższym wzorze otrzymujemy układ równań
(
2 = A + B, 
√  √ 
1 = A 1+2 5 + B 1−2 5 .

Rozwiązaniem jest A = B = 1, stąd ostatecznie


√ !n √ !n
1+ 5 1− 5
Ln = + .
2 2

5. Znajdź rozwiązanie każdego z poniższych równań rekurencyjnych:

a) Równanie charakterystyczne: x2 = 6x − 5. Pierwiastki: 5 oraz 1


Postać ogólna an = A · 5n + B
1 n
Po podstawieniu warunków początkowych: an = 20 5 + 23 .
b) Równanie charakterystyczne: x2 = 6x − 9. Pierwiastki: 3 (podwójny)
Postać ogólna an = (A + B · n)3n
Po podstawieniu warunków początkowych: an = 1 89 − 89 n · 3n .

√ √
c) Równanie
√ ncharakterystyczne: x2 = 2x− 4. Pierwiastki: 1 + 3i oraz 1 − 3i
(1 + 3i) = 2n cos nπ nπ

3 + i sin  3
Postać ogólna an = A · 2n cos nπ n sin nπ

+ B · 2
3 3  √
Po podstawieniu warunków początkowych: an = 2n cos nπ n+1 sin nπ .

3 + 3·2 3
d) Równanie charakterystyczne: x2 = 2x
 − 2. Pierwiastki: 1 + i oraz 1 − i
n n/2 nπ
cos 4 + i sin nπ

(1 + i) = 2 4
Postać ogólna an = A · 2n/2 cos nπ n/2 sin nπ

4 +B·2 4n n
Po podstawieniu warunków początkowych: an = −2 2 −1 cos nπ −1 nπ
 
4 +2 sin .
2
4

6. Wyznacz rozwiązania szczególne następujących równań rekurecnyjnych:


a) a0 = 1, an = 2an−1 + 3; b) a0 = 0, an = 2an−1 + 5n.

a) Zapisujemy rekurencję na dwa sposoby:



an = 2an−1 + 3,
an−1 = 2an−2 + 3.

Następnie odejmujemy stronami otrzymując

an = 3an−1 − 2an−2 .

Do tej rekurencji potrzebujemy dodatkowy warunek początkowy (oprócz a0 = 1), który wyliczamy z
oryginalnej rekurencji: a1 = 5. Rozwiązujemy tę rekurencję jak w poprzednim zadaniu i otrzymujemy

an = 2n+2 − 3
b) Zapisujemy rekurencję na dwa sposoby:

an = 2an−1 + 5n,
an−1 = 2an−2 + 5(n − 1).

Następnie odejmujemy stronami otrzymując

an = 3an−1 − 2an−2 + 5.

Aby pozbyć się liczby 5 na końcu rekurencji, powtarzamy procedurę:



an = 3an−1 − 2an−2 + 5,
an−1 = 3an−2 − 2an−3 + 5.

Odejmując obustronnie, otrzymujemy

an = 4an−1 − 5an−2 + 2an−3 .

Równanie charakterystyczne:

x3 = 4x2 − 5x + 2
x3 − 4x2 + 5x − 2 = 0
(x3 − 4x2 + 4x) + x − 2 = 0
x(x2 − 4x + 4) + x − 2 = 0
x(x − 2)2 + x − 2 = 0
(x − 2)(x(x − 2) + 1)
x − 2(x2 − 2x + 1)
(x − 2)(x − 1)2

Pierwiastki: 2 oraz 1 (podwójny). Stąd

an = A · 2n + B + C · n

Z oryginalnej rekurencji wyliczamy warunki początkowe a0 = 0, a1 = 5, a2 = 20. Wstawiamy do


równania i otrzymyjemy

 0 = A + B,
5 = 2A + B + C,
20 = 4A + B + 2C.

Rozwiązujemy układ równań (na przykład obliczjąc B z pierwszego równania i wstawiając do po-
zostałych): A = 10, B = −10, C = −5. Stąd

an = 10 · 2n − 5(n + 2).

7. Poniżej wyjaśnienie, jak ułożyć rekurencje. Rozwiązuje się je tak jak w zadaniu 5.

a) Rozważmy cięg długoci n.


Jeśli na pierwszym mmiejscu położymy inną literę niż A, to pozostałe n − 1 możemy wypełnić bez
patrzenia się na tę pierwszą literę, ponieważ nie spowoduje ona kolizji, czyli na an−1 sposobów. Liter
różnych od A są 3, więc daje to 3an−1 możliwości w tym przypadku.
Jeśli ciąg zaczyna się od A, to kolejna litera musi być inna, więc możemy wybrać na na 3 sposoby.
Pozostaje n − 2 liter do położenia, ale ponieważ druga litera jest inna niż A, to nie wpłynie ona na
sposób układania pozostałych n − 2 liter (podbnie jak w poprzednim przypadku), więc otrzymujemy
3an−2 możliwości.
Stąd
an = 3an−1 + 3an−2 .

Warunki początkowe:
a1 = 4 - w ciągu o długości jeden nic sie nie może powtórzyć
a2 = 15 - od wszystkich 16 możłiwości trzeba odjąć ciąg AA.

b) Jeśli pierwsza litera jest inna niż A (3 możliwości), to na pozostałych n − 1 polach jest parzysta liczba
A, więc w tym przypadku otrzymujemy 3an−1 możliwości.
Jeśli pierwsza jest litera A, to na pozostałych n − 1 polach jest nieparzysta liczba liter A. Mozna
je policzyć odejmując od wszystkich 4n−1 ciągów o długości n − 1 te z parzystą liczbą A. W tym
przypadku jest więc 4n−1 − an−1 możliwości. Ostatecznie

an = 3an−1 + (4n−1 − an−1 ) = 2an−1 + 4n−1 .

Aby pozbyć się składnika 4n−1 , zapiszczy rekurencję nieco inaczej (wstawiając n − 1 za n):

an−1 = 2an−2 + 4n−2 .

Mnożąc tę rekurencję przez 4 i odejmując stronami od tej wczeniejszej, dostajemy an − 4an−1 =


2an−1 − 8an−1 , czyli

an = 6an−1 − 8an−2 . (1)

Warunki początkowe:
a1 = 3 - zero liter A
a2 = 10 - zero liter A (3 × 3 możliwości) lub same litery A (1 możliwość).

Inny sposób policzenia sytuacji, gdy na początku jest ciągu stoi A:


Rozważymy przypadki w zależności od tego, gdzie pojawiła się litera A poraz drugi Jeśli jest to
miejsce o numerze k, wtedy na pozostałych n − k miejscach litera A wystepuje parzystą liczbę razy,
więc możemy je obstawić na an−k sposobów. Ponadto, miejsca między pierwszą a drugą literą A,
których jest k − 2, możeby onstawić pozostałymi literami na 3k−2 sposobów. Dostajemy w tym przy-
padku an−2 + 3an−3 + 32 an−4 + ... + 3n−3 . Łącząc to z przypadkiem, gdy A nie stoi na pierwszym
miejscu, otrzymujemy

an = 3an−1 + an−2 + 3an−3 + 32 an−4 + ... + 3n−3 a1 .

Podstawmy n − 1 za n i pomnożmy przez 3

3an−1 = 9an−2 + 3an−3 + 32 an−4 + 33 an−5 + ... + 3n−3 a1 .

odejmując stronami, otrzymujemy

an − 3an−1 = 3an−1 + an−2 − 9an−2 ,

co ponownie daje nam wzór (1).

8. a) Każdy ciąg zero-jedynkowy o długości n można utożsamić z podzbiorem zbioru {1, ..., n} w taki sosób,
że jeśli na pozycji k jest zero, to liczba k nie należy do podzbioru, a jeśli jeden, to k należy do tego
podzbioru.
b) Idea jest podobna do drugiego sposobu z zadania 7a.
Jeśli na pierwszym miejscu ciągu o długości n stoi zero, to na pozostałych n − 1 miejscach jest liczba
jedynek pdzielna przez 3, więc te n − 1 pozycji możemy obstawić na an−1 sposobów.
Jeśli na pierwszym miejscu jest jedynka, to pozostała liczba jedynek nie dzieli się przez 3, więc nie
możemy w oczywisty sposób przedstawić liczby możliwości w tm przypadku za pomocą wyrazów ciągu
(an ). Rozważymy moment, w którym pojawia trzeci ajedynka, ponieważ wtedy liczba pozostałych
jedynek będzie dzieliła sie przez 3. Jeśli trzecia jedynka stoi na miejscu k ≥ 3, to pierwsze k pozycji
wygląda w ten sposób, że na pierwszym i k-tym miejscu jest jedynka, oraz jedna jedynka gdzieś na
jednej z k − 2 pozycji między jedynkami o numerze 1 i 3. Pozostałe pozycje możemy obstawić na an−k
sposobów, więc jeśli trzecia jedynka jest na pozycji k, to mamy (k − 2)an−k możliwości. Sumując po
wszystkich możliwych k oraz dodając możliwości, gdy na początki ciągu jest zero, otrzymujemy

an = an−1 + an−3 + 2an−4 + 3an−5 + ... + (n − 3)a1 + (n − 2).

Ostatni składnik odpowiada sytuacji, gdy trzecia jedynka jest na osttaniej pozycji.
Aby uprościć tę reurencję zapiszmy ją dla an−1 :

an−1 = an−2 + an−4 + 2an−5 + 3an−6 + ... + (n − 4)a1 + (n − 3).

Odejmując ją od poprzedniej otrzymujemy:

an − an−1 = an−1 − an−2 + an−3 + an−4 + an−5 + ... + a1 + 1,

a po uproszczeniu

an = 2an−1 − an−2 + an−3 + an−4 + an−5 + ... + a1 + 1.

Widać, że uprościły się współczynniki, ale dalej rekurencja jest dość skomplikowana. Powtórzmy tę
procedurę dla nowej rekurencji. Dla an−1 mamy

an−1 = 2an−2 − an−3 + an−4 + an−5 + ... + a1 + 1.

Po odjęciu
an − an−1 = 2an−1 − 3an−2 + 2an−3 .
Ostatecznie
an = 3an−1 − 3an−2 + 2an−3 .

c) Równanie charakterystyczne to x3 = 3x2 − 3x + 2. Po przekształceniu

x3 − 3x2 + 3x − 2 = 0
(x3 − 3x2 + 2x) + (x − 2) = 0
x(x − 2)(x − 1) + (x − 2) = 0
(x − 2)(x(x − 1) + 1) = 0
(x − 2)(x2 − x + 1) = 0.
√ √
1 3 1 3
∆ = −3, więc rozwiązania to x1 = 2, x2 = 2 + 2 i oraz x3 = x2 = 2 − 2 i. Rozwiązanie ogolne
rekurencji ma postać
√ ! √ !
1 3 1 3
an = A · 2n + B · Re ( + i)n + C · Im ( + i)n .
2 2 2 2

Ponieważ
√ !n
1 3
+ i = (cos(π/3) + i sin(π/3))n = cos(nπ/3) + i sin(nπ/3),
2 2

mamy
an = A · 2n + B · cos(nπ/3) + C · sin(nπ/3).
Łatwo policzyć, że a1 = 1, a2 = 1, a3 = 2, więc
 √
 1 = A · 2 + B · 12 + C · 2√3

1 = A · 22 − B · 1 + C · 23
 2 = A · 23 − B. 2

Rozwiązaniem układu równań jest A = 13 , B = 23 , C = 0, stąd ostatecznie

1 2 2  n−1  nπ 
an = 2n + cos(nπ/3) = 2 + cos ,
3 3 3 3
czyli tak samo, jak w zadaniu 3 z listy 5.

9. Budowę prostokąta możemy zacząć na 2 sposoby:

W pierwszym przypadku zostanie nam do zbudowania prostokąt o wymiarach 2 × (n − 2), a w drugim o


wymiarach 2 × (n − 1). Stąd
an = an−2 + an−1 .
Warunki początkowe:
a1 = 1, a2 = 2.
Pozostaje rozwiązać rekurencję. Wychodzi an = Fn+1

10. Budowę wieży możemy zacząć na 3 sposoby:

W pierwszym przypadku zostanie nam do zbudowania wieża o wysokości n − 1, a w dwóch pozostałych o


wysokości n − 2. Stąd
an = an−1 + 2an−2 .
Warunki początkowe:
a1 = 1, a2 = 3.
Pozostaje rozwiązać rekurencję.

11. 000, 001, 002, 010, 012, 020, 021, 100, 101, 102, 120, 121, 200, 201, 202, 210, 212
Układanie rekurencji:
Sposób 1: rozważając różne początki
Jeśli zaczniemy budowę ciągu od liczby 0, to nie wpływa to na kolejne elementy, więc pozostałe n-1 pozyscji
uzupełniamy na an−1 sposobów.
Jeśli na pierwszym miejscu stoi liczba 1, to nie możemy kolejnych miejsc obsadzić nie przejmujac się tą
jedynką, ponieważ może sie zdarzyć, że na drugim miejscu też pojawi się jedynka i nie będą spełnione
warunki zadania. Rozważmy więc postanie na drugim miejscu zera lub dwójki. Dla zera możemy kolejne
miejca obstawić nie przejmując się nim, czyli na an−2 sposobów, ale dla dwójki znów jest problem ponieważ
może kolejny element nie może być dwójką. Widać więc, że musimy rozważyć przypadki w zależności od
tego, na którym miejscu pojawia się pierwsze zero: jeśli jest ono na miejscu o numerze k ≥ 2, to pozostałe
n − k pozycji możemy ustawić nie przejmując się tym zerem, czyli na an−k sposobów, a na pozycjach
przed zerem mamy tylko jedną możliwość (przy założeniu, że zaczynamy od jedynki), ponieważ będa to
na zmianę liczby 1 i 2. Dostajemy więc w tym przypadku an−2 + an−3 + ... + a1 możliwości.
Analogicznie wygląda sytuacja, gdy na pierwszym miejscu stoi liczba 2. Stąd

an = an−1 + 2(an−2 + an−3 + ... + a1 ).

Aby uprościć tę rekurencję, zapiszemy ją inaczej, wstawiając n − 1 zamiast n:

an−1 = an−2 + 2(an−3 + an−4 + ... + a1 ).

Odejmując stronami dostajemy:


an − an−1 = an−1 + an−2 ,
co ostatecznie daje
an = 2an−1 + an−2 .
Sposób 2: rozważając różne zakończenia
Z każdego ciągu o długości n − 1 wygenerujmy 2 ciągi o długości n dopisując jedną liczbę - inną niż tę,
która jest na osttaniej pozycji. Np. z ciągu 200021 wybererujemy ciągi 2000210 i 2000212, a z ciągu
20102010 ciągi 201020101 i 20102012. Da to nam gwarancję, że dwie ostatnie liczby sie nie powtórzą.
Takich możliwości jest 2an−1 . Niemiej jednak, zera mogą się powtórzyć. Aby wygenerować ciągi z dwoma
zerami na końcu, wystarczy wygenerować dowolny ciąg dlugości n − 2 w którym 1 ani 2 nie występuje dwa
razy z rzędu i dopisać na końcu dwa zera. Daje to an−2 możliwości. Stąd

an = 2an−1 + an−2 .

Warunki początkowe:
a1 = 3
a2 = 7 - od wszystkich możłiwych 9 ciągów wyrzucamy ciągi 11 i 22.
Pozostaje rozwiązać rekurencję.

12. Wygenerujmy nieporządki o długości n + 1 w następujący sposób:


Startując z wyjściowego ukladu 123...n(n+1), permutujemy pierwsze n liczb, tak aby tworzyły nieporządek
(na dn sposobów), a następnie wybieramy jedną z tych liczb (na n sposobów) i zamieniamy z liczbą n.
Jest to nieporządek wszystkich n liczb, ponieważ liczby które zamieniliśmy na końcu na pewno nie stoją
na takich miejscach, jaki mają numer, a pozostałe też stoją na innych miejscach, ponieważ zapewnia nam
to pierwszy krok, po którym wszystkie liczby od 1 do n stały nie na swoich pozycjach. Daje nam to
ndn różnych permutacji. Nie są to jednak wszystkie. Mianowicie, przed zamianą dwóch ostatnich liczb,
mniejsza z nich nie stała za swojej pozycji, więc po zamianie liczba n + 1 będzie na pewno stała na innej
pozycji niż numer liczby, która aktualnie jest na końcu. Musimy więc policzyć jeszcze permutacje, w
których liczba n + 1 stoi na miejscu o numerze k, a liczba k na miejscu o numerze n + 1, czyli na końcu
ciągu. Procedura jest następująca: najpierw na n sposobów wybieramy liczbę, którą zamienimy z liczbą
n + 1, a następnie pozostałe n − 1 liczby zamieniamy swoimi pozycjami tak, czyli generujemy nieporządek
n − 1 liczb. W tym przypadku dostajemy więc ndn−1 możliwości. Ostatecznie

dn+1 = n(dn + dn−1 ).

You might also like