|
|
Linia 6: |
Linia 6: |
|
| |
|
| <center><math>\displaystyle \left\lbrace | | <center><math>\displaystyle \left\lbrace |
|
| |
| \begin{array} {r c l} | | \begin{array} {r c l} |
| a_0 &= 2,\\ | | a_0 &= 2,\\ |
| a_1 &= 5,\\ | | a_1 &= 5,\\ |
| a_n &= 5 a_{n-1} - 6 a_{n-2}\quad\textrm{dla}\ n\geq 2. | | a_n &= 5 a_{n-1} - 6 a_{n-2}\quad\textrm{dla}\ n\geq 2. |
|
| |
| \end{array} | | \end{array} |
| \right. | | \right. |
Linia 51: |
Linia 49: |
|
| |
|
| <center><math>\displaystyle \left\lbrace | | <center><math>\displaystyle \left\lbrace |
|
| |
| \begin{array} {r c l} | | \begin{array} {r c l} |
| a_0 &= 1,\\ | | a_0 &= 1,\\ |
| a_1 &= 2,\\ | | a_1 &= 2,\\ |
| a_n &= \frac{a_{n-1}^2}{a_{n-2}}\quad\textrm{dla}\ n\geq 2. | | a_n &= \frac{a_{n-1}^2}{a_{n-2}}\quad\textrm{dla}\ n\geq 2. |
|
| |
| \end{array} | | \end{array} |
| \right. | | \right. |
Linia 91: |
Linia 87: |
|
| |
|
| <center><math>\displaystyle \left\lbrace | | <center><math>\displaystyle \left\lbrace |
|
| |
| \begin{array} {r c l} | | \begin{array} {r c l} |
| l_0 &= 1,\\ | | l_0 &= 1,\\ |
| l_1 &= 3,\\ | | l_1 &= 3,\\ |
| l_n &= l_{n-1}+ l_{n-2}\quad\textrm{dla}\ n\geq 2. | | l_n &= l_{n-1}+ l_{n-2}\quad\textrm{dla}\ n\geq 2. |
|
| |
| \end{array} | | \end{array} |
| \right. | | \right. |
Linia 174: |
Linia 168: |
|
| |
|
| <center><math>\displaystyle \left\lbrace | | <center><math>\displaystyle \left\lbrace |
|
| |
| \begin{array} {r c l} | | \begin{array} {r c l} |
| T\!\left( 1 \right) &= 0,\\ | | T\!\left( 1 \right) &= 0,\\ |
| T\!\left( n \right) &= T\!\left( \left\lceil \frac{n}{2} \right\rceil \right)+1\quad\textrm{dla}\ n\geq 2. | | T\!\left( n \right) &= T\!\left( \left\lceil \frac{n}{2} \right\rceil \right)+1\quad\textrm{dla}\ n\geq 2. |
|
| |
| \end{array} | | \end{array} |
| \right. | | \right. |
Linia 186: |
Linia 178: |
|
| |
|
| <center><math>\displaystyle \left\lbrace | | <center><math>\displaystyle \left\lbrace |
|
| |
| \begin{array} {r c l} | | \begin{array} {r c l} |
| T\!\left( 1 \right) &= 0,\\ | | T\!\left( 1 \right) &= 0,\\ |
| T\!\left( 2^k \right) &= T\!\left( 2^{k-1} \right)+1\quad\textrm{dla}\ k\geq 1. | | T\!\left( 2^k \right) &= T\!\left( 2^{k-1} \right)+1\quad\textrm{dla}\ k\geq 1. |
|
| |
| \end{array} | | \end{array} |
| \right. | | \right. |
Linia 256: |
Linia 246: |
|
| |
|
| <center><math>\displaystyle \left\lbrace | | <center><math>\displaystyle \left\lbrace |
|
| |
| \begin{array} {r c l} | | \begin{array} {r c l} |
| T\!\left( 1 \right) &= 0,\\ | | T\!\left( 1 \right) &= 0,\\ |
| T\!\left( 2^n \right) &= 2T\!\left( 2^{n-1} \right)+\frac{3}{2}\cdot2^n\quad\textrm{dla}\ n\geq 1. | | T\!\left( 2^n \right) &= 2T\!\left( 2^{n-1} \right)+\frac{3}{2}\cdot2^n\quad\textrm{dla}\ n\geq 1. |
|
| |
| \end{array} | | \end{array} |
| \right. | | \right. |
Linia 292: |
Linia 280: |
|
| |
|
| <center><math>\displaystyle \left\lbrace | | <center><math>\displaystyle \left\lbrace |
|
| |
| \begin{array} {r c l} | | \begin{array} {r c l} |
| T\!\left( 2 \right) &= 0,\\ | | T\!\left( 2 \right) &= 0,\\ |
| T\!\left( n \right) &= 2T\!\left( \sqrt{n} \right)+1\quad\textrm{dla}\ n\geq 1, | | T\!\left( n \right) &= 2T\!\left( \sqrt{n} \right)+1\quad\textrm{dla}\ n\geq 1, |
|
| |
| \end{array} | | \end{array} |
| \right. | | \right. |
Linia 315: |
Linia 301: |
|
| |
|
| <center><math>\displaystyle \left\lbrace | | <center><math>\displaystyle \left\lbrace |
|
| |
| \begin{array} {r c l} | | \begin{array} {r c l} |
| T\!\left( 2 \right) &= 0,\\ | | T\!\left( 2 \right) &= 0,\\ |
| T\!\left( 2^{2^k} \right) &= 2T\!\left( 2^{2^{k-1}} \right)+1\quad\textrm{dla}\ k\geq 1, | | T\!\left( 2^{2^k} \right) &= 2T\!\left( 2^{2^{k-1}} \right)+1\quad\textrm{dla}\ k\geq 1, |
|
| |
| \end{array} | | \end{array} |
| \right. | | \right. |
Rekurencja
Ćwiczenie md0 rekurencja liniowa
Znajdź postać zwartą ciągu zadanego równaniem rekurencyjnym:
Wskazówka
Wypisz kilka początkowych wyrazów ciągu.
Zaobserwuj, że
a następnie udowodnij to indukcyjnie ze względu na .
Rozwiązanie
Przeprowadźmy dowód, że , indukcyjnie ze względu na .
Dla wartości początkowych dostajemy odpowiednio, że
Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned a_0&=2 \ =\ 2^0+3^0,\\ a_1&=5 \ =\ 2^1+3^1. \endaligned}
Przejdźmy więc do przypadku .
Na mocy zależności rekurencyjnej otrzymujemy, że
Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned a_n&=5 a_{n-1} - 6 a_{n-2}\\ &=5\left( 2^{n-1}+3^{n-1} \right)-6\left( 2^{n-2}+3^{n-2} \right)\\ &=4\cdot2^{n-2}+9\cdot3^{n-2}\\ &=2^n+3^n, \endaligned}
co kończy dowód.
Ćwiczenie md0 rekurencja kolejne potegi
Znajdź postać zwartą ciągu zadanego równaniem rekurencyjnym:
Wskazówka
Wypisz kilka początkowych wyrazów ciągu.
Zaobserwuj, że
a następnie udowodnij to indukcyjnie ze względu na .
Rozwiązanie
Przeprowadźmy dowód, że , indukcyjnie ze względu na . Dla wartości początkowych dostajemy odpowiednio, że
Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned a_0&= 1\ =\ 2^0,\\ a_1&= 2\ =\ 2^1. \endaligned}
Przejdźmy więc do przypadku . Na mocy zależności rekurencyjnej otrzymujemy, że
co kończy dowód.
Ćwiczenie md0 rekurencja lucas
Ciąg liczb Lucasa jest definiowany następującą zależnością rekurencyjną:
Udowodnij, że
gdzie jest -tą liczbą Fibonacci'ego.
(Dla precyzji obliczeń przyjmij, że .)
Wskazówka
Zastosuj indukcję względem .
Rozwiązanie
Dowód przeprowadzimy, indukcyjnie ze względu na . Dla wartości początkowych dostajemy odpowiednio, że
Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned f_1 + f_{-1}&= 1 + 0\ =\ 1\ = l_0,\\ f_2 + f_0&=2 + 1\ =\ 3\ = l_1. \endaligned}
Przejdźmy więc do przypadku . Na mocy zależności rekurencyjnej otrzymujemy, że
Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned l_n&=l_{n-1} + l_{n-2}\\ &=\left( f_n + f_{n-2} \right)+\left( f_{n-1} + f_{n-3} \right)\\ &=\left( f_n + f_{n-1} \right)+\left( f_{n-2} + f_{n-3} \right)\\ &=f_{n+1} + f_{n-1}, \endaligned}
co kończy dowód.
Ćwiczenie md0 rekurencja zgadywanie
Adam i Marek zabawiali się w następującą grę.
Adam wymyślał liczbę z zakresu od do .
Zadaniem Marka było odgadnąć tę liczbę
zadając Adamowi pytania, na które mógł odpowiadać jedynie TAK lub NIE.
Znajdź najmniejszą liczbę pytań, po której Marek zawsze odnajdzie szukaną liczbę.
Wskazówka
Załóżmy, że Marek ma pewność, że szukana liczba znajduje się w przedziale
.
Po uzyskaniu odpowiedzi na pytanie,
czy jest większa niż ,
Marek zawęzi zbiór poszukiwań o połowę,
szukając później liczby w przedziale
albo w przedziale
.
Dla uproszczenia obliczeń załóż, że Marek szuka liczby z zakresu
.
Rozwiązanie
Strategię Marka można przedstawić w następujący rekurencyjny sposób:
- Jeśli szukana liczba jest z zakresu , gdzie ,
to Marek wie, że szukana liczba to .
- Jeśli szukana liczba jest z zakresu , gdzie ,
to Marek zadaje pytanie, czy .
Gdy Adam odpowie:
- NIE, to ,
- TAK, to .
Za każdym razem, zbiór możliwych wartości zmniejsza się o połowę.
Tak pomniejszony zbiór przeszukujemy wykorzystując rekurencyjnie opisywaną strategię.
Dla uproszczenia obliczeń załóżmy,
że Marek na początku powiększa przedział poszukiwań do
.
Może oczywiście tak zrobić, bo
Równanie rekurencyjne opisujące liczbę zapytań jest więc postaci
Dla liczb postaci , gdzie otrzymujemy prostszą postać:
Pokażmy indukcyjnie, że
Dla otrzymujemy, że
Przejdźmy więc do przypadku, gdy .
Korzystając z założenia indukcyjnego, że , otrzymujemy:
W konsekwencji wiemy, że liczba pytań po których Marek
dowie się o jaką liczbę chodzi jest równa
Ćwiczenie md0 rekurencja karty
Talia składa się z kart.
Sortujemy te karty poprzez rekurencyjne rozkładanie ich na dwie równe kupki
w następujący sposób:
- Jeśli kupka składa się z jednej karty, to kupka ta jest posortowana.
- Kupkę zawierającą kart, gdzie ,
dzielimy na dwie kupki zawierające po kart.
Każdą z tych mniejszych kupek sortujemy oddzielnie
(powtarzając rekurencyjnie całą procedurę sortowania).
Następnie kolejno zbieramy karty ze szczytów obu kupek,
zawsze zabierając większą z dwu szczytowych kart.
Oblicz ile ruchów potrzebnych było do posortowania wszystkich kart,
jeżeli rozdzielenie kart na dwie kupki wymaga ruchów,
a złożenie dwu posortowanych kupek, o kartach,
w jedną całość wymaga ruchów.
Wskazówka
Udowodnij indukcyjnie, ze względu na ,
że liczba ruchów potrzebna do posortowania kart
wymaga ruchów.
Rozwiązanie
Z definicji rekurencyjnej sortowania kart wynika,
że dla liczba potrzebnych przełożeń kart
jest równa sumie
- ruchów na rozdzielenie kupek,
- posortowanie obu rozdzielonych kupek,
- ruchów na scalenie dwu posortowanych części.
Otrzymujemy więc następujące równanie rekurencyjne:
Udowodnijmy indukcyjnie ze względu na , że
Dla jednej karty mamy:
Przejdźmy więc do przypadku, gdy .
Korzystając z założenia indukcyjnego otrzymujemy:
Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned T\!\left( 2^n \right)&= 2T\!\left( 2^{n-1} \right)+\frac{3}{2}\cdot2^n\\ &=2\left( \frac{3}{2}\left( n-1 \right)2^{n-1} \right)+\frac{3}{2}\cdot2^n\\ &=\frac{3}{2}n2^n-\frac{3}{2}\cdot2^n+\frac{3}{2}\cdot2^n\\ &=\frac{3}{2}n2^n, \endaligned}
co kończy dowód.
Ćwiczenie md0 rekurencja sqrt
Rozwiąż równanie rekurencyjne:
przy czym jest postaci , gdzie jest liczbą naturalną.
Wskazówka
Policz kilka pierwszych wyrazów tego ciągu.
Zaobserwuj, że ,
a następnie udowodnij indukcyjnie, że w istocie tak jest.
Rozwiązanie
Po zapisaniu w postaci otrzymujemy równanie:
Udowodnimy indukcyjnie ze względu na , że
Dla początkowej wartości otrzymujemy, że
Przejdźmy więc do przypadku, gdy .
Korzystając z założenia indukcyjnego otrzymujemy, że
W konsekwencji, gdy jest postaci , czyli
, otrzymujemy: