Druga zasada inducji matematycznej Niech m będzie liczbą całowitą, niech p(n) będzie ciągiem zdań zdefiniowanych na zbiorze {n Z: n m} oraz niech l będzie nieujemną liczbą całowitą. Jeśli (P) wszystie zdania p(m),..., p(m + l) są prawdziwe oraz (I) dla > m + l zdanie p() jest prawdziwe, jeśli wszystie zdania p(m),..., p( 1) są prawdziwe, to zdanie p(n) jest prawdziwe dla wszystich n m. Zadania 1. Udowodnij, że i = 1 + 2 +... + n = n 1 + n 2 dla n P. 2. Udowodnij, że liczba 11 n 4 n jest podzielna przez 7 dla wszystich n P. 3. Dla n P udowodnij, że n 1 i 2 n 1. 4. Udowodnij, że dla n N rozwiązaniem równania reurencyjnego: jest a n = 3n + 1. 5. Udowodnij, że a n = 2a n 1 a n 2, a 0 = 1, a 1 = 4 dla wszystich n 1. 1 + 4 + 9 +... + n 2 = n(n + 1)(2n + 1) 6 6. Udowodnij równoważność 1 1 2 + 1 2 3 +... + 1 n (n + 1) = n n + 1. 7. Udowodnij przez inducję, że zbiór n-elementowy ma 2 n podzbiorów. 8. Udowodnij, że dla wszystich n 1. (2i 1) = n 2 1
9. Rozważmy ciąg liczb całowitych a 0, a 1, a 2, a 3,..., gdzie a 0 = 1, a 1 = 2, a 2 = 3 oraz a n = a n 1 + a n 2 + a n 3 dla wszystich n P gdzie n 3. Poaż, że a n 3 n dla wszystich n N. 10. Udowodnij, że dla wszystich n 1. (i)(i!) = (n + 1)! 1 11. Udowodnij, że dla wszystich n P, n > 3 2 n < n! 12. Rozważ następujące równania: 1 = 1 (1) 2 + 3 + 4 = 1 + 8 (2) 5 + 6 + 7 + 8 + 9 = 8 + 27 (3) 10 + 11 + 12 + 13 + 14 + 15 + 16 = 27 + 64 (4) Odgadnij ogólny wzór i udowodnij jego poprawność. 13. Udowodnij przez inducję, że i=0 ( ) n = 2 n. i Przyjmujemy, że ( n ( ) = 0 dla < 0. Sorzystaj z tożsamości n ) = ) ( + n 1 ( n 1 1). 2
Sumy wzory do zapamiętania ca = c a, (prawo rozdzielności) K K (a + b ) = a + b, K K K a = a π(), K a = a 1 + d π() K a = 1 2 n(a 1 + a n ), (prawo łączności) (prawo przemienności) (szereg arytmetyczny) =1 x = 1 xn+1, 1 x =0 dla x 1, (szereg geometryczny) 1 ln n < ln n + 1, dla n 1, (szereg harmoniczny) =1 ( ) n (1 + x) n = x, =0 ( ) n (x + y) n = x y n, =0 ( ) ( ) ( ) r r 1 r 1 = +, 1 ( ) ( ) n n =, n ( ) r = r ( ) r 1, 1 ( ) ( ) r + r + n + 1 =, n =0 ( ) ( ) n + 1 =, m m + 1 =0 n n+1 f(x) dx f() f(x) dx, m 1 =m m jeżeli f() jest monotonicznie rosnąca, n+1 n f(x) dx f() f(x) dx, m =m m 1 jeżeli f() jest monotonicznie malejąca. 3
Metody rozwiązywania sum: 1. znaleźć gdzieś rozwiązanie, 2. zgadnij odpowiedź, udowodnij ją przez inducję, 3. zaburz sumę, 4. zamień sumy na całi, 5. wyorzystaj funcje tworzące, 6. za pomocą Maximy (http://maxima.sourceforge.net). Zadania dowolną metodą znajdź postać zwartą podanych sum 1. n =1 2, 2. n =1 3, 3. i 2 i+1, 4. n =1 1 (+1), 5. n =1 9 ( n ), 6. n =0 ( n ), 7. n =0 ( n ), 8. n =0 1!(n )!, 9. n =1 ln. Rozwiązania 1) 2 n3 +3 n 2 +n 6, 2) n4 +2 n 3 +n 2 4, 3) 1 (n + 2) 2 n 1 n, 4) n+1, 5) 10n 1, 6) n 2n 7) 2 n, 8) 2n n!, 9) n =1 ln (n + 1) ln(n + 1) n. 2, 4
Notacja asymptotyczna definicje i twierdzenie Dla danej funcji g(n) przez Θ(g(n)) oznaczamy zbiór funcji Θ(g(n)) = {f(n): istnieją dodatnie stałe rzeczywiste c 1, c 2 i liczba naturalna n 0 taie, że 0 c 1 g(n) f(n) c 2 g(n) dla wszystich n n 0 }. Dla danej funcji g(n) przez O(g(n)) oznaczamy zbiór funcji O(g(n)) = {f(n): istnieją dodatnia stała rzeczywista c i liczba naturalna n 0 taie, że 0 f(n) cg(n) dla wszystich n n 0 }. Dla danej funcji g(n) oznaczamy przez Ω(g(n)) zbiór funcji Ω(g(n)) = {f(n): istnieją dodatnia stała rzeczywista c i liczba naturalna n 0 taie, że 0 cg(n) f(n) dla wszystich n n 0 }. Oto hierarchia pewnych znanych ciągów uporządowanych w ten sposób, że ażdy z nich jest O od wszystich ciągów na prawo od niego: 1, log 2 n,..., 3 n, n, n, n log 2 n, n n, n 2, n 3,..., 2 n, n!, n n. Własności do zapamiętania Jeśli f(n) = O(g(n)) i c jest stałą, to c f(n) = O(g(n)). Dla dowolnych ciągów a(n) i b(n) mamy (a) O(a(n)) + O(b(n)) = O(max{ a(n), b(n) }). (b) O(a(n)) O(b(n)) = O(a(n) b(n)). Dla dowolnych dwóch funcji f(n) i g(n) zachodzi zależność f(n) = Θ(g(n)) wtedy i tylo wtedy, gdy f(n) = O(g(n)) i f(n) = Ω(g(n)). f(n) = O(g(n)) wtedy i tylo wtedy, gdy g(n) = Ω(f(n)). Jeśli P (n) = a 0 + a 1 n + + a m n m jest wielomianem stopnia m, to P (n) = O(n m ). f(n) Jeśli lim n g(n) = c gdzie c 0 oraz c, to f(n) = Θ(g(n)). f(n) Jeśli lim n g(n) = 0, to f(n) = O(g(n)). Reguła de L Hospitala: niech funcje f(x) i g(x) będą oreślone i różniczowalne oraz g (x) 0 dla wszystich x > c; jeżeli lim x + f(x) + i lim x + g(x) +, ale istnieje granica lim x + f (x) g (x), to f(x) lim x + g(x) = lim f (x) x + g (x). 5
Zadania Dla ażdego z poniższych ciągów podaj ciąg a(n) z hierarchii przedstawionej na poprzedniej stronie tai, że f(n) = O(a(n)) oraz a(n) znajduje się możliwie najbardziej na lewo w tej hierarchii. Odpowiedź uzasadnij. 1. f(n) = log 1 + log 2 + log 3 + + log n 2. f(n) = log 1 + log 2 + log 4 + + log 2 n 3. f(n) = 5n 8 + 10 200 n 5 + 3n + 1 4. f(n) = 1 + 2 + 3 + + n 5. f(n) = log(n!) 6. f(n) = 2 n + O(n 2 ) 7. f(n) = (log n) 2 8. f(n) = log log n 9. f(n) = 4n log n + n 10. f(n) = 4n log(n 2 + 1) 11. f(n) = n 1 n ) =0 +1( 12. f(n) = n =1 log 13. f(n) = n =1 14. f(n) = n =1 1 15. f(n) = log 3/2 n 6
Reurencja uniwersalna Metoda reurencji uniwersalnej podaje uniwersalny przepis rozwiązywania równania reurencyjnego postaci T (n) = g(n) + u T (n/v), (5) dla stałych u 1, v > 1, dodatniej funcji g(n) oraz dostatecznie wielu wartości początowych definiujących ciąg (T (0), T (1), T (2),...). Reurencja (5) opisuje czas działania algorytmu, tóry dzieli problem rozmiaru n na u podproblemów, ażdy rozmiaru n/v. Każdy z u podproblemów jest rozwiązywany reurencyjnie w czasie T (n/v). Koszt dzielenia problemu oraz łączenia rezultatów częściowych jest opisany funcją g(n). Rząd wielości rozwiązania reurencji T (n) = g(n) + u T (n/v) Rząd wielości g(n) u, v T (n) Θ(1) u = 1 Θ(log n) u 1 Θ(n log v u ) Θ(log n) u = 1 Θ[(log n) 2 ] u 1 Θ(n log v u ) Θ(n) u < v Θ(n) u = v Θ(n log n) u > v Θ(n log v u ) Θ(n 2 ) u < v 2 Θ(n 2 ) u = v 2 Θ(n 2 log n) u > v 2 Θ(n log v u ) Uwaga: u i v są liczbami dodatnimi, niezależnymi od n oraz v > 1. W przypadach nieopisanych powyższą tabelą przydaje się nastepujące twierdzenie. Niech a, b R +, b > 1, i niech f : [1, ] R +. Wtedy reurencja T (n) = { f(n), jeśli 1 n < b; a T (n/b) + f(n), jeśli n b 7
ma rozwiązanie W szczególności: T (n) = log b n i=0 a i f(n/b i ). O(n log b a ), jeśli f(n) = O(n p ), p < log b a; O(n log b a (log b n) p+1 ), jeśli f(n) = O(n log b a (log b n) p ), p > 1; T (n) = O(n log b a log log n), jeśli f(n) = O(n log b a (log b n) p ), p = 1; O(n log b a ), jeśli f(n) = O(n log b a (log b n) p ), p < 1; O(n p ), jeśli f(n) = Θ(n p ), p > log b a. Zadania Rozwiąż poniższe reurencje: 1. T (n) = 2 T (n/2) + n 2. T (n) = { n log n dla 1 n < 2; 2 T (n/2) + n log n dla n 2 3. T (n) = { n 3/2 dla 1 n < 2; 2 T (n/2) + n 3/2 dla n 2 4. T (n) = 2 T (n/2) + n 2 5. T (n) = 3 T (n/2) + Θ(n) 6. T (n) = 3 T ( n/4 + 1) + 2, T (1) = 1 7. T (n) = T (n/2) + n 8. T (n) = n 1 T (i) + 1, T (1) = 1 9. T (n) = T (n/5) + 7 10. T (n) = 16 T (n/4) + n 11. T (n) = T (3n/4) + 5 8