Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Wielkość: px
Rozpocząć pokaz od strony:

Download "Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku"

Transkrypt

1 Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku

2

3 Rozdział 1 Rekurencja 11 Wieże Hanoi Rekurencja jest to zdolność podprogramu (procedury lub funkcji) do wywoływania samego siebie Zacznijmy od przykładu wież Hanoi Przypuśćmy, że mamy trzy wieże lub trzy paliki:, i Na pierwszym paliku,, znajduj a siȩ trzy kr ażki różnej wielkości, nanizane w porz adku od najwiȩkszego na dole do najmniejszego na górze Paliki i s a na pocz atku puste Należy przenieść wszystkie kr ażki z palika w razie potrzeby palikiem, według nastȩpuj acych reguł: można przenosić po jednym kr ażku z jednego palika na inny, nie można umieszczać wiȩkszego kr ażka na mniejszym na, posługuj ac siȩ Rozwi azaniem tej łamigłówki dla trzech kr ażków jest nastȩpuj acy ci ag siedmiu przełożeń: oznacza przeniesienie szczytowego kr ażka z palika na palik gdzie zapis Chodzi nam teraz o algorytm, który dla dowolnej liczby operacji potrzebnych do przełożenia kr ażków z palika na palik Algorytm przekładania kr ażków jeżeli, to przekładamy ten jeden kr ażek jeżeli, to: przekładamy kr ażków z razie potrzeby palikiem ), przekładamy -ty kr ażek z na, przekładamy kr ażków z na (za pomoc a palika ) 3, kr ażków wypisze ci ag na pomocniczy palik (posługuj ac siȩ w

4 4 Rozdział 1 Rekurencja Nietrudno zauważyć, że jeżeli proces przekładania kr ażków jest prawidłowy, to cały proces też jest prawidłowy, ponieważ obecność najwiȩkszego kr ażka na dole palika nie przeszkadza w przekładaniu mniejszych kr ażków Powyższy algorytm opiszmy teraz za pomoc a rekurencyjnej procedury przenieś, która odwołuje siȩ sama do siebie i wypisuje ci ag instrukcji przeniesienia kr ażków z palika na palik procedura przenieś( kr ażków z na, za pomoc a ): jeżeli, to wypisz, jeżeli, to przenieś( kr ażków z na, za pomoc a ), wypisz, przenieś( kr ażków z na, za pomoc a ) Rysunek 11: Schemat działania procedury przenieś dla wież Hanoi z trzema kr ażkami Na rysunku 81 zilustrowano działanie procedury przenieś dla Skrót oznacza wywołanie procedury przenieś( kr ażków z na, za pomoc a ) Strzałki w dół oznaczaj a wywołanie procedury, strzałki w górȩ powroty po wykonaniu procedury, a strzałki poziome odpowiadaj a nastȩpstwu instrukcji w ramach jednego wykonania procedury

5 12 Algorytm Euklidesa, wersja rekurencyjna 5 12 Algorytm Euklidesa, wersja rekurencyjna Innym przykładem algorytmu rekurencyjnego może być rekurencyjna wersja algorytmu Euklidesa, który oblicza najwiȩkszy wspólny dzielnik dwóch dodatnich liczb naturalnych i : fun kcja NWD(a,b): jeżeli, to jeżeli, to jeżeli, to,, W jȩzyku Pascal powyższ a procedurȩ możemy zapisać w nastȩpuj acy sposób: function NWD(a,b:integer):integer; begin end; if a=b then NWD:=a else if then NWD:=NWD(a-b,b) else NWD:=NWD(a,b-a) Rysunek 12: Schemat działania rekurencyjnej wersji algorytmu Euklidesa NWD(5,3):=1 NWD(2,3):=1 NWD(2,1):=1 NWD(1,1):=1 Na rysunku 82 przedstawiono proces obliczania funkcji NWD(7,3) 13 Funkcje rekurencyjne Czasami wygodnie jest zdefiniować funkcje za pomoc a wzoru rekurencyjnego Na przykład funkcjȩ silnia definiuje siȩ zwykle za pomoc a nastȩpuj acych dwóch równań: "

6 6 Rozdział 1 Rekurencja Podobnie można definiować inne funkcje ze zbioru liczb naturalnych w zbiór liczb naturalnych Definicja taka zawiera przepis, jak policzyć wartość funkcji dla wartości pocz atkowych, oraz drugi przepis, jak wyliczyć wartość dla argumentu za pomoc a wartości funkcji dla mniejszych argumentów 14 Funkcja (ci ag) Fibonacciego Nastȩpnym przykładem rekurencyjnego definiowania funkcji jest funkcja Fibonacciego, określona równaniami: Kolejne wartości funkcji Fibonacciego to: Udowodnimy teraz przez indukcjȩ, że (11) gdzie " oraz " Równość (11) zachodzi dla i Załóżmy teraz, że zachodzi dla wszystkich argumentów mniejszych od Zauważmy, że oraz s a rozwi azaniami równania, mamy wiȩc oraz a także oraz Łatwo teraz można pokazać, że Ponieważ, mamy, wiȩc wartość jest równa po zaokr agleniu do najbliższej liczby naturalnej i funkcja Fibonacciego rośnie wykładniczo 15 Funkcja Ackermanna, nastȩpuj acymi rów- Funkcja Ackermanna określona jest, dla liczb naturalnych #" naniami: &% $" #" $" $" " Funkcja Ackermanna jest przykładem funkcji maj acej dość prost a definicjȩ, ale jest praktycznie nieobliczalna z tego powodu, że jej wartości szybko rosn a Na przykład: ( ) +*, "

7 16 Algorytm sortowania przez scalanie 7 ) ) ) ) ) i ogólnie ) 16 Algorytm sortowania przez scalanie Zajmijmy siȩ teraz pewnym prostym rekurencyjnym algorytem sortowania ci agu Dla prostoty załóżmy, że długość ci agu jest potȩg a dwójki Algorytm sortowania jeżeli ci ag ma długość jeden, to jest już posortowany, jeżeli ci ag jest dłuższy, to: dzielimy go na połowy, sortujemy te połowy, ł aczymy posortowane połowy w jeden posortowany ci ag Istota pomysłu polega na tym, że można szybko poł aczyć dwa posortowane ci agi w jeden posortowany ci ag Algorytm ł aczenia wyjaśnijmy na przykładzie Przypuśćmy, że mamy dwa ci agi: jest pusty Ustawiamy dwa wskaźniki po jednym na pocz atku każdego ci agu (wskazane elementy bȩd a oznaczone daszkiem): i że chcemy je poł aczyć w posortowany ci ag Na pocz atku ci ag Porównujemy wskazane elementy Mniejszy z porównanych elementów przepisujemy na ci ag i przesuwamy wskaźnik w tym ci agu, z którego był wziȩty element do ci agu W wyniku otrzymamy: Powtarzamy ten proces tak długo, aż w jednym z ci agów ostatni element zostanie zabrany do ci agu

8 8 Rozdział 1 Rekurencja W takiej sytuacje pozostałe elementy tego drugiego ci agu przenosimy do ci agu : Liczba porównań potrzebna do scalenia ci agów nie jest wiȩksza od sumy długości tych ci agów Algorytm merge-sort (inaczej sortowanie przez scalanie), który sortuje ci ag, można rekurencyjnie opisać tak (rysunek 83): merge-sort(s): jeżeli ma tylko jeden element, to koniec, jeżeli ma wiȩcej elementów, to: dzielimy ci ag na połowy i merge-sort( ),, merge-sort( ł aczymy i ), Rysunek 13: Schemat działania algorytmu merge-sort dla ci agu 3, 7, 5, 2, 6, 1, 8, Algorytm merge-sort jest przykładem algorytmu typu dziel i zwyciȩżaj, którego ogólny schemat wygl ada tak: jeżeli problem jest małego rozmiaru, to rozwi azujemy go bezpośrednio,

9 17 Rozwi azywanie równań i nierówności rekurencyjnych 9 jeżeli problem jest duży, to: dzielimy problem na podproblemy, rozwi azujemy podproblemy, ł aczymy rozwi azania podproblemów w rozwi azanie całego problemu 17 Rozwi azywanie równań i nierówności rekurencyjnych Oszacujmy teraz czas działania algorytmu sortowania przez scalanie Niech oznacza liczbȩ operacji porównania potrzebn a do posortowania ci agu długości Mamy nastȩpuj ace oszacowania: (12) (13) Druga zależność wynika st ad, że aby posortować ci ag długości, sortujemy dwa ci agi długości, a nastȩpnie potrzebujemy porównań, aby scalić te dwie połówki Dla prostoty rozważań zakładamy tutaj, że jest potȩg a dwójki, dka jakiegoś naturalnego Istnieje wiele sposobów wyliczania lub szacowania funkcji określonej rekurencyjnie Przedstawimy teraz dwa najprostsze z nich: metodȩ podstawiania i metodȩ iteracji 18 Metoda podstawiania W metodzie podstawiania odgadujemy rozwi azanie albo jego oszacowanie, a nstȩpnie pokazujemy, że jest ono poprawne Pokażemy działanie tej metody szacuj ac złożoność czasow a merge-sortu określon a rekurencj a (12)-(13) Zgadujemy, że dla jakiejś stałej i udowodnimy przez indukcjȩ, że powyższa nierówność zachodzi dla każdego potȩgi dwójki Zachodzi ona dla Zakładamy teraz, że i podstawiamy do nierówności (13) Ostatnia nierówność jest spełniona, jeżeli Metoda podstawiania została zastosowana w podrozdziale o funkcji Fibonacciego do pokazania, że (14)

10 10 Rozdział 1 Rekurencja ale tam odgadniȩto dokładne rozwi azanie Teraz pokażemy jak dojść do rozwi aznia zaczynaj ac od ogólniejszej postaci Zacznijmy od równania (15) Sprawdźmy, jakie funkcje postaci, spełniaj a to równanie Po podstawieniu do równania (15) mamy Po podzieleniu stromnami przez, otrzymamy " Jest to równanie kwadratowe z dwoma rozwi azaniami, czyli dwie funkcje oraz Zauważmy, że także każda funkcja postaci gdzie i oraz spełniaj a równanie (15) to stałe, spełnia równanie (15) Sprawdźmy teraz, dla jakich stałych i funkcja spełnia zależności Powyższy układ jest spełniony dla i Otrzymujemu układ równości Tak wiȩc otrzymujemy wzór na funkcjȩ Fibonacciego (16) 19 Metoda iteracyjna Moteda iteracyjna polega na rozwijaniu rekursji Jako pierwszy przykład rozważmy zależność Dla uproszczenia zakładamy, że jest potȩg a rozwijamy w nastȩpuj acy sposób:, dla jakiegoś naturalnego Funkcjȩ

11 ) ) 110 Metoda rekurencji uniwersalnej 11,,,, Iteracjȩ powtarzamy, aż ostatni składnik bȩdzie zawierał Otrzymamy wtedy, Skorzystaliśmy tu z równości Jako drugi przykład rozważmy rekursjȩ oraz z faktu, że * Jak bȩdziemy j a rozwijać, to otrzymamy Dla Otrzymamy wtedy 110 Metoda rekurencji uniwersalnej, czyli gdy * i (17) Przypuśćmy, że mamy równanie rekurencyjne (18)

12 12 Rozdział 1 Rekurencja gdzie i Równanie takie otrzymamy szacuj ac czas działania algorytmu rekurencyjnego, który metod a "dziel i rz adź" dzieli problem na podproblemów rozmiaru Funkcja opisuje czas potrzebny na podzielenie problemu na podproblemy i na poł aczenie rozwi azań podproblemów w rozwi azanie całego problemu Na koniec podamy bez dowodu twierdzenie mówi ace jak można szacować funkcjȩ określon a równaniem (18) Twierdzenie 11 (o rekurencji uniwersalnej) Niech bȩdzie określone dla nieujemnych liczb całkowitych równaniem rekurencyjnym " gdzie, i " oznacza " lub Wtedy Jeżeli dla pewnej stałej, to Jeżeli, to Jeżeli dla pewnej stałej oraz pewnej stałej, to 111 Zadania 1 Napisz program, który rekurencyjnie oblicza: a) funkcjȩ silnia, b) funkcjȩ Fibonacciego, c) funkcjȩ wykładnicz a dla 2 Napisz program, który oblicza symbol Newtona: a) według wzoru rekurencyjnego b) według wzoru Porównaj te programy 3 Napisz program, który rekurencyjnie oblicza funkcjȩ: 4 Oblicz według rekurencyjnego algorytmu Euklidesa 5 Według algorytmu ł aczenia poł acz ci agi i

13 111 Zadania 13 6 Stosuj ac algorytm merge-sort posortuj ci ag słów: słowik, wróbel, kos, jaskółka, kogut, dziȩcioł, gil, kukułka, szczygieł, sowa, kruk, czubatka [Fragment wiersza Ptasie radio Juliana Tuwima] 7 Dana jest funkcja Oblicz : Co oblicza funkcja? 8 Dana jest funkcja Oblicz : Co oblicza funkcja? 9 Wypisz ci ag przełożeń potrzebnych do przeniesienia czterech kr ażków na wieżach Hanoi 10 Udowodnij, że algorytm opisany w podrozdziale 81 wymaga przełożeń do przeniesienia kr ażków "

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

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

Bardziej szczegółowo

Teoretyczne podstawy informatyki

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

Bardziej szczegółowo

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: 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

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

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

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;

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

Bardziej szczegółowo

Strategia "dziel i zwyciężaj"

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

Bardziej szczegółowo

Wstęp do programowania

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ł

Bardziej szczegółowo

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 13 Rekurencja 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Rekurencja - pojęcie 2 Rekurencja - pojęcie Rekurencja (rekursja) wywołanie

Bardziej szczegółowo

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

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)

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

Rekurencja (rekursja)

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)

Bardziej szczegółowo

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział Oznaczenia W tym rozdziale przedstawimy podstawowe oznacznia oznacza kwantyfikator ogólny "dla każdego" oznacza kwantyfikator szczegółowy

Bardziej szczegółowo

Rekurencja. Przygotowała: Agnieszka Reiter

Rekurencja. Przygotowała: Agnieszka Reiter Rekurencja Przygotowała: Agnieszka Reiter Definicja Charakterystyczną cechą funkcji (procedury) rekurencyjnej jest to, że wywołuje ona samą siebie. Drugą cechą rekursji jest jej dziedzina, którą mogą być

Bardziej szczegółowo

Wykład 3. Metoda dziel i zwyciężaj

Wykład 3. Metoda dziel i zwyciężaj Wykład 3 Metoda dziel i zwyciężaj 1 Wprowadzenie Technika konstrukcji algorytmów dziel i zwyciężaj. przykładowe problemy: Wypełnianie planszy Poszukiwanie (binarne) Sortowanie (sortowanie przez łączenie

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

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ę

Bardziej szczegółowo

Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,

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,

Bardziej szczegółowo

0.1 Sposȯb rozk ladu liczb na czynniki pierwsze

0.1 Sposȯb rozk ladu liczb na czynniki pierwsze 1 Temat 5: Liczby pierwsze Zacznijmy od definicji liczb pierwszych Definition 0.1 Liczbȩ naturaln a p > 1 nazywamy liczb a pierwsz a, jeżeli ma dok ladnie dwa dzielniki, to jest liczbȩ 1 i sam a siebie

Bardziej szczegółowo

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku ( Rozdział 1 Grafy skierowane W tym rozdziale zajmiemy siȩ algorytmami wyszukiwania najkrótszej drogi w grafach skierowanych Każdej krawȩdzi

Bardziej szczegółowo

Algorytmy w teorii liczb

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,

Bardziej szczegółowo

Liczba 2, to jest jedyna najmniejsza liczba parzysta i pierwsza. Oś liczbowa. Liczba 1, to nie jest liczba pierwsza

Liczba 2, to jest jedyna najmniejsza liczba parzysta i pierwsza. Oś liczbowa. Liczba 1, to nie jest liczba pierwsza 1 SZKO LA PODSTAWOWA HELIANTUS 02-892 WARSZAWA ul. BAŻANCIA 16 3 Liczba 2, to jest jedyna najmniejsza liczba parzysta i pierwsza 2 1 0 1 2 3 x Oś liczbowa. Liczba 1, to nie jest liczba pierwsza MATEMATYKA

Bardziej szczegółowo

Wstęp do programowania. Dziel i rządź. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Dziel i rządź. Piotr Chrząstowski-Wachtel Wstęp do programowania Dziel i rządź Piotr Chrząstowski-Wachtel Divide et impera Starożytni Rzymianie znali tę zasadę Łatwiej się rządzi, jeśli poddani są podzieleni Nie chodziło im jednak bynajmniej o

Bardziej szczegółowo

Metoda Simplex bez użycia tabel simplex 29 kwietnia 2010

Metoda Simplex bez użycia tabel simplex 29 kwietnia 2010 R. Rȩbowski 1 WPROWADZENIE Metoda Simplex bez użycia tabel simplex 29 kwietnia 2010 1 Wprowadzenie Powszechnie uważa siȩ, że metoda simplex, jako uniwersalny algorytm pozwalaj acyznaleźć rozwi azanie optymalne

Bardziej szczegółowo

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Poprawność programów Jeżeli projektujemy algorytmy lub piszemy programy, to ważne jest pytanie, czy nasz algorytm lub program

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Sortowanie przez scalanie

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

Bardziej szczegółowo

Algorytmy. wer Wojciech Myszka 30 listopada 2008

Algorytmy. wer Wojciech Myszka 30 listopada 2008 Algorytmy Część IV wer. 1.2 Wojciech Myszka 30 listopada 2008 Spis treści I Spis treści Jak się tworzy algorytmy? Poszukiwania i wędrówki Dziel i zwyciężaj Rekurencja Definicje Przykład Schemat blokowy

Bardziej szczegółowo

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

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

Bardziej szczegółowo

Metody Numeryczne Wykład 4 Wykład 5. Interpolacja wielomianowa

Metody Numeryczne Wykład 4 Wykład 5. Interpolacja wielomianowa Sformułowanie zadania interpolacji Metody Numeryczne Wykład 4 Wykład 5 Interpolacja wielomianowa Niech D R i niech F bȩdzie pewnym zbiorem funkcji f : D R. Niech x 0, x 1,..., x n bȩdzie ustalonym zbiorem

Bardziej szczegółowo

Matematyka dyskretna dla informatyków

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Algorytmy i Struktury Danych.

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

Bardziej szczegółowo

Pierwsze kolokwium z Matematyki I 4. listopada 2013 r. J. de Lucas

Pierwsze kolokwium z Matematyki I 4. listopada 2013 r. J. de Lucas Pierwsze kolokwium z Matematyki I 4. listopada 03 r. J. de Lucas Uwagi organizacyjne: Każde zadanie rozwi azujemy na osobnej kartce, opatrzonej imieniem i nazwiskiem w lasnym oraz osoby prowadz acej ćwiczenia,

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Sortowanie danych. Jolanta Bachan. Podstawy programowania Sortowanie danych Podstawy programowania 2013-06-06 Sortowanie przez wybieranie 9 9 9 9 9 9 10 7 7 7 7 7 10 9 1 3 3 4 10 7 7 10 10 10 10 4 4 4 4 4 4 3 3 3 3 2 2 2 2 2 2 2 3 1 1 1 1 1 1 Gurbiel et al. 2000

Bardziej szczegółowo

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Kombinatoryka 11 Ci agi Zastanówmy siȩ, ile ci agów długości można utworzyć z elementów zbioru zawieraj acego symboli Jeżeli zbiór

Bardziej szczegółowo

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Struktury danych 1.1 Listy, stosy i kolejki Lista to uporz adkowany ci ag elementów. Przykładami list s a wektory lub tablice

Bardziej szczegółowo

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu: ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu: Rys1 Ćwiczenie 2 Podaj jaki ciąg znaków zostanie wypisany po wykonaniu

Bardziej szczegółowo

Matematyka dyskretna Oznaczenia

Matematyka dyskretna Oznaczenia Matematyka dyskretna Oznaczenia Andrzej Szepietowski W tym rozdziale przedstawimy podstawowe oznacznia. oznacza kwantyfikator ogólny dla każdego. oznacza kwantyfikator szczegó lowy istnieje. 1 Sumy i iloczyny

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Technologie informacyjne Wykład VII-IX

Technologie informacyjne Wykład VII-IX Technologie informacyjne -IX A. Matuszak 19 marca 2013 A. Matuszak Technologie informacyjne -IX Rekurencja A. Matuszak (2) Technologie informacyjne -IX Gotowanie jajek na miękko weż czysty garnek włóż

Bardziej szczegółowo

Algorytmy i Struktury Danych

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

Bardziej szczegółowo

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle. Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle. Sub Hasla1() Dim wzor_hasla As String Dim haslo As String Dim adres

Bardziej szczegółowo

5. Rekurencja. Przykłady

5. Rekurencja. Przykłady 5. Rekurencja Uwaga! W tym rozdziale nie są omówione żadne nowe konstrukcje języka C++. Omówiona jest za to technika wykorzystująca funkcje, która pozwala na rozwiązanie pewnych nowych rodzajów zadań.

Bardziej szczegółowo

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji. Maria Górska 9 stycznia 2010 1 Spis treści 1 Pojęcie algorytmu 3 2 Sposób

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce

Bardziej szczegółowo

Raport z projektu. Przedmiot: Algorytmy i struktury danych 1 Projekt: Wieża Hanoi Autor: Wojciech Topolski

Raport z projektu. Przedmiot: Algorytmy i struktury danych 1 Projekt: Wieża Hanoi Autor: Wojciech Topolski Raport z projektu Przedmiot: Algorytmy i struktury danych 1 Projekt: Wieża Hanoi Autor: Wojciech Topolski Problem wieży Hanoi W wielkiej świątyni Benares w Hanoi, pod kopułą, która zaznacza środek świata,

Bardziej szczegółowo

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 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

Bardziej szczegółowo

Metody algortmiczne (Algorytmy Część IV)

Metody algortmiczne (Algorytmy Część IV) Metody algortmiczne (Algorytmy Część IV) wer. 9 z drobnymi modyfikacjami! Wojciech Myszka 2018-10-02 17:27:45 +0200 Jak się tworzy algorytmy? Moja odpowiedź jest krótka: Jak się tworzy algorytmy? Moja

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

Analiza algorytmów zadania podstawowe Analiza algorytmów zadania podstawowe 15 stycznia 2019 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 P Jaka wartość zostanie zwrócona

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

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)

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

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

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

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.

Bardziej szczegółowo

Algorytmy i Struktury Danych, 2. ćwiczenia

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

Bardziej szczegółowo

O rekurencji i nie tylko

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

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

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

Bardziej szczegółowo

Pierwiastki arytmetyczne n a

Pierwiastki arytmetyczne n a Chapter 1 Pierwiastki arytmetyczne n a Operacja wyci aganie pierwiastka stopnia n z liczby a jest odwrotn a operacj a do potȩgowania, jeżeli operacja odwrotna jest wykonalna w liczbach rzeczywistych. Zacznijmy

Bardziej szczegółowo

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 )

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,

Bardziej szczegółowo

Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].

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

Bardziej szczegółowo

Wstęp do Informatyki

Wstęp do Informatyki Wstęp do Informatyki dr hab. Bożena Woźna-Szcześniak, prof. AJD bwozna@gmail.com Jan Długosz University, Poland Wykład 8 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 8 1 / 32 Instrukcje iteracyjne

Bardziej szczegółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 9 Rekurencja

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:

Bardziej szczegółowo

Niech X bȩdzie dowolnym zbiorem. Dobry porz adek to relacja P X X (bȩdziemy pisać x y zamiast x, y P ) o w lasnościach:

Niech X bȩdzie dowolnym zbiorem. Dobry porz adek to relacja P X X (bȩdziemy pisać x y zamiast x, y P ) o w lasnościach: Teoria miary WPPT IIr semestr zimowy 2009 Wyk lad 4 Liczby kardynalne, indukcja pozaskończona DOBRY PORZA DEK 14/10/09 Niech X bȩdzie dowolnym zbiorem Dobry porz adek to relacja P X X (bȩdziemy pisać x

Bardziej szczegółowo

Sterowalność liniowych uk ladów sterowania

Sterowalność liniowych uk ladów sterowania Sterowalność liniowych uk ladów sterowania W zadaniach sterowania docelowego należy przeprowadzić obiekt opisywany za pomoc a równania stanu z zadanego stanu pocz atkowego ẋ(t) = f(x(t), u(t), t), t [t,

Bardziej szczegółowo

Wykład z równań różnicowych

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.

Bardziej szczegółowo

Podstawy Informatyki. Sprawność algorytmów

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

Bardziej szczegółowo

1.1. Uzupełnij poniższą tabelę: i wynik(i)

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

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

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ą

Bardziej szczegółowo

Rekurencja. Matematyka dyskretna

Rekurencja. Matematyka dyskretna 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

Bardziej szczegółowo

Przykładowe zadania z teorii liczb

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ę

Bardziej szczegółowo

Podstawy Programowania semestr drugi. Wykład dziewiąty

Podstawy Programowania semestr drugi. Wykład dziewiąty Wykład dziewiąty 1. Rekurencja i technika dziel i zwyciężaj Rekurencja jest silnie związana z jedną z najefektywniejszych technik projektowania algorytmów, którą określamy nazwą dziel i zwyciężaj (ang.

Bardziej szczegółowo

MATEMATYKA W SZKOLE HELIANTUS LICZBY NATURALNE I CA LKOWITE

MATEMATYKA W SZKOLE HELIANTUS LICZBY NATURALNE I CA LKOWITE 1 SZKO LA PODSTAWOWA HELIANTUS 0-89 WARSZAWA ul. BAŻANCIA 16 3 1 0 1 3 Oś liczbowa. Liczby ca lkowite x MATEMATYKA W SZKOLE HELIANTUS LICZBY NATURALNE I CA LKOWITE Prof. dr. Tadeusz STYŠ WARSZAWA 018 1

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

Bardziej szczegółowo

5. Podstawowe algorytmy i ich cechy.

5. Podstawowe algorytmy i ich cechy. 23 5. Podstawowe algorytmy i ich cechy. 5.1. Wyszukiwanie liniowe i binarne 5.1.1. Wyszukiwanie liniowe Wyszukiwanie jest jedną z najczęściej wykonywanych operacji na strukturach danych i dotyczy wszystkich,

Bardziej szczegółowo

Programowanie w VB Proste algorytmy sortowania

Programowanie w VB Proste algorytmy sortowania Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich

Bardziej szczegółowo

Liczby naturalne i ca lkowite

Liczby naturalne i ca lkowite Chapter 1 Liczby naturalne i ca lkowite Koncepcja liczb naturalnych i proste operacje arytmetyczne by ly znane już od oko lo 50000 tysiȩcy lat temu. To wiemy na podstawie archeologicznych i historycznych

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

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

Bardziej szczegółowo

Laboratorium nr 1. i 2.

Laboratorium nr 1. i 2. Laboratorium nr 1. i 2. Celem laboratorium jest zapoznanie się ze zintegrowanym środowiskiem programistycznym, na przykładzie podstawowych aplikacji z obsługą standardowego wejścia wyjścia, podstawowych

Bardziej szczegółowo

REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał

REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał REKURENCJA W JĘZYKU HASKELL Autor: Walczak Michał CZYM JEST REKURENCJA? Rekurencja zwana rekursją, polega na wywołaniu przez funkcję samej siebie. Algorytmy rekurencyjne zastępują w pewnym sensie iteracje.

Bardziej szczegółowo

Wykład 4: Iteracja, indukcja i rekurencja

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

Bardziej szczegółowo

Programowanie Równoległe i Rozproszone. Algorytm Kung a. Algorytm Kung a. Programowanie Równoległe i Rozproszone Wykład 8. Przygotował: Lucjan Stapp

Programowanie Równoległe i Rozproszone. Algorytm Kung a. Algorytm Kung a. Programowanie Równoległe i Rozproszone Wykład 8. Przygotował: Lucjan Stapp Programowanie Równoległe i Rozproszone Lucjan Stapp Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska (l.stapp@mini.pw.edu.pl) 1/34 PRiR Algorytm Kunga Dany jest odcinek [a,b] i ciągła funkcja

Bardziej szczegółowo

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Teoria liczb 11 Dzielenie całkowitoliczbowe Zacznijmy od przypomnienia szkolnego algorytmu dzielenia liczb naturalnych Podzielmy

Bardziej szczegółowo

MATEMATYKA DZIELENIE LICZB Z RESZTA CECHY PODZIELNOṠCI

MATEMATYKA DZIELENIE LICZB Z RESZTA CECHY PODZIELNOṠCI 1 SZKO LA PODSTAWOWA HELIANTUS 02-892 WARSZAWA ul. BAŻANCIA 16 Opercja modulo a b( mod c) MATEMATYKA DZIELENIE LICZB Z RESZTA CECHY PODZIELNOṠCI Prof. dr. Tadeusz STYŠ WARSZAWA 2018 1 1 Projekt pi aty

Bardziej szczegółowo

Równoleg le sortowanie przez scalanie

Równoleg le sortowanie przez scalanie Równoleg le sortowanie przez scalanie Bartosz Zieliński 1 Zadanie Napisanie programu sortuj acego przez scalanie tablicȩ wygenerowanych losowo liczb typu double w którym każda z procedur scalania odbywa

Bardziej szczegółowo

Zadania do samodzielnego rozwiązania

Zadania do samodzielnego rozwiązania Zadania do samodzielnego rozwiązania I. Podzielność liczb całkowitych 1. Pewna liczba sześciocyfrowa a kończy się cyfrą 5. Jeśli tę cyfrę przestawimy na miejsce pierwsze ze strony lewej, to otrzymamy nową

Bardziej szczegółowo

Efektywna metoda sortowania sortowanie przez scalanie

Efektywna metoda sortowania sortowanie przez scalanie Efektywna metoda sortowania sortowanie przez scalanie Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Metoda dziel i zwycięŝaj Dzielimy

Bardziej szczegółowo

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

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.

Bardziej szczegółowo

CIĄGI wiadomości podstawowe

CIĄGI wiadomości podstawowe 1 CIĄGI wiadomości podstawowe Jak głosi definicja ciąg liczbowy to funkcja, której dziedziną są liczby naturalne dodatnie (w zadaniach oznacza się to najczęściej n 1) a wartościami tej funkcji są wszystkie

Bardziej szczegółowo

12. Rekurencja. UWAGA Trzeba bardzo dokładnie ustalić <warunek>, żeby mieć pewność, że ciąg wywołań się zakończy.

12. Rekurencja. UWAGA Trzeba bardzo dokładnie ustalić <warunek>, żeby mieć pewność, że ciąg wywołań się zakończy. 12. Rekurencja. Funkcja rekurencyjna funkcja, która wywołuje samą siebie. Naturalne postępowanie: np. zbierając rozsypane pionki do gry podnosi się zwykle pierwszy, a potem zbiera się resztę w ten sam

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 2 2 Problemy algorytmiczne Klasy problemów algorytmicznych Liczby Fibonacciego Przeszukiwanie tablic Największy

Bardziej szczegółowo

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność

Bardziej szczegółowo

2. Liczby pierwsze i złożone, jednoznaczność rozkładu na czynniki pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność.

2. Liczby pierwsze i złożone, jednoznaczność rozkładu na czynniki pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność. 2. Liczby pierwsze i złożone, jednoznaczność rozkładu na czynniki pierwsze, największy wspólny dzielnik, najmniejsza wspólna wielokrotność. 11 października 2008 r. 19. Wskazać takie liczby naturalne m,

Bardziej szczegółowo

Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa

Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Wieczorowe Studia Licencjackie Wrocław, 7.11.2006 Wstęp do programowania Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Zaprezentujemy teraz algorytm na wyznaczanie wszystkich

Bardziej szczegółowo

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

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

Bardziej szczegółowo

Obóz Naukowy Olimpiady Matematycznej Gimnazjalistów

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

Bardziej szczegółowo

Podstawy programowania. Podstawy C# Przykłady algorytmów

Podstawy programowania. Podstawy C# Przykłady algorytmów Podstawy programowania Podstawy C# Przykłady algorytmów Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania

Bardziej szczegółowo

Rekurencja/rekursja. Iluzja istnienia wielu kopii tego samego algorytmu (aktywacji) Tylko jedna aktywacja jest aktywna w danej chwili

Rekurencja/rekursja. Iluzja istnienia wielu kopii tego samego algorytmu (aktywacji) Tylko jedna aktywacja jest aktywna w danej chwili rekurencja 1 Rekurencja/rekursja Alternatywny dla pętli sposób powtarzania pewnych czynności; kolejny etap podzadanie poprzedniego Rekursja może być zamieniona na iteracje Cechy rekurencji Rozłożenie problemu

Bardziej szczegółowo

Równania różniczkowe cz astkowe rzȩdu pierwszego

Równania różniczkowe cz astkowe rzȩdu pierwszego Równania różniczkowe cz astkowe rzȩd pierwszego 1 Równania liniowe jednorodne Rozważmy równanie a 1 ( 1,..., n ) 1 +... + a n ( 1,..., n ) n = 0, (1) gdzie a i, i = 1,..., n s a dane, a fnkcja = ( 1,...,

Bardziej szczegółowo

Technologie Informatyczne Wykład VII

Technologie Informatyczne Wykład VII Technologie Informatyczne Wykład VII A. Matuszak (1) 22 listopada 2007 A. Matuszak (1) Technologie Informatyczne Wykład VII A. Matuszak (2) Technologie Informatyczne Wykład VII (Rekursja) albo rekursja

Bardziej szczegółowo