Rekurencja. Matematyka dyskretna

Podobne dokumenty
Teoretyczne podstawy informatyki

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, A/15

TEORETYCZNE PODSTAWY INFORMATYKI

Zaawansowane algorytmy i struktury danych

Matematyka dyskretna. Andrzej Łachwa, UJ, a/15

O rekurencji i nie tylko

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

Krzysztof Gniłka. Twierdzenie o rekurencji uniwersalnej

Zadania do samodzielnego rozwiązania

Ciągi i rekurencja, komputer dla matematyka. warsztaty towarzyszące konferencji Informatyka realnie prowadzą: Hanna Basaj Jan Aleksander Wierzbicki

Zaawansowane algorytmy i struktury danych

Przykładowe zadania z teorii liczb

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Matematyka dyskretna dla informatyków

Metody numeryczne w przykładach

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Wykład 8. Rekurencja. Iterować jest rzeczą ludzką, wykonywać rekursywnie boską. L. Peter Deutsch

Matematyka dyskretna. Andrzej Łachwa, UJ, 2019 Zadania 1-100

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

i = n = n 1 + n 2 1 i 2 n 1. n(n + 1)(2n + 1) n (n + 1) =

Przykładami ciągów, które Czytelnik dobrze zna (a jeśli nie, to niniejszym poznaje), jest ciąg arytmetyczny:

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

Ciąg Fibonacciego jako szczególny przykład ciągu określonego rekurencyjnie. Przykłady rekurencji w informatyce

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Efektywność algorytmów

CIĄGI wiadomości podstawowe

Poprawność semantyczna

Zaliczenie. Egzamin. lub. Wykład. Zaliczenie. Ćwiczenie. 3 zadania. Projekty. Ocena. Na ocenę

Jarosław Wróblewski Matematyka Elementarna, zima 2014/15

MATeMAtyka 1. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony Klasa pierwsza

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

7. CIĄGI. WYKŁAD 5. Przykłady :

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.

Ciągi liczbowe wykład 3

Katarzyna Bereźnicka Zastosowanie arkusza kalkulacyjnego w zadaniach matematycznych. Opiekun stypendystki: mgr Jerzy Mil

Indukcja matematyczna. Matematyka dyskretna

Jarosław Wróblewski Analiza Matematyczna 1A, zima 2012/13

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Jarosław Wróblewski Matematyka Elementarna, zima 2015/16

Indukcja matematyczna. Zasada minimum. Zastosowania.

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu

Wykład 2. Poprawność algorytmów

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE DRUGIEJ LICEUM

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

Jarosław Wróblewski Matematyka Elementarna, lato 2014/15

Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:

Podstawy Informatyki. Sprawność algorytmów

Przedmiotowe Zasady Oceniania

Metody numeryczne. dr Artur Woike. Ćwiczenia nr 2. Rozwiązywanie równań nieliniowych metody połowienia, regula falsi i siecznych.

Wymagania edukacyjne z matematyki do programu pracy z podręcznikiem Matematyka wokół nas

Metody numeryczne I Równania nieliniowe

w najprostszych przypadkach, np. dla trójkątów równobocznych

1. LICZBY DZIAŁ Z PODRĘCZNIKA L.P. NaCoBeZu kryteria sukcesu w języku ucznia

Przypomnienie wiadomości dla trzecioklasisty C z y p a m i ę t a s z?

Algorytmy w teorii liczb

Jeśli lubisz matematykę

2) R stosuje w obliczeniach wzór na logarytm potęgi oraz wzór na zamianę podstawy logarytmu.

Próbny egzamin z matematyki dla uczniów klas II LO i III Technikum. w roku szkolnym 2012/2013

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Kształcenie w zakresie podstawowym. Klasa 1

WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą

Przedmiotowe zasady oceniania i wymagania edukacyjne z matematyki dla klasy drugiej gimnazjum

WYMAGANIA EDUKACYJNE Z MATEMATYKI dla klasy I ba Rok szk. 2012/2013

Wymagania edukacyjne z matematyki klasa II technikum

Tematyka do egzaminu ustnego z matematyki. 3 semestr LO dla dorosłych

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Wykład 7. Informatyka Stosowana. 21 listopada Informatyka Stosowana Wykład 7 21 listopada / 27

Wykład 4: Iteracja, indukcja i rekurencja

Jarosław Wróblewski Matematyka Elementarna, lato 2012/13. Czwartek 28 marca zaczynamy od omówienia zadań z kolokwium nr 1.

6. Liczby wymierne i niewymierne. Niewymierność pierwiastków i logarytmów (c.d.).

Kongruencje pierwsze kroki

Rekurencja. Przykład. Rozważmy ciąg

Matematyka dyskretna. Andrzej Łachwa, UJ, 2013 Przykłady zadań egzaminacyjnych (do liczenia lub dowodzenia)

Obliczenia iteracyjne

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Równania Pitagorasa i Fermata

Wymagania edukacyjne na poszczególne oceny z matematyki w klasie I poziom rozszerzony

Algorytmy i struktury danych. Wykład 4

PRZEDMIOTOWY SYSTEM OCENIANIA Z MATEMATYKI DLA KLASY 1LO i 1TI ROK SZKOLNY 2018/2019

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY

Liczby całkowite. Zadania do pierwszych dwóch lekcji

ZESPÓŁ SZKÓŁ W OBRZYCKU

Matematyczne Podstawy Informatyki

Wymagania edukacyjne matematyka klasa 1 zakres podstawowy 1. LICZBY RZECZYWISTE

WYMAGANIA EDUKACYJNE - matematyka - poziom rozszerzony Dariusz Drabczyk

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE II W PUBLICZNYM GIMNAZJUM NR 2 W ZESPOLE SZKÓŁ W RUDKACH

Jarosław Wróblewski Matematyka Elementarna, zima 2013/14. Czwartek 21 listopada zaczynamy od omówienia zadań z kolokwium nr 2.

1. Wykład NWD, NWW i algorytm Euklidesa.

WYRAŻENIA ALGEBRAICZNE

Osiągnięcia ponadprzedmiotowe

Wymagania na egzamin poprawkowy z matematyki z zakresu klasy pierwszej TECHNIKUM

Metody rozwiązywania równań nieliniowych

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Wymagania na poszczególne oceny w klasie II gimnazjum do programu nauczania MATEMATYKA NA CZASIE

Transkrypt:

Rekurencja Matematyka dyskretna

Rekurencja Definicja rekurencyjna (indukcyjna) nieformalnie: taka definicja, która odwołuje się do samej siebie, ale trzeba tu uważać, by odwołanie było do instancji o mniejszej komplikacji, zwykle chodzi o ciąg < a!, a!, a!, >, dla którego przepis na element a! wykorzystuje jakieś poprzednie elementy, np. a!!!, a!!!, itp., początkowy element (lub kilka początkowych) muszą być zadane konkretnie, żeby było od czego zacząć, zwykle definicja rekurencyjna odwołuje się do jednego lub kilku poprzednich elementów, ale może też odwoływać się do wszystkich poprzednich.

Przykład R. 1. Wieże Hanoi - E. Lucas, 1883 Legenda mówi, że w pewnym klasztorze buddyjskim, Budda umieścił 64 złote krążki na jednej z trzech diamentowych iglic tak, że krążki wyżej umieszczone miały mniejsze promienie. Mnisi bez wytchnienia przekładają krążki na trzecią iglicę w ten sposób, że: w jednym ruchu przenosić tylko jeden krążek, krążek większy nigdy nie może leżeć na krążku mniejszym, można posługiwać się środkową iglicą. Kiedy skończą świat skończy się. Ile czasu im to zajmie?

Wieże Hanoi analiza H! = 1 dla n = 1 2 H!!! + 1 dla n 1 Możemy policzyć kilka jego wyrazów: 1, 3, 7, 15, 31, 63, (są to kolejne potęgi dwójki pomniejszone o 1). Zgadujemy, że: Udowodnimy to za pomocą indukcji: 1. Sprawdzamy dla n=1 (bazą indukcji): H! = 2 n 1 (1) Ze wzoru (1) H! = 2! 1 = 1 tak jak we wzorze rekurencyjnym. 2. Założenie indukcyjne: H k = 2 k 1 H k!! = 2 H k + 1 = 2 2 k 1 + 1 = 2 k!! 1 (krok indukcyjny) ckd (1). Ponieważ mnisi muszą wykonać co najmniej 2!" 1 ruchów, więc nawet jeśli pracują w tempie 1 operacji na sekundę, mamy przed sobą jeszcze H!" = 2!" 1 s 6 10!! lat.

Wieże Hanoi - algorytm rekurencyjny W celu przeniesienia krążków z A do C należy: 1. przenieść n- 1 krążków z A do C - wówczas n- ty dysk samotnie pozostaje w A 2. przenieść n- ty (największy krążek) z A do B 3. przenieść n- 1 krążków z C do B

Algorytm rozwiązania problemu Wież Hanoi dla N krążków i trzech kołków A, B, C procedura przenieś(n,x,y,z) //przenieś N z X na Y używając Z { if (N = = 1) wypisz(x," ", Y); else { przenieś(n- 1,X,Z,Y); //przenieś N- 1 z X na Z używając Y wypisz(x," ", Y); przenieś(n- 1,Z,Y,X); //przenieś N- 1 z Z na Y używając X } }

Metody rozwiązywania równań rekurencyjnych podstawienia: zgadujemy oszacowanie, a następnie dowodzimy przez indukcję, że odgadliśmy prawidłowo iteracyjna: przekształcamy rekurencję w sumę a następnie ją ograniczamy rekurencji uniwersalnej: stosujemy twierdzenie do rekurencji uniwersalnej metoda ogólna rozwiązywania liniowych równań rekurencyjnych (funkcje tworzące)

Metoda podstawienia Metoda rozwiązywania równań rekurencyjnych przez podstawianie polega na przyjęciu postaci rozwiązania, a następnie wykazaniu przez indukcję, że jest ono poprawne. Bardzo skuteczna jeśli zna się (zgadnie) rozwiązanie. Stosowana tylko w przypadkach, kiedy łatwo jest przewidzieć postać rozwiązania.metoda może być użyta do określenia albo górnego albo dolnego oszacowania wartości rozwiązania rekurencji.

Metoda iteracyjna polega na rozwijaniu (iterowaniu) rekurencji i wyrażanie jej jako sumy składników zależnych tylko od n warunków brzegowych. Następnie mogą być użyte techniki sumowania do oszacowania rozwiązania. Metoda iteracyjna jest zazwyczaj związana z dużą ilością przekształceń algebraicznych, wiec zachowanie prostoty nie jest łatwe. Punkt kluczowy to skoncentrowanie się na dwóch parametrach: liczbie iteracji koniecznych do osiągnięcia warunku brzegowego oraz sumie składników pojawiających się w każdej iteracji.

Notacje asymptotyczne O, Ω, Θ Nie zawsze można podać postać zwartą (nieuwikłaną) dla ciągu zadanego równaniem rekurencyjnym. Do tej pory nie jest znana zwarta postać wielu równań. Na szczęście często można wyznaczyć przybliżone, asymptotyczne oszacowania ciągów lub ogólniej funkcji. Opisują one zachowanie funkcji wraz ze wzrostem argumentu. Podczas przekształceń rachunkowych celowo ograniczamy naszą wiedzę o funkcji, dzięki czemu łatwiej jest rachować i otrzymać zadowalającą postać przybliżającą. W oszacowaniach asymptotycznych posługujemy się ogólnie przyjętymi symbolami opisującymi asymptotyczne zachowanie jednej funkcji wobec drugiej. Notację asymptotyczną wprowadzimy jedynie dla funkcji zdefiniowanych na zbiorze N (lub jego podzbiorach) o wartościach w R.

O notacja ( wielkie O ) Asymptotyczna granica górna dla szacowania funkcji z góry z dokładnością do stałego współczynnika (wprowadzona przez P. Bachmanna w 1894 r) cg(n) f(n) n0 n O f ( n) = O( g( n)) ( g( n) ) = { f ( n) : c > 0 n n n 0 f ( n) cg( n)} 0 0

Ω notacja Asymptotyczna granica dolna dla szacowania funkcji z dołu z dokładnością do stałego współczynnika ( ) ( ) ( ) { ( ) ( )} n f n cg n n n c n f n g n g n f > = Ω = Ω 0 0 : )) ( ( ) ( 0 0

Θ notacja asymptotycznie dokładne oszacowanie mówimy, że g(n) jest asymptotycznie dokładnym oszacowaniem dla f(n) (oznaczenie f(n)=θ(g(n))) lub inaczej, że począwszy od n0 funkcja f(n) jest równa g(n) z dokładnością do stałego współczynnika gdy: Θ f ( n) = Θ( g( n)) ( g( n) ) = { f ( n) : c, c > 0 n n n 0 c g( n f ( n) c g( n)} 1 2 0 0 1 ) 2 c2g(n) f(n) c1g(n) n0 n

Metoda rekurencji uniwersalnej Metoda rekurencji uniwersalnej podaje uniwersalny przepis rozwiązywania równania rekurencyjnego postaci T(n) = Θ(1) dla n {0,1} a T(n/b) + f(n) dla n > 1 gdzie a 1 i b > 1 są stałymi, a f(n) jest funkcją asymptotycznie dodatnią. Za wartość (n/b) przyjmujemy najbliższą liczbę całkowitą (mniejsza lub większą od wartości dokładnej). Rekurencja opisuje czas działania algorytmu, który dzieli problem rozmiaru n na a problemów, każdy rozmiaru n/b, gdzie a i b są dodatnimi stałymi. Każdy z a problemów jest rozwiązywany rekurencyjnie w czasie T(n/b). Koszt dzielenia problemu oraz łączenia rezultatów częściowych jest opisany funkcją f(n).

Twierdzenie R. 1. Twierdzenie o rekurencji uniwersalnej Niech a 1, b>1 będą stałymi, niech f(n) będzie pewną funkcją i niech T(n) będzie zdefiniowane dla nieujemnych liczb całkowitych przez rekurencję Θ(1) dla n {0,1} T(n) = a T(n/b) + f(n) dla n > 1 gdzie n/b oznacza kres dolny ( n/b ) lub górny ( n/b ) z wyrażenia n/b. Wtedy funkcja T(n) może być ograniczona asymptotycznie w następujący sposób: 1. Jeśli f(n) = O( 2. Jeśli f(n) = ( n log b a ) b a ε n log ) dla ε>0 to T(n) = Θ ( n log b a ) log b a Θ to T(n) = Θ n log n) ( 2 3. Jeśli f(n) = ( log b a Ω n + ε ) dla pewnego ε>0 i jeśli af(n/b) cf(n) dla pewnego c<1 i dostatecznie dużych n to T(n) = Θ ( f ( n)) Dowód twierdzenia w: T. Cormen, Ch. Leiserson, R. Rivest: Wprowadzenie do algorytmów. WNT 2007.

Uwagi do twierdzenia o rekurencji uniwersalnej Istnieją trzy możliwości, mówiące o tym, że: 1. n log b a jest wielomianowo większa od f(n) 2. log b a n jest tego samego rozmiaru co f(n) 3. log b a n jest wielomianowo mniejsza od f(n) W trzecim przypadku warunek af(n/b) cf(n) znany jest jako warunek regularności.

Uwagi do twierdzenia o rekurencji uniwersalnej Trzy omawiane przypadki nie obejmują wszystkich możliwych przypadków funkcji f(n). Jest pewna luka pomiędzy przypadkami 1 i 2, gdy f(n) jest mniejsza ale nie wielomianowo, oraz pomiędzy przypadkami 2 i 3, gdy f(n) jest większa ale nie wielomianowo. Jeżeli funkcja f(n) wpada w jedną z tych luk albo gdy nie zachodzi warunek regularności w przypadku 3, to metoda rekurencji uniwersalnej nie może być zastosowana to rozwiązania równania rekurencyjnego. Twierdzenie o rekurencji uniwersalnej można dowieść korzystając z metody iteracyjnej.

Liczby Fibonacciego (Leonardo Fibonacci (1175 1250)) Ciąg Fibonacciego ciąg liczb naturalnych określony rekurencyjnie w sposób następujący: Pierwszy wyraz jest równy 0, drugi jest równy 1, każdy następny jest sumą dwóch poprzednich. Formalnie: F! = 0 dla n = 0 1 dla n = 1 F!!! + F!!! dla n > 1 Kolejne wyrazy ciągu Fibonacciego to: F 0 F 1 F 2 F 3 F 4 F 5 F 6 F 7 F 8 F 9 F 10 F 11 F 12 F 13 0 1 1 2 3 5 8 13 21 34 55 89 144 233 Ciąg został podany w 1202 roku przez Leonarda z Pizy, zwanego Fibonaccim w swoim dziele Liber abaci jako rozwiązanie zadania o rozmnażaniu się królików. Nazwę "ciąg Fibonacciego" spopularyzował w XIX w. Édouard Lucas.

Własność ilorazu Iloraz dowolnego elementu ciągu Fibonacciego i jego poprzednika jest ze wzrostem wskaźnika coraz lepszym przybliżeniem boskiej liczby φ. Przy 14 elemencie przybliżenie daje już dokładność 14 miejsc dziesiętnych. Twierdzenie R. 2. Keplera (Jan Kepler (1571 1630)) φ = lim n! F n!! F n

Złota liczba φ Liczba φ, określająca tzw. złotą proporcję (złoty podział, złota liczba, boski podział). Dwie wielkości a i b są w złotym stosunku φ jeżeli:. Odkryta została w starożytnej Grecji, a udokumentowana przez Euklidesa (300 pne). φ =!!!! = 1,6180339887

Własności φ Potęgowanie φ φ! = φ + 1 φ! = φ + 1 φ = φ! + φ = φ + φ + 1 = 2φ + 1 φ! = 3φ + 2 φ! = F!!! φ + F!!! Odwrotność liczby φ 1 φ = φ 1 Suma początkowych liczb Fibonacciego (dowód indukcyjny)! F!!!! = F!!! 1 Stąd np. F!" + + F!" = F!! F!"

Trójki pitagorejskie Trójką pitagorejską nazywamy trzy liczby naturalne spełniające równanie Pitagorasa: a! = b! + c!. Pierwszą taką trójką jest: 3, 4, 5. Większe trójki można konstruować wykorzystując dowolne cztery kolejne wyrazy ciągu Fibonacciego. Trójkę utworzą: (1) iloczyn dwóch skrajnych wyrazów, (2) podwojony iloczyn dwóch środkowych wyrazów i (3) suma kwadratów dwóch środkowych wyrazów. Np. 2, 3, 5, 8; 2 8 = 16, 2 3 5 = 30, 3 3 + 5 5 = 34; 16! + 30! = 34!

Wielkie twierdzenie Fermata Twierdzenie R. 3. Twierdzenie Fermata Nie istnieje trójka dodatnich liczb całkowitych będąca rozwiązaniem równania: a! = b! + c! dla n N, n > 2. Pierre Fermat (1601 1655) zanotował je na marginesie łacińskiego tłumaczenia książki Arithmetica Diofantosa i opatrzył następującą uwagą: znalazłem zaiste zadziwiający dowód tego twierdzenia. Niestety, margines jest zbyt mały, by go pomieścić. Twierdzenie zostało sformułowane przez Fermata w roku 1637. Opublikowano je dopiero w roku 1670, po odnalezieniu go w pozostałych po śmierci pismach Fermata, i z miejsca stało się wyzwaniem dla kolejnych pokoleń matematyków. Wiadomo bowiem było, że wiele hipotez formułowanych przez Fermata okazało się prawdziwymi, a ich dowody zostały znalezione przez innych. To jedno przez ponad 300 lat opierało się próbom dowodu w ogólności, znane były dowody szczególnych przypadków. Dlatego też nazwane zostało ostatnim twierdzeniem Fermata. Dowód ostatecznie został przeprowadzony przez angielskiego matematyka Andrew Johna Wilesa w roku 1994. Zajmował ok. 100 stron A4 i wyrażony był w języku topologii i krzywych eliptycznych. (za: http://pl.wikipedia.org/wiki/wielkie_twierdzenie_fermata)

Wzór Bineta (Eulera Bineta) Jawny wzór na n- ty wyraz ciągu Fibonacciego podany w roku 1843 przez J.P.M. Bineta możemy otrzymać, korzystając z metody funkcji tworzących. Zdefiniujmy ciąg i dla tego ciągu obliczmy wzór na jego n- ty wyraz. Funkcja tworząca dla tego ciągu ma postać Podstawiając otrzymujemy: tak więc:

Uprościmy wyrażenie gdzie wówczas tak więc Podstawiając otrzymujemy ostatecznie tzw. formułę Bineta

Twierdzenie R. 4. Twierdzenie Eulera- Bineta (1843) Ogólna postać wzoru na wyraz ciągu Fibonacciego: