UNIWERSYTET GDAŃSKI MATERIAŁY DYDAKTYCZNE DO PRZEDMIOTU MATEMATYKA DYSKRETNA. pod redakcją: Hanna Furmańczyk Karol Horodecki Paweł Żyliński
|
|
- Bernard Marek
- 5 lat temu
- Przeglądów:
Transkrypt
1 UNIWERSYTET GDAŃSKI MATERIAŁY DYDAKTYCZNE DO PRZEDMIOTU MATEMATYKA DYSKRETNA pod redakcją: Hanna Furmańczyk Karol Horodecki Paweł Żyliński kierunek: Informatyka GDAŃSK 09 Niniejsze materiały powstały w ramach projektu Uniwersytet Gdański promotorem zasobów nowoczesnej gospodarki zwiększenie liczby absolwentów kierunków przyrodniczych i ścisłych (PRO-GOS), współfinansowanego przez Europejski Fundusz Społeczny i budżet państwa w ramach Programu Operacyjnego Kapitał Ludzki. Dziękujemy wszystkim Studentom, których cenne sugestie i spostrzeżenia pozwoliły nam na ulepszenie zawartości skryptu i wyeliminowanie błędów. Dziękujemy także Autorom, z których materiałów skorzystaliśmy, a na przestrzeni tych kilku lat zdążyliśmy już o tym zapomnieć. Wszelkie dalsze uwagi prosimy kierować na adres zylinski@inf.ug.edu.pl.
2 Literatura. N. Briggs: Discrete Mathematics Oxford University Press (003). V. Bryant: Aspekty kombinatoryki WNT (007) 3. R. Diestel: Graph theory Springer (000) 4. T. Gerstenkorn, T. Śródka Kombinatoryka i rachunek prawdopodobieństwa: teoria, ćwiczenia i zbiór zadań Państwowe Wydawnictwo Naukowe (967) 5. N. Hartsfield, G. Ringel: Pearls in graph theory: a comprehensive introduction Dover Publications (003) 6. R. Janczewski: Zbiór zadań z teorii grafów Politechnika Gdańska (003) 7. R. Janczewski: Materiały do wykładu z teorii grafów i sieci Politechnika Gdańska (003) 8. E. Kowalik: Kombinatoryka Wydawnictwa Naukowo-Techniczne (993) 9. L. Lovasz, J. Pelikan, K. Vesztergombi Discrete mathematics: elementary and beyond Springer (003) 0. J. Matousek, J. Nesetril: Invitation to Discrete Mathematics Clarendon Press (998). T. Szabó, Y. Okamoto A. Szepietowski: Matematyka dyskretna Wydawnictwo Uniwersytetu Gdańskiego (004) 3. J. Topp: Zadania własne (04) 4. N. A. Vilenkin: Kombinatoryka Państwowe Wydawnictwo Naukowe (97) 5. R. J. Wilson: Wprowadzenie do teorii grafów Wydawnictwo Naukowe PWN (008). 6. M. Żynel: Materiały do zajęć Matematyka dyskretna Uniwersytet w Białymstoku (009)
3
4 Zestaw zadań nr 8 Rekurencja Rekurencja jest to zdolność programu (procedury lub funkcji) do wywoływania samego siebie. Działanie pocedury rekurencyjnej można zilustrować poprzez drzewo rekursji, w którym korzeń odpowiada początkowemu wywołaniu procedury, a dla dowolnego wierzchołka x odpowiadającemu pewnemu wywołaniu procedury, jego synowie oznaczają rekurencyjne wywołania w celu wykoniania obliczeń dla x. Przykładem algorytmu rekurencyjnego może być rekurencyjna wersja algorytmu Euklidesa, który oblicza największy wspólny dzielnik liczb a i b (a,b > 0). Algorytm (rekurencyjny) Euklidesa NWD(a,b).. Jeśli a b = 0, zwróć a+b;. W przeciwnym przypadku:.a. jeżeli a b, zwróć NWD(a mod b, b);.b. w przeciwnym przypadku, zwróć NWD(a, b mod a). Zauważmy, że w tym wypadku drzewo rekursji będzie miało zawsze postać ścieżki. NWD(3, ) NWD(8, ) NWD(8, 4) NWD(0, 4) Innym przykładem algorytmu rekurencyjnego może być algorytm sortowania ciągu liczb (znaków). Dla uproszczenia będziemy zakładać, że długość ciągu jest potęgą dwójki. Algorytm sortowania przez scalanie merge-sort(c).. Jeśli C ma tylko jeden element, zwróć C.. W przeciwnym przypadku:.a. podziel C na połowy C i C ;.b. merge-sort(c );.c. merge-sort(c );.d. połącz C i C w jeden ciąg C z zachowaniem kolejności i zwróć C.
5 Uwaga. Krok (.d) nosi nazwę scalania i przebiega następująco. Na początku ciąg wynikowy jest pusty i ustawiamy po jednym wskaźniku na początku każdego ze scalanych ciągów. Następnie (aż zabraknie elementów) porównujemy wskazywane elementy, a mniejszy z porównanych elementów przepisujemy na ciąg wynikowy i przesuwamy wskaźnik w tym ciągu, z którego był wzięty element do ciągu wynikowego. Przykład 8.. Scal następujące ciągi liczb: (,5,0,3,6,3) i (,3,4,7,5,0). Rozwiązanie. Aktualne pozycje wskaźników oznaczone są przez pogrubienie czcionki. (,5,0,3,6,3) (,3,4,7,5,0) = [] (,5,0,3,6,3) (,3,4,7,5,0) = [] (,5,0,3,6,3) (,3,4,7,5,0) = [,] (,5,0,3,6,3) (,3,4,7,5,0) = [,,3] (,5,0,3,6,3) (,3,4,7,5,0) = [,,3,4] (,5,0,3,6,3) (,3,4,7,5,0) = [,,3,4,5] (,5,0,3,6,3) (,3,4,7,5,0) = [,,3,4,5,7] (,5,0,3,6,3) (,3,4,7,5,0) = [,,3,4,5,7,0] (,5,0,3,6,3) (,3,4,7,5,0) = [,,3,4,5,7,0,3] (,5,0,3,6,3) (,3,4,7,5,0) = [,,3,4,5,7,0,3,5] (,5,0,3,6,3) (,3,4,7,5,0) = [,,3,4,5,7,0,3,5,6] (,5,0,3,6,3) (,3,4,7,5,0) = [,,3,4,5,7,0,3,5,6,0] (,5,0,3,6,3) (,3,4,7,5,0) = [,,3,4,5,7,0,3,5,6,0,3] Zadanie 8.. Scal następujące ciągi liczb: (4,8,,4,0,30,3) i (,5,9,0,,,). Przykład 8.3. Używając procedury merge-sort posortuj ciąg liczb 3, 7, 6,, 8, 5,, 4. Narysuj drzewo rekursji powstające podczas obliczeń. Rozwiązanie. drzewo rekursji 3, ,7 3,7,6,,8,5,,4 3,7,6, 8,5,,4 6, 8,5, ,6 5,8,4,3,6,7,4,5,8,,3,4,5,6,7,8 ilustracja scalania Zadanie 8.4. Używając procedury merge-sort posortuj ciąg liczb 8, 4, 5,, 6, 3, 7,. Narysuj drzewo rekursji powstające podczas obliczeń. Przykład 8.5. Przypuśćmy, że mamy trzy paliki A,B i C. Na paliku A znajduje się n krążków różnej wielkości, osadzonych w porządku od największego na dole do najmniejszego na górze. Paliki B i C są początkowo puste. Należy przenieść wszystkie krążki z palika A na palik B, 3
6 posługując się w razie potrzeby palikiem C, przy czym: (i) można przenosić tylko po jednym krążku; (ii) nie można umieszczać krażka większego na mniejszym. Algorytm Przełóż(n, A, B, C): przekładanie n krążków z palika A na B korzystając z palika C.. Jeśli n =, to przełóż krążek z A na B.. W przeciwnym przypadku:.a. przełóż(n,a,c,b);.b. przełóż n-ty krążek z A na B;.c. przełóż(n,c,b,a). Przykład 8.6. Zakładając, że wierzchołek o etykiecie A B,C odpowiada wywołaniu procedury przełóż(n,a,b,c), narysuj drzewo rekursji dla przekładania czterech krążków z palika A na B; wypisz ciąg przełożeń. Rozwiązanie. Drzewo rekursji przedstawia się następująco. n 4 A B,C 3 A C,B 3 C B,A A B,C B C,A C A,B A B,C A C,B C B,A B A,C A C,B C B,A B A,C A C,B C B,A Sposób przekładania krążków wyznaczony jest przez przeszukanie powyższego drzewa w porządku inorder, wypisując za każdym razem, kiedy odwiedzamy węzeł, wykonanie odpowiedniego przełożenia krążka n w kroku.b: #n: A B. #: A C; #: A B; #: C B; #3: A C; #: B A; #: B C; #: A C; #4: A B; #: C B; #: C A; #: B A; #3: C B; #: A C; #: A B; #: C B. Zadanie 8.7. Zakładając, że wierzchołek o etykiecie A B,C odpowiada wywołaniu procedury przełóż(n, A, B, C), narysuj drzewo rekursji dla przekładania pięciu krążków z palika A na B; wypisz ciąg przełożeń. Przykład 8.8. Rozważmy poniższą funkcję zdefiniowaną za pomocą wzoru rekurencyjnego { f(0) = ; f(n) = f(n ), n. Korzystając z indukcji matematycznej wykaż, że f(n) = n. n 4
7 Rozwiązanie.. Krok bazowy. Dla n = 0 mamy f(0) = = 0.. Założenie indukcyjne. Załóżmy, że dla pewnego n 0 zachodzi f(n) = n. 3. Krok indukcyjny. Rozważmy n +. Z definicji funkcji f mamy, że f(n + ) = f(n). Z założenia indukcyjnego mamy, że f(n) = n, a zatem f(n+) = n = n+. Zadanie 8.9. Dana jest funkcja h:n N { h(0) = ; h(n) = h(n )+, n. Oblicz h(),h(),h(3). Co oblicza funkcja h? Zadanie 8.0. Udowodnij indukcyjnie, że algorytm przekładania krążków wymaga n przełożeń do przeniesienia n krążków. Przykład 8.. Dana jest funkcja D: N N N { D(x,0) = x; D(x,y +) = D(x,y)+, y 0. Oblicz D(,3). Co oblicza funkcja D? Rozwiązanie. Wyznaczmy najpierw D(, 3). D(,3) = D(,)+ = (D(,) +)+ = ((D(,0) +)+)+ = +++ = 5. Wyznaczając kilka innych wartości możemy wywnioskować, że funkcja D(x, y) wyznacza sumę liczb x i y. Pozostaje to udowodnić dowód indukcyjny przeprowadzimy względem y.. Krok bazowy. Dla dowolnego x 0 oraz y = 0 mamy D(x,0) = x = x+0.. Założenie indukcyjne. Dla dowolnego x 0 oraz pewnego y 0 zachodzi D(x,y) = x+y. 3. Krok indukcyjny. Rozważmy dowolne x 0 oraz y +. Z definicji funkcji D mamy, że D(x,y + ) = D(x,y) +. Z założenia indukcyjnego otrzymujemy, że D(x,y) = x + y, a zatem D(x,y +) = (x+y)+ = x+(y +). Zadanie 8.. Dana jest funkcja M:N N N { M(x,0) = 0; M(x,y +) = M(x,y)+x, y 0. Oblicz M(4, 3). Co oblicza funkcja M? Zadanie 8.3. Dana jest funkcja X:N N { X() = ; X(n) = X(X(n ))+, n. Co oblicza funkcja X? 5
8 Zadanie 8.4. Dana jest funkcja g:n N { g() = ; g(n) = g(n )+n, n. Wykaż, że g(n) = n. Zadanie 8.5. Dana jest funkcja g:n N { g() = ; g(n+) = g(n), n. Wykaż, że g jest funkcją stałą. Zadanie 8.6. Funkcja Ackermanna określona jest następująco (i,j,k, naturalne): A(,j,k) = j +k; A(i+,j,) = j, i ; A(i+,j,k +) = A(i,j,A(i +,j,k)), gdy i,k. a) Oblicz A(,j,), A(,j,), A(,j,3) oraz A(3,j,), A(3,j,), A(3,j,3). b) Udowodnij, że A(,j,k) = j k oraz A(3,j,k) = j k. c) Oblicz A(4,,), A(4,,), A(4,,3). Udowodnij, że A(4,j,k) = j j}k. Przykład 8.7. Zapisz definicję rekurencyjną dla ciągu a 0,a,a,..., gdzie a n = (n+)(n+3). Rozwiązanie. W oparciu o definicję rozwińmy wyraz a n+. a n+ = (n+)(n+5) = n +9n+0 = n +5n+3+4n+7 = (n+)(n+3)+4n+7 = a n +4n+7. W konsekwencji otrzymujemy, że { a0 = 3; a n = a n +4n+3, n. Zadanie 8.8. Zapisz definicję rekurencyjną dla ciągu a 0,a,a,..., gdzie a n = ( ) n. Przykład 8.9. Dla x N +,y N przedstaw rekurencyjną definicję funkcji wykładniczej x y i udowodnij za pomocą indukcji jej poprawność. Rozwiązanie. Funkcję wykładniczą p(x,y) = x y można przedstawić za pomocą następującego wzoru rekurencyjnego. { p(x,0) = ; p(x,y +) = p(x,y) x, gdy y 0.. Krok bazowy. Dla dowolnego x 0 oraz y = 0 mamy p(x,0) =[wzór]= = x 0.. Założenie indukcyjne. Dla dowolnego x 0 oraz pewnego y 0 zachodzi p(x,y) = x y. 3. Krok indukcyjny. Rozważmy dowolne x 0 oraz y +. p(x,y +) =[wzór]= p(x,y) x =[założenie]= x y x = x y+. Zadanie 8.0. Przedstaw rekurencyjną definicję operacji odejmowania jedynki w liczbach naturalnych, która określona jest wzorem max{x, 0}. Udowodnij za pomocą indukcji jej poprawność. 6
9 Zadanie 8.. Przedstaw rekurencyjną definicję operacji odejmowania w liczbach naturalnych, która określona jest wzorem max{x y,0}. Udowodnij za pomocą indukcji jej poprawność. Przykład 8.. Postać funkcji rekurencyjnej można obliczyć (lub oszacować) metodą iteracyjną. W metodzie tej rozwijamy kolejne wyrazy funkcji. Rozważmy dla przykładu funkcję T(n), o której wiemy, że { T() = ; T(n) T( n )+n, n. Dla uproszczenia załóżmy, że n jest pewną potęgą dwójki. Wówczas funkcję T rozwijamy w następujący sposób. T(n) = n+ T ( ) ( n = n+ n + T ( ( n 4)) = n+n+4 T n ) 4 = n+...+n+i T ( ) n. i Iterację powtarzamy, aż ostatni składnik będzie zawierał T(), czyli wtedy, gdy i = log n. Otrzymujemy w konsekwencji, że log n T(n) = n+...+n }{{} + i T() = n + log n = nlog n+n. i i= Przykład 8.3. Zastosuj metodę iteracyjną w celu wyznaczenia funkcji T(n), o której wiemy, że { T() = ; T(n) 3 T( n 4 )+n, n. Rozwiązanie. Dla uproszczenia załóżmy, że n jest pewną potęgą czwórki. Wówczas funkcję T rozwijamy w następujący sposób: T(n) = n+3 T ( ) ( n 4 = n+3 n 4 +3 T ( n ( 6 = n ( ) ) 3 i 4 +3 i T ( n 4 i ). )) = n+ 3 4 n+9 T ( ) n 6 Iterację powtarzamy, aż ostatni składnik będzie zawierał T(), czyli wtedy, gdy i = log 4 n. Otrzymujemy wtedy, że T(n) = n+ 3 4 n+...+( ) 3 i n+3i 4 T() n 3 i i=0( 4) +3 log n 4. Jako że 3 i i=0( 4) = 4, 3 log 4 n = n log 4 3, oraz log 4 3 <, a tym samym zachodzi n log 4 3 n, otrzymujemy, że T(n) 4n+n = 5n. Zadanie 8.4. Metodą iteracyjną znajdź (dokładne) rozwiązanie poniższych zależności rekurencyjnych. { T() = ; a) T(n) = T( n )+, n. { T() = ; b) T(n) = 4 T( n )+n, n. 7
10 { T() = ; c) T(n) = 3 T( n )+n, n. { T() = ; d) T(n+) = n T(n)+n!, n. { T() = A; e) T(n) = T( n )+B. { T() = A; f) T(n) = T( n )+Bn, n. { T() = A; g) T(n) = T( n )+Bn+C, n. Stałe A, B i C są dowolne (ale ustalone). W przypadkach (a-c) oraz (e-g) przyjmij, że rozwiązanie jest określone dla n = k,k N. Zadanie 8.5. Dana jest zależność rekurencyjna { T(a) R; T(n) = T(n a)+t(a)+n, n > a. dla a oraz n = k a dla pewnego k N. Znajdź rozwiązanie tej rekurencji. Postać funkcji rekurencyjnej można też obliczyć/oszacować metodą podstawiania. W metodzie tej odgadujemy rozwiązanie ogólne, próbujemy je uściślić i wykazujemy jego poprawność. Dla przykładu oszacujmy funkcję T(n) z Przykładu 8.: { T() = ; T(n) T( n )+n, n. Zgadujemy, że T(n) c(nlog n+n) dla jakiejś stałej c > 0. Wykażemy, że powyższa nierówność zachodzi dla dowolnego n (będącego potęgą dwójki).. Krok bazowy. Dla n = jest to prawda: mamy T() = c ( log +) = c, dla c.. Założenie indukcyjne. Niech n i załóżmy, że T(n ) c (n log n +n ) dla wszystkich n < n. 3. Krok indukcyjny. Wówczas z warunków na funkcję T i z założenia indukcyjnego mamy, że T(n) c ( n log n + n )+n = cnlog n +n. Jako że log n log n, n, otrzymujemy T(n) c nlog n cn+n c nlog n+n, dla c. 8
11 Przykład 8.6. Dana jest funkcja T:N + N { T() = A; T(n) = 4 T( n )+n. Udowodnij, że T(n) B (n n) dla n N + oraz pewnych A,B N. Jakie warunki muszą spełniać A i B? Rozwiązanie.. Krok bazowy. Jako że T() =, sugerowana nierówność T(n) B (n n) przyjmująca postać T() B ( ) = 0 pociąga za sobą, że A = 0. A zatem dla n =, A = 0 oraz dowolnego B 0 spełniony jest krok bazowy: T() = 0 B ( ).. Założenie indukcyjne. Niech n i załóżmy, że dla pewnego B zachodzi T( n) B ( n n) dla wszystkich n < n. 3. Krok indukcyjny. Rozważmy rekurencyjną postać funkcji T(n) = 4 T( n )+n. (Dla ułatwienia zakładamy, że n jest potęgą dwójki.) Z założenia indukcyjnego otrzymujemy, że T(n) [założenie indukcyjne dla T( n )] 4 B ((n ) n )+n = 4 B ( n 4 n )+n = B (n n)+n B (n n) Bn+n. Zauważmy, że dla B zachodzi Bn + n 0, a tym samym dla A = 0 oraz B otrzymamy, że T(n) B (n n), co należało wykazać. Zadanie 8.7. Dana jest funkcja T: N N { T(0) = T() = T() = ; T(n) = T(n )+T(n 3), n 3. Udowodnij, że T(n) ( 4 3 )n dla n N. Zadanie 8.8. Dana jest funkcja T:N + N { T() = ; T(n) = T( n )+, n. Udowodnij, że T(n) = O(log n). Zadanie 8.9. Dana jest funkcja T:{ k : k N} N { T() = ; T(n) = T( n )+, n. Udowodnij, że T(n) = an + b dla pewnych a i b. Wyznacz te stałe. 9
12 Twierdzenie 8. (o rekurencji uniwersalnej) Niech dana będzie funkcja T : N + N + określona zależnością reukrencyjną T(n) = a T([ n b ])+f(n), gdzie a,b >, a [ n b ] oznacza n b lub n b. Wówczas: aaa. Jeśli f(n) = O(n log b a ǫ ) dla pewnego ǫ > 0, to T(n) = Θ(n log b a ). aaa. Jeśli f(n) = Θ(n log b a ), to T(n) = Θ(n log b a log n). aaa3. Jeśli f(n) = Θ(n log b a+ǫ ) dla pewnego ǫ > 0 oraz jeśli af( n b ) cf(n) dla pewnej stałej c < aaa3. i wszystkich dostatecznie dużych n, to T(n) = Θ(f(n)). Przykład Wskaż oszacowania rozwiązań zależności rekurencyjnych z Zadania 8.4 (za wyjątkiem pkt. d) korzystając z twierdzenia o rekurencji uniwersalnej i porównaj je z otrzymanymi dokładnymi rozwiązaniami. Rozwiązanie. a) f(n) = i funkcja f rośnie wolniej niż n log = n, stąd T(n) = Θ(n). b) f(n) = n i funkcja f rośnie tak samo, jak n log 4, stąd T(n) = Θ(n log n). c) f(n) = n i funkcja f rośnie wolniej niż n log 3, stąd T(n) = Θ(n log 3 ). d) nie dotyczy e) f(n) = B i funkcja f rośnie wolniej niż n log = n, stąd T(n) = Θ(n). f) f(n) = Bn i funkcja f rośnie tak samo, jak n log, stąd T(n) = Θ(nlog n). g) f(n) = Bn+C i funkcja f rośnie tak samo, jak n log, stąd T(n) = Θ(nlog n). Zadanie 8.3. Korzystając z twierdzenia o rekurencji uniwersalnej wskaż oszacowania rozwiązań następujących równań rekurencyjnych. a) T(n) = 9 T( n 3 )+n. b) T(n) = T( n 3 )+. c) T(n) = 3 T( n 4 )+nlog n. d) T(n) = 3 T( n )+n. e) T(n) = 4 T( n )+n. f) T(n) = 4 T( n )+n. g) T(n) = 4 T( n )+n3. 0
13 Odpowiedzi do zadań 8.9. h(n) = n+.. Krok bazowy. Dla n = 0 mamy h(0) =[wzór]= = 0+.. Założenie indukcyjne. Dla pewnego n 0 zachodzi h(n) = n+. 3. Krok indukcyjny. Rozważmy n T(n) = n. h(n+) =[wzór]= h(n)+ =[założenie]= ( n+ )+ = n+ +.. Krok bazowy. Dla n = mamy T() =[algorytm]= x =.. Założenie indukcyjne. Dla pewnego n zachodzi T(n) = n. 3. Krok indukcyjny. Rozważmy n +. T(n+) =[algorytm]= T(n)+ =[założenie]= ( n )+ = n M(x,y) = x y.. Krok bazowy. Dla dowolnego x 0 oraz y = 0 mamy M(x,0) =[wzór]= 0 = x 0.. Założenie indukcyjne. Dla dowolnego x 0 oraz pewnego y 0 zachodzi M(x,y) = x y. 3. Krok indukcyjny. Rozważmy dowolne x 0 oraz y X(n) = n. M(x,y +) =[wzór]= M(x,y)+x =[założenie]= x y +x = x (y +).. Krok bazowy. Dla n = mamy X() =[wzór]=.. Założenie indukcyjne. Dla pewnego n zachodzi X(n) = n. 3. Krok indukcyjny. Rozważmy n X(n+) =[wzór]= X(X(n))+ =[założenie]= X(n)+ =[założenie]= n+.. Krok bazowy. Dla n = mamy g() =[wzór]= =.. Założenie indukcyjne. Dla pewnego n zachodzi g(n) = n. 3. Krok indukcyjny. Rozważmy n g(n+) =[wzór]= g(n)+n+ =[założenie]= n +n+ = (n+).. Krok bazowy. Dla n = mamy g() =[wzór]=.. Założenie indukcyjne. Dla pewnego n zachodzi g(n) =. 3. Krok indukcyjny. Rozważmy n A(,j,k) = j k. g(n+) =[wzór]= g(n) =[założenie]= =.. Krok bazowy. Dla dowolnych j oraz k = mamy A(,j,) =[wzór]= j = j.. Założenie indukcyjne. Dla dowolnych j oraz pewnego k zachodzi A(,j,k) = j k.
14 3. Krok indukcyjny. Rozważmy dowolne j oraz k +. A(,j,k +) =[wzór]= A(,j,A(,j,k)) =[założenie]= A(,j,j k) = j +j k = j(k +). A(3,j,k) = j k.. Krok bazowy. Dla dowolnych j oraz k = mamy A(3,j,) =[wzór]= j = j.. Założenie indukcyjne. Dla dowolnych j oraz pewnego k zachodzi A(3,j,k) = j k. 3. Krok indukcyjny. Rozważmy dowolne j oraz k +. A(3,j,k +) =[wzór]= A(,j,A(3,j,k)) =[założenie]= A(,j,j k ) = j j k = j k+. A(4,j,k) = j j}k.. Krok bazowy. Dla dowolnych j oraz k = mamy A(4,j,) =[wzór]= j.. Założenie indukcyjne. Dla dowolnych j oraz pewnego k zachodzi A(4,j,k) = j j}k. 3. Krok indukcyjny. Rozważmy dowolne j oraz k +. A(4,j,k +) =[wzór]= A(3,j,A(4,j,k)) =[założenie]= A(3,j,j j }k ) = j j j}k = j j}k { a0 = ; a n = 4 a n, n. albo { a0 = ; a n = a n + ( ) n, n Postać rekurencyjna funkcji odejmowania jedynki od liczby naturalnej, tj. max{x,0}: minus(0) = 0; minus() = 0; minus(x) = minus(x )+, x. Dowód.. Krok bazowy. Dla x = 0 mamy minus(0) =[wzór]= 0 = max{0,0}.. Krok bazowy. Dla x = mamy minus() =[wzór]= 0 = max{,0}.. Założenie indukcyjne. Rozważmy pewne x (bo dla x = 0 i x = już wykazaliśmy) i załóżmy, że dla wszystkich 0 x < x zachodzi minus(x ) = max{x,0}. 3. Krok indukcyjny. minus(x) = [wzór] = minus(x )+ = [założenie] = max{(x ),0}+ = max{x,} = [x ] = max{x,0}. 8.. Postać rekurencyjna funkcji odejmowania dwóch liczb naturalnych, tj. max{x y,0}: minus(x,0) = x; minus(0,y) = 0; minus(x,y) = minus(x,y ), x,y.
15 Dowód.. Krok bazowy. Dla y = 0 mamy minus(x,0) =[wzór]= x = max{x 0,0}.. Krok bazowy. Dla x = 0 mamy minus(0,y) =[wzór]= 0 = max{0 y,0}.. Założenie indukcyjne. Rozważmy pewne x,y i załóżmy, że dla dowolnych 0 x < x oraz 0 y < y zachodzi 3. Krok indukcyjny minus(x,y ) = max{x y,0}. minus(x,y) = [wzór] = minus(x,y ) = [założenie] = max{(x ) (y ),0} = max{x y,0}. a) Funkcję T rozwijamy w następujący sposób: T(n) = + T( n ) = +(+ T(n 4 )) = ++4 T(n 4 ) = +...+i + i T( n i ). Iterację powtarzamy, aż ostatni składnik będzie zawierał T(), czyli wtedy, gdy i = log n. Otrzymujemy wtedy T(n) = i + i T() = n + log n = n +n = n. b) Funkcję T rozwijamy w następujący sposób: T(n) = n +4 T( n ) = n +4(( n ) +4 T( n 4 )) = n +n +4 T( n 4 ) = n +...+n +4 i T( n i ). Iterację powtarzamy, aż ostatni składnik będzie zawierał T(), czyli wtedy, gdy i = log n. Otrzymujemy wtedy log n T(n) = n } +...+n {{ } +4 i T() = n +4 log n = n log n+n. i i= c) Funkcję T rozwijamy w następujący sposób: T(n) = n+3 T( n ) = n+3(n +3 T(n 4 )) = n+ 3 n+9 T(n 4 ) = n (+...+( 3 )i )+3 i T( n i ). Iterację powtarzamy, aż ostatni składnik będzie zawierał T(), czyli wtedy, gdy i = log n. Otrzymujemy wtedy T(n) = n (+...+( 3 )i )+3 i T() = n (3 )log n +3 log n = 3 n log 3 n. 3
16 d) Funkcję T rozwijamy w następujący sposób: T(n) = (n )!+(n ) T(n ) = (n )!+(n ) ((n ) T(n 3)+(n )!) = (n )!+(n ) (n ) T(n ) =... = k(n )!+(n ) (n )... (n k +) T(n k). Iterację powtarzamy, aż ostatni składnik będzie zawierał T(), czyli wtedy, gdy k = n. Otrzymujemy wtedy T(n) = (n ) (n )!+(n )! T() = n!. e) Funkcję T rozwijamy w następujący sposób: T(n) = B + T( n ) = B +(B + T(n 4 )) = B +B + T( n 4 ) = B (+...+ i )+ i T( n i ). Iterację powtarzamy, aż ostatni składnik będzie zawierał T() = A, czyli wtedy, gdy i = log n. Otrzymujemy wtedy T(n) = B (+...+ i )+ i T() = B ( i )+ log n A = (n ) B +n A = (A+B) n B. f) Funkcję T rozwijamy w następujący sposób: T(n) = Bn+ T( n ) = Bn+(Bn + T(n 4 )) = Bn+Bn+ T( n 4 ) = Bn (+...+)+ i T( n i ). Iterację powtarzamy, aż ostatni składnik będzie zawierał T() = A, czyli wtedy, gdy i = log n. Otrzymujemy wtedy T(n) = Bn (+...+ }{{} )+ i T() = Bn log n i= + i T() i = Bn log n+ log n A = Bnlog n+an. g) Funkcję T rozwijamy w następujący sposób: T(n) = C +Bn+ T( n ) = C +Bn+(C +Bn + T(n 4 )) = (C +C)+(Bn+Bn)+ T( n 4 ) = C (+...+ i )+Bn (+...+)+ i T( n i ). Iterację powtarzamy, aż ostatni składnik będzie zawierał T() = A, czyli wtedy, gdy i = log n. Otrzymujemy wtedy T(n) = C (+...+ i )+Bn (+...+ }{{} )+ i T() = C(n )+Bnlog n+ log n A = Bnlog n+(a+c)n C. 4 i
17 8.5. Funkcję T rozwijamy w następujący sposób: T(n) = n+t(a)+t(n a) = n+t(a)+((n a)+t(a)+t(n a)) = (n+t(a)) a+t(n a) = (n+t(a)) a+((n a)+t(a)+t(n 3a)) = 3(n+T(a)) (a+a)+t(n 3a) = 3(n+T(a)) (a+a)+((n 3a)+T(a)+T(n 4a)) = 4(n+T(a)) (a+a+3a)+4 T(a)+T(n 4a) =... = i (n+t(a)) (++...+(i ))a+t(n ka) = i (n+t(a)) i(i ) a+t(n ia). Iterację powtarzamy, aż ostatni składnik będzie postaci T(a), tj. gdy n ia = a, czyli wtedy, gdy i = n a a = ka a a = k. Otrzymujemy wtedy 8.8. T(n) = (k ) (n+t(a)) (k )(k ) a+t(a) = (k ) n+k T(a) (k )(k ) a.. Krok bazowy. Dla n =,,3 mamy: T() =[wzór]= ( 4 3 ) ; T() =[wzór]= ( 4 3 ) ; T(3) =[wzór]= ( 4 3 )3.. Założenie indukcyjne. Rozważmy n 4 i załóżmy, że dla 3 n < n zachodzi T(n ) ( 4 3 )n. 3. Krok indukcyjny. T(n) =[wzór]= T(n )+T(n 3) =[założenie] ( 4 3 )n +( 4 3 )n 3 = ( 4 3 +) (4 3 )n 3. Ale zachodzi , stąd T(n) 64 7 (4 3 )n 3 = ( 4 3 )n Mamy wykazać, że istnieją stałe a i b takie, że T(n) a log n+b. Zakładamy, że n jest potęgą dwójki.. Krok bazowy. Dla n = mamy T() =[wzór]= a 0+b = a log +b, dla dowolnego a i b.. Założenie indukcyjne. Rozważmy n i załóżmy, że dla n < n zachodzi T(n ) = O(log n ), tzn. istnieją stałe a i b takie, że T(n ) a log n +b dla dowolnego n < n (n jest potęgą dwójki). 3. Krok indukcyjny. T(n) =[wzór]= T( n )+ =[założenie] a log n +b+ = a (log n log )+b+. Stąd T(n) a log n+b+( a) a log n+b, o ile a. Zatem można przyjąć np. a =, b =. 5
18 Krok bazowy. Dla n = mamy T() =[wzór]= = a+b, dla pewnych a i b.. Założenie indukcyjne. Rozważmy n i załóżmy, że dla n < n zachodzi T(n ) = an +b dla pewnych (tych samych, co wyżej) a i b. 3. Krok indukcyjny. T(n) =[wzór]= T( n n )+ =[założenie]= (a +b)+b = an+b+. Jako że chcemy wykazać, że T(n) = an+b, stąd a i b muszą spełniać an+b+ = an+b. Stąd b =. Uwzględniając z pkt. () fakt, że a+b = otrzymujemy a =. Zatem należy przyjąć a = 3, b = a) f(n) = n i funkcja f rośnie wolniej niż n log 3 9 = n, stąd T(n) = Θ(n ). b) f(n) = i funkcja f rośnie tak samo, jak n log 3 = n 0, stąd T(n) = Θ(log n). c) f(n) = nlog n i funkcja f rośnie szybciej niż n log 4 3, oraz 3 n 4 log n nlog n, a zatem T(n) = Θ(nlog n). d) f(n) = n i funkcja f rośnie wolniej niż n log 3, stąd T(n) = Θ(n log 3 ). e) f(n) = n i funkcja f rośnie wolniej niż n log 4 = n, stąd T(n) = Θ(n ). f) f(n) = n i funkcja f rośnie tak samo, jak n log 4, stąd T(n) = Θ(n log n). g) f(n) = n 3 i f rośnie szybciej niż n log 4 = n, oraz 4 ( n )3 n3, stąd T(n) = Θ(n 3 ). 6
Rekurencja. Przykład. Rozważmy ciąg
Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu
UNIWERSYTET GDAŃSKI MATERIAŁY DYDAKTYCZNE DO PRZEDMIOTU MATEMATYKA DYSKRETNA. pod redakcją: Hanna Furmańczyk Karol Horodecki Paweł Żyliński
UNIWERSYTET GDAŃSKI MATERIAŁY DYDAKTYCZNE DO PRZEDMIOTU MATEMATYKA DYSKRETNA pod redakcją: Hanna Furmańczyk Karol Horodecki Paweł Żyliński kierunek: Informatyka GDAŃSK 2019 Niniejsze materiały powstały
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 4a: Rozwiązywanie rekurencji http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Czas działania programu Dla konkretnych
Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:
Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n
Matematyka Dyskretna 2/2008 rozwiązania. x 2 = 5x 6 (1) s 1 = Aα 1 + Bβ 1. A + B = c 2 A + 3 B = d
C. Bagiński Materiały dydaktyczne 1 Matematyka Dyskretna /008 rozwiązania 1. W każdym z następujących przypadków podać jawny wzór na s n i udowodnić indukcyjnie jego poprawność: (a) s 0 3, s 1 6, oraz
Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].
Zadanie 1. Wiązka zadań Od szczegółu do ogółu Rozważmy następujący algorytm: Dane: Algorytm 1: k liczba naturalna, A[1...2 k ] tablica liczb całkowitych. n 1 dla i=1,2,,k wykonuj n 2n s 1 dopóki s
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku
Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Rekurencja 11 Wieże Hanoi Rekurencja jest to zdolność podprogramu (procedury lub funkcji) do wywoływania samego siebie Zacznijmy
Krzysztof Gniłka. Twierdzenie o rekurencji uniwersalnej
Krzysztof Gniłka Twierdzenie o rekurencji uniwersalnej Spis treści Wstęp 3 Rozdział 1 Definicje i pomocnicze lematy 4 1 Części całkowite liczb 4 2 Logarytmy 9 3 Notacja asymptotyczna 12 Rozdział 2 Metoda
Indukcja matematyczna
Indukcja matematyczna 1 Zasada indukcji Rozpatrzmy najpierw następujący przykład. Przykład 1 Oblicz sumę 1 + + 5 +... + (n 1). Dyskusja. Widzimy że dla n = 1 ostatnim składnikiem powyższej sumy jest n
Matematyka dyskretna. Andrzej Łachwa, UJ, 2019 Zadania 1-100
Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl Zadania 1-100 Udowodnij, że A (B C) = (A B) (A C) za pomocą diagramów Venna. Udowodnij formalnie, że (A B i A C) A B C oraz że (A
Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak
Indukcja Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Charakteryzacja zbioru liczb naturalnych Arytmetyka liczb naturalnych Jedną z najważniejszych teorii matematycznych jest arytmetyka
Matematyka dyskretna
Matematyka dyskretna wykład 1: Indukcja i zależności rekurencyjne Gniewomir Sarbicki Literatura Kenneth A. Ross, Charles R. B. Wright Matematyka Dyskretna PWN 005 J. Jaworski, Z. Palka, J. Szymański Matematyka
O rekurencji i nie tylko
O rekurencji i nie tylko dr Krzysztof Bryś Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska 10 grudnia 2011 Intuicyjnie: rekurencja sprowadzenie rozwiązania danego problemu do rozwiązania
Wykład 4. Określimy teraz pewną ważną klasę pierścieni.
Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia
Matematyka dyskretna dla informatyków
Matematyka dyskretna dla informatyków Część I: Elementy kombinatoryki Jerzy Jaworski Zbigniew Palka Jerzy Szymański Uniwersytet im. Adama Mickiewicza Poznań 2007 4 Zależności rekurencyjne Wiele zależności
Matematyka dyskretna. Andrzej Łachwa, UJ, a/15
Matematyka dyskretna Andrzej Łachwa, UJ, 2017 andrzej.lachwa@uj.edu.pl 3a/15 Indukcja matematyczna Zasada Minimum Dowolny niepusty podzbiór S zbioru liczb naturalnych ma w sobie liczbę najmniejszą. Zasada
Matematyka Dyskretna Zestaw 2
Materiały dydaktyczne Matematyka Dyskretna (Zestaw ) Matematyka Dyskretna Zestaw 1. Wykazać, że nie istnieje liczba naturalna, która przy dzieleniu przez 18 daje resztę 13, a przy dzieleniu przez 1 daje
Poprawność semantyczna
Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych
Podstawy Informatyki. Sprawność algorytmów
Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych
Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów
Treść wykładu Pierścienie wielomianów. Definicja Niech P będzie pierścieniem. Wielomianem jednej zmiennej o współczynnikach z P nazywamy każdy ciąg f = (f 0, f 1, f 2,...), gdzie wyrazy ciągu f są prawie
Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów
Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów Liga zadaniowa 202/203 Seria VI (grudzień 202) rozwiązania zadań 26. Udowodnij, że istnieje 0 00 kolejnych liczb całkowitych dodatnich nie większych
Sortowanie przez scalanie
Sortowanie przez scalanie Wykład 2 12 marca 2019 (Wykład 2) Sortowanie przez scalanie 12 marca 2019 1 / 17 Outline 1 Metoda dziel i zwyciężaj 2 Scalanie Niezmiennik pętli - poprawność algorytmu 3 Sortowanie
FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;
Rekurencja Wykład: rekursja, funkcje rekurencyjne, wywołanie samej siebie, wyznaczanie poszczególnych liczb Fibonacciego, potęgowanie, algorytm Euklidesa REKURENCJA Rekurencja (z łac. recurrere), zwana
Algorytmy w teorii liczb
Łukasz Kowalik, ASD 2004: Algorytmy w teorii liczb 1 Algorytmy w teorii liczb Teoria liczb jest działem matemtyki dotyczącym własności liczb naturalnych. Rozważa się zagadnienia związane z liczbami pierwszymi,
Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych
Arytmetyka liczb całkowitych Wykład 1 Na początku zajmować się będziemy zbiorem liczb całkowitych Z = {0, ±1, ±2,...}. Zakładamy, że czytelnik zna relację
Matematyka dyskretna. Andrzej Łachwa, UJ, /14
Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl 4/14 Indukcja matematyczna Poprawność indukcji matematycznej wynika z dobrego uporządkowania liczb naturalnych, czyli z następującej
Algorytmy i Struktury Danych, 2. ćwiczenia
Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów
Algorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Matematyka dyskretna. Andrzej Łachwa, UJ, /10
Matematyka dyskretna Andrzej Łachwa, UJ, 2018 andrzej.lachwa@uj.edu.pl 3/10 indukcja matematyczna Poprawność indukcji matematycznej wynika z dobrego uporządkowania liczb naturalnych, czyli z następującej
Matematyka dyskretna. Andrzej Łachwa, UJ, /15
Matematyka dyskretna Andrzej Łachwa, UJ, 2014 andrzej.lachwa@uj.edu.pl 3/15 Indukcja matematyczna Poprawność indukcji matematycznej wynika z dobrego uporządkowania liczb naturalnych, czyli z następującej
1. Wykład NWD, NWW i algorytm Euklidesa.
1.1. NWD, NWW i algorytm Euklidesa. 1. Wykład 1 Twierdzenie 1.1 (o dzieleniu z resztą). Niech a, b Z, b 0. Wówczas istnieje dokładnie jedna para liczb całkowitych q, r Z taka, że a = qb + r oraz 0 r< b.
Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.
Rekurencja Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów. Zgodnie ze znaczeniem informatycznym algorytm rekurencyjny to taki który korzysta z samego
Strategia "dziel i zwyciężaj"
Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa
Matematyka dyskretna. Andrzej Łachwa, UJ, /15
Matematyka dyskretna Andrzej Łachwa, UJ, 2015 andrzej.lachwa@uj.edu.pl 3/15 Indukcja matematyczna Poprawność indukcji matematycznej wynika z dobrego uporządkowania liczb naturalnych, czyli z następującej
Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 6 Podstawy programowania 2 Temat: Funkcje i procedury rekurencyjne Przygotował: mgr inż. Tomasz Michno Wstęp teoretyczny Rekurencja (inaczej nazywana rekursją, ang. recursion)
Analiza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą
Analiza Algorytmów. Informatyka, WPPT, Politechnika Wroclawska. 1 Zadania teoretyczne (ćwiczenia) Zadanie 1. Zadanie 2. Zadanie 3
Analiza Algorytmów Informatyka, WPPT, Politechnika Wroclawska 1 Zadania teoretyczne (ćwiczenia) Zadanie 1 Niech k będzie dodatnią liczbą całkowitą. Rozważ następującą zmienną losową Pr[X = k] = (6/π 2
Funkcje rekurencyjne
Funkcje rekurencyjne Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl Funkcje rekurencyjne Jerzy Pogonowski (MEG) Funkcje rekurencyjne Funkcje rekurencyjne 1 / 34 Wprowadzenie
Jarosław Wróblewski Analiza Matematyczna 1A, zima 2012/13
35. O zdaniu 1 T (n) udowodniono, że prawdziwe jest T (1), oraz że dla dowolnego n 6 zachodzi implikacja T (n) T (n+2). Czy można stąd wnioskować, że a) prawdziwe jest T (10), b) prawdziwe jest T (11),
Matematyka dyskretna. Andrzej Łachwa, UJ, /14
Matematyka dyskretna Andrzej Łachwa, UJ, 2016 andrzej.lachwa@uj.edu.pl 6/14 Sumy Oto dwie konwencje zapisu skończonych sum wyrazów: (notacja Sigma, Fourier, 1820) Czasami stosowana jest ogólniejsza notacja,
Paweł Gładki. Algebra. pgladki/
Paweł Gładki Algebra http://www.math.us.edu.pl/ pgladki/ Konsultacje: Środa, 14:00-15:00 Jeżeli chcesz spotkać się z prowadzącym podczas konsultacji, postaraj się powiadomić go o tym przed lub po zajęciach,
Zaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
a 1, a 2, a 3,..., a n,...
III. Ciągi liczbowe. 1. Definicja ciągu liczbowego. Definicja 1.1. Ciągiem liczbowym nazywamy funkcję a : N R odwzorowującą zbiór liczb naturalnych N w zbiór liczb rzeczywistych R i oznaczamy przez {a
Indukcja matematyczna
Indukcja matematyczna Zadanie. Zapisać, używając symboli i, następujące wyrażenia (a) n!; (b) sin() + sin() sin() +... + sin() sin()... sin(n); (c) ( + )( + /)( + / + /)... ( + / + / +... + /R). Zadanie.
Matematyka dyskretna. Andrzej Łachwa, UJ, /15
Matematyka dyskretna Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl 6/15 Sumy Oto dwie konwencje zapisu skończonych sum wyrazów: (notacja Sigma, Fourier, 1820) Czasami stosowana jest ogólniejsza notacja,
Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych
Teoria liczb Zajmuje się własnościami liczb, przede wszystkim całkowitych Niepraktyczna? - kryptografia Dzielenie liczb całkowitych z resztą Niech b>0, wtedy dla każdej liczby całkowitej a istnieją jednoznacznie
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Metoda Dziel i zwyciężaj. Problem Sortowania, cd. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Algorytmy
Algorytmy i Struktury Danych, 9. ćwiczenia
Algorytmy i Struktury Danych, 9. ćwiczenia 206-2-09 Plan zajęć usuwanie z B-drzew join i split na 2-3-4 drzewach drzepce adresowanie otwarte w haszowaniu z analizą 2 B-drzewa definicja każdy węzeł ma następujące
Twierdzenie Li-Yorke a Twierdzenie Szarkowskiego
Politechnika Gdańska Wydział Fizyki Technicznej i Matematyki Stosowanej Twierdzenie Li-Yorke a Twierdzenie Szarkowskiego Autor: Kamil Jaworski 11 marca 2012 Spis treści 1 Wstęp 2 1.1 Podstawowe pojęcia........................
Matematyka dyskretna
Matematyka dyskretna Wykład 4: Podzielność liczb całkowitych Gniewomir Sarbicki Dzielenie całkowitoliczbowe Twierdzenie: Dla każdej pary liczb całkowitych (a, b) istnieje dokładnie jedna para liczb całkowitych
Matematyka dyskretna. Andrzej Łachwa, UJ, /10
Matematyka dyskretna Andrzej Łachwa, UJ, 2018 andrzej.lachwa@uj.edu.pl 4/10 rekurencja Wzór (przepis) na liczenie silni: n! to iloczyn kolejnych liczb naturalnych od 1 do n oraz 0!=1. Oto wartości silni
Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,
Teoria liczb Magdalena Lemańska Literatura Matematyka Dyskretna Andrzej Szepietowski http://wazniak.mimuw.edu.pl/ Discrete Mathematics Seymour Lipschutz, Marc Lipson Wstęp Teoria liczb jest dziedziną matematyki,
Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 9 Rekurencja
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 9 Rekurencja Rekurencja z łacińskiego oznacza to przybiec z powrotem - osiągniesz rzecz wielką, jeśli zawrócisz po to, by osiągnąć rzeczy małe Przykład:
Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne
Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne Elementy Logiki i Teorii Mnogości 2015/2016 Zadanie 1. Oblicz iteracyjnie i rekurencyjnie f(4), gdzie f jest funkcją określoną na zbiorze
Wykład 8. Rekurencja. Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. L. Peter Deutsch
Wykład 8 Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. Smok podsuszony zmok (patrz: Zmok). Zmok zmoczony smok (patrz: Smok). L. Peter Deutsch Stanisław Lem Wizja lokalna J. Cichoń, P. Kobylański
Jeszcze o algorytmach
Jeszcze o algorytmach Przykłady różnych, podstawowych algorytmów 11.01.2018 M. Rad Plan Powtórka Znajdowanie najmniejszego elementu Segregowanie Poszukiwanie przez połowienie Wstawianie Inne algorytmy
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 5 część I 2 Iteracja Rekurencja Indukcja Iteracja Rekurencja Indukcja Algorytmy sortujące Rozwiazywanie
n=0 (n + r)a n x n+r 1 (n + r)(n + r 1)a n x n+r 2. Wykorzystując te obliczenia otrzymujemy, że lewa strona równania (1) jest równa
Równanie Bessela Będziemy rozważać następujące równanie Bessela x y xy x ν )y 0 ) gdzie ν 0 jest pewnym parametrem Rozwiązania równania ) nazywamy funkcjami Bessela rzędu ν Sprawdzamy, że x 0 jest regularnym
0 --> 5, 1 --> 7, 2 --> 9, 3 -->1, 4 --> 3, 5 --> 5, 6 --> 7, 7 --> 9, 8 --> 1, 9 --> 3.
(Aktualizacja z dnia 3 kwietnia 2013) MATEMATYKA DYSKRETNA - informatyka semestr 2 (lato 2012/2013) Zadania do omówienia na zajęciach w dniach 21 i 28 kwietnia 2013 ZESTAW NR 3/7 (przykłady zadań z rozwiązaniami)
Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61
Metody numeryczne I Dokładność obliczeń numerycznych. Złożoność obliczeniowa algorytmów Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61 ... the purpose of
1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)
1. Liczby wymierne. - wartość bezwzględna liczby. dla 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba) - dla < 0 ( wartością bezwzględną liczby ujemnej jest liczba do niej przeciwna) W interpretacji
Warmińsko-Mazurskie Zawody Matematyczne Eliminacje cykl styczniowy Poziom: szkoły ponadgimnazjalne, 10 punktów za każde zadanie
Warmińsko-Mazurskie Zawody Matematyczne Eliminacje cykl styczniowy oziom: szkoły ponadgimnazjalne, 0 punktów za każde zadanie Zadanie Znajdź dwa dzielniki pierwsze liczby - Można skorzystać z artykułu
1.1. Uzupełnij poniższą tabelę: i wynik(i)
Zadanie 1. Krzysztof, Kamil Wiązka zadań Ciągi rekurencyjne Dana jest następująca funkcja rekurencyjna: funkcja wynik( i ) jeżeli i < 3 zwróć 1 i zakończ; w przeciwnym razie jeżeli i mod 2 = 0 zwróć wynik(i
Algorytmy Równoległe i Rozproszone Część II - Sieci porównujące
Algorytmy Równoległe i Rozproszone Część II - Sieci porównujące Łukasz Kuszner pokój 209, WETI http://kaims.eti.pg.gda.pl/ kuszner/ kuszner@eti.pg.gda.pl Oficjalna strona wykładu http://kaims.eti.pg.gda.pl/
EGZAMIN, ANALIZA 1A, , ROZWIĄZANIA
Zadanie 1. Podać kresy następujących zbiorów. Przy każdym z kresów napisać, czy kres należy do zbioru (TAK = należy, NIE = nie należy). infa = 0 NIE A = infb = 1 TAK { 1 i + 2 j +1 + 3 } k +2 : i,j,k N
Rekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)
Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!
Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym
Indukcja matematyczna. Matematyka dyskretna
Indukcja matematyczna Matematyka dyskretna Indukcja matematyczna Indukcja matematyczna będzie przez nas używana jako metoda dowodzenia twierdzeń. Zazwyczaj są to twierdzenia dotyczące liczb naturalnych,
Z-LOG-1004 Matematyka dyskretna Discrete mathematics. Przedmiot podstawowy Wybieralny polski Semestr III
KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013 Z-LOG-1004 Matematyka dyskretna Discrete mathematics A. USYTUOWANIE MODUŁU
2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,
2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d
Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,
Oznaczenia: Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze, to interesuje nas złożoność obliczeniowa
Złożoność algorytmów. Wstęp do Informatyki
Złożoność algorytmów Złożoność pamięciowa - liczba i rozmiar struktur danych wykorzystywanych w algorytmie Złożoność czasowa - liczba operacji elementarnych wykonywanych w trakcie przebiegu algorytmu Złożoność
2.8. Algorytmy, schematy, programy
https://app.wsipnet.pl/podreczniki/strona/38766 2.8. Algorytmy, schematy, programy DOWIESZ SIĘ co oznaczają pojęcia: algorytm, schemat blokowy, język programowania, jakie są sposoby obliczania największego
Matematyka dyskretna. Andrzej Łachwa, UJ, /14
Matematyka dyskretna Andrzej Łachwa, UJ, 2012 andrzej.lachwa@uj.edu.pl 5/14 Rekurencja Weźmy dla przykładu wzór (przepis) na liczenie silni: n! to iloczyn kolejnych liczb naturalnych od 1 do n oraz 0!=1.
Zestaw zadań dotyczących liczb całkowitych
V Zestaw zadań dotyczących liczb całkowitych Opracowanie Monika Fabijańczyk ROZDZIAŁ 1 Cechy podzielności Poniższe zadania zostały wybrane z różnych zbiorów zadań, opracowań, konkursów matematycznych.
Jarosław Wróblewski Matematyka Elementarna, lato 2012/13. W dniu 21 lutego 2013 r. omawiamy test kwalifikacyjny.
W dniu 21 lutego 2013 r. omawiamy test kwalifikacyjny. Uwaga: Przyjmujemy, że 0 nie jest liczbą naturalną, tzn. liczby naturalne są to liczby całkowite dodatnie. 1. Dane są liczby naturalne m, n. Wówczas
Matura próbna matematyka poziom rozszerzony
Matura próbna matematyka poziom rozszerzony Zadanie 1 (1pkt) Jaki jest zbiór wartości funkcji f(x) = 5 cos x 1, jeśli x π, π? 4 (a) 0, + //gdy pominie przedział na x i policzy dla x R (b) 0, 7 + //prawidłowa
Wykład z równań różnicowych
Wykład z równań różnicowych 1 Wiadomości wstępne Umówmy się, że na czas tego wykładu zrezygnujemy z oznaczania n-tego wyrazu ciągu symbolem typu x n, y n itp. Zamiast tego pisać będziemy x (n), y (n) itp.
Przykładowe zadania z teorii liczb
Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę
Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska
Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik
Maria Romanowska UDOWODNIJ, ŻE... PRZYKŁADOWE ZADANIA MATURALNE Z MATEMATYKI
Maria Romanowska UDOWODNIJ, ŻE... PRZYKŁADOWE ZADANIA MATURALNE Z MATEMATYKI Matematyka dla liceum ogólnokształcącego i technikum w zakresie podstawowym i rozszerzonym Z E S Z Y T M E T O D Y C Z N Y Miejski
Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Materiały dydaktyczne na zajęcia wyrównawcze z matematyki dla studentów pierwszego roku kierunku zamawianego Inżynieria i Gospodarka Wodna w ramach projektu Era inżyniera pewna lokata na przyszłość Projekt
Aproksymacja diofantyczna
Aproksymacja diofantyczna Szymon Draga Ustroń, 4 listopada 0 r Wprowadzenie Jak wiadomo, każdą liczbę niewymierną można (z dowolną dokładnością) aproksymować liczbami wymiernymi Powstaje pytanie, w jaki
Wstęp do programowania
Wstęp do programowania Rekurencja, metoda dziel i zwyciężaj Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. VIII Jesień 2014 1 / 27 Rekurencja Recursion See Recursion. P. Daniluk(Wydział
Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )
SORTOWANIE 1 SORTOWANIE Proces ustawiania zbioru elementów w określonym porządku. Stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. 2 Definicja Ciąg wejściowy: a 1,
Funkcja kwadratowa. f(x) = ax 2 + bx + c = a
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax, a R \ {0}.
Schemat rekursji. 1 Schemat rekursji dla funkcji jednej zmiennej
Schemat rekursji 1 Schemat rekursji dla funkcji jednej zmiennej Dla dowolnej liczby naturalnej a i dowolnej funkcji h: N 2 N istnieje dokładnie jedna funkcja f: N N spełniająca następujące warunki: f(0)
Logika i teoria mnogości Wykład 14
Teoria rekursji Teoria rekursji to dział logiki matematycznej zapoczątkowany w latach trzydziestych XX w. Inicjatorzy tej dziedziny to: Alan Turing i Stephen Kleene. Teoria rekursji bada obiekty (np. funkcje,
Podstawy Informatyki. Metalurgia, I rok. Rekurencja. skomplikowane zadanie. Rekurencja
Podstawy Informatyki Metalurgia, I rok Rekurencja z łacińskiego oznacza to przybiec z powrotem - osiągniesz rzecz wielką, jeśli zawrócisz po to, by osiągnąć rzeczy małe Małe dziecko otrzymuje polecenie
Elementy teorii informacji i kodowania
i kodowania Entropia, nierówność Krafta, kodowanie optymalne Marcin Jenczmyk m.jenczmyk@knm.katowice.pl 17 kwietnia 2015 M. Jenczmyk Spotkanie KNM i kodowania 1 / 20 Niech S = {x 1,..., x q } oznacza alfabet,
Podstawy Informatyki. Metalurgia, I rok. Wykład 5 Rekurencja
Podstawy Informatyki Metalurgia, I rok Wykład 5 Rekurencja Rekurencja z łacińskiego oznacza to przybiec z powrotem - osiągniesz rzecz wielką, jeśli zawrócisz po to, by osiągnąć rzeczy małe Przykład: Małe
Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303
Wykład 9 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303 stos i operacje na stosie odwrotna notacja polska języki oparte na ONP przykłady programów J. Cichoń, P. Kobylański Wstęp
Luty 2001 Algorytmy (4) 2000/2001
Mając dany zbiór elementów, chcemy znaleźć w nim element największy (maksimum), bądź najmniejszy (minimum). We wszystkich naturalnych metodach znajdywania najmniejszego i największego elementu obecne jest
Jarosław Wróblewski Matematyka Elementarna, zima 2012/13
Poniedziałek 12 listopada 2012 - zaczynamy od omówienia zadań z kolokwium nr 1. Wtorek 13 listopada 2012 - odbywają się zajęcia czwartkowe. 79. Uprościć wyrażenia a) 4 2+log 27 b) log 3 2 log 59 c) log
Skrypt 23. Geometria analityczna. Opracowanie L7
Projekt Innowacyjny program nauczania matematyki dla liceów ogólnokształcących współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Skrypt 2 Geometria analityczna 1.
Wykład 4: Iteracja, indukcja i rekurencja
Teoretyczne podstawy informatyki Wykład 4: Iteracja, indukcja i rekurencja Prof. dr hab. Elżbieta Richter-Wąs 1 Słowem wstępu Iteracja, indukcja i rekurencja to podstawowe zagadnienia pojawiające się przy
Algorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA WYDZIAŁ INŻYNIERII ELEKTRYCZNEJ i KOMPUTEROWEJ Katedra Automatyki i Technik Informacyjnych Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew