Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku
|
|
- Władysława Kujawa
- 8 lat temu
- Przeglądów:
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 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
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
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
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
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
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
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ł
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
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)
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)
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)
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
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ć
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
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
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ę
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,
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
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
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,
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
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
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
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
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
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
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
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
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
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 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
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
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,
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
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
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
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
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
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
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
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łóż
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
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
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ń.
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
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
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,
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
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
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
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
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)
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
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.
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
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
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
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
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,
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
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
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:
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
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,
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.
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
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
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ą
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
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ę
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.
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
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
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,
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
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
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
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
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.
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
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
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
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
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
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ą
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
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.
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
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
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
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ść
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,
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
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
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
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
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
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,...,
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