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

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

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

Transkrypt

1 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 lub kilka jego pierwszych wyrazów. (R) Pozostałe wyrazy ciągu są zdefiniowane za pomocą poprzednich wyrazów ciągu. Wzór definiujący ciąg w taki sposób nazywamy zależnością rekurencyjną. Przykład. Rekurencyjna definicja ciągu SILNI, inaczej rekurencyjna definicja silni: (P) silnia(0) = (R) silnia(n+) = (n+) silnia(n) dla każdego n N. Przykład. Rozważmy ciąg SUM (n) n i i. W celu napisania programu komputerowego obliczającego wartości ciągu (SUM) n N dla dużych n, należy zapisać ten ciąg rekurencyjnie: (P) SUM() = (R) SUM(n+) = SUM(n) + (n+) dla każdego n N. Wyrazy ciągu zdefiniowanego rekurencyjnie można obliczać na wiele rozmaitych sposobów. Przykładowo, za pomocą obliczeń iteracyjnych znajdowana jest wartość n-tego wyrazu a n w oparciu o wyliczone uprzednio wartości wszystkich wyrazów ciągu poprzedzających wyraz a n, tj. wyrazów a, a,, a n-. Znajomość tych wyrazów ciągu jest niezbędna do obliczenia wartości wyrazu a n. Przykładowo, w przypadku powyżej zaprezentowanego ciągu (SILNI), w celu obliczenia wyrazu SILNI(95), należy obliczyć uprzednio wyrazy SILNI(k) dla k =,,94, nawet, jeśli większość (lub nawet wszystkie) poprzedzające wyrazy tego ciągu nie będą nigdzie indziej wykorzystane. Okazuje się jednak, iż w niektórych przypadkach istnieje bardziej efektywny sposób obliczenia wyrazu ciągu a n. Otóż, w obliczeniach rekurencyjnych wartość wyrazu ciągu a n zależy od pewnych wyrazów, a te z kolei zależą o innych, itd. zatem może okazać się, iż wartość wyrazu ciągu a n zależy tylko od stosunkowo niewielkiej liczby wyrazów poprzednich, a to sprawia, iż pozostałe wyrazy poprzednie można by pominąć. Przykład. Niech będzie dany ciąg (a n ) n N zdefiniowany następująco: (0) = 0, () =, (n) ( n / ) ( n / 5 ) dla n nalizując definicję tego ciągu, jest oczywistym, iż opłacalnym jest obliczanie wartości jego elementów rekurencyjnie, a nie iteracyjnie. Przykładowo: (9) = (46) + (8) = [(3) + (9)] + [(9) + (3)] = (3) + (9) +(3) = [() + (4)] + [(4) + ()] + () + (0) = () + 3(4) + 3() + (0) = (5) + () + 3[() + (0)] + 3() + (0) = (5) + 4() + 3() + 4(0) = () + () + 4[() + (0)] + 3() + 4(0) = () + 8() + 8(0) = () + (0) + 8() + 8(0) = 9() + 9(0) Jak widać, wprawdzie w obliczeniach wartości wyrazu (9) korzystamy z wartości pośrednich (46), (3), (8), (), (9), (5), (4), (3), (), (), (0), lecz w końcowym etapie potrzebne nam są tylko wartości () i (0).

2 Przykład. Niech będzie dany ciąg (a n ) n N zdefiniowany następująco: a 0 = 0, a n+ = a n + n. Zamiast wyliczać poszczególne wyrazy ciągu, można wykazać, iż a n = n n dla każdego n N. zatem do obliczenia dowolnego wyrazu ciągu (a n ) n N nie potrzeba obliczać żadnego z uprzednich wyrazów. Jeśli obliczamy wyrazy ciągu rekurencyjnie, to taki sposób ich obliczania wymaga pamięci dla przechowywania wartości pośrednich, które zostają wywoływane, ale jeszcze nie zostały obliczone. Jednak w niektórych przypadkach, może się okazać, iż liczba miejsc pamięci potrzebnych do przechowywania tych pośrednich wartości będzie stosunkowo niewielka. Przykładowo, w przypadku obliczeń rekurencyjnych silni np. SILNI(4) = 4 SILNI(3) = SILNI() = 4 SILNI() = 4 jest potrzebny tylko jeden adres w pamięci do przechowywania pośredniej (nieznanej) wartości silni. Przykład. Innym przykładem ilustrującym tę własność, jest obliczanie wartości ciągu Fibonacciego, który definiuje się w następujący sposób: (P) FIB(0) =, FIB() = (R) FIB(n) = FIB(n ) + FIB(n ) dla n Początkowymi wyrazami ciągu Fibonacciego są:,,, 3, 5, 8, 3,, 34, 55, 89. Przykładowo, FIB(4) = FIB(3) FIB() = [FIB() + FIB()] + [FIB() + FIB(0)] = [FIB() + FIB(0)] + FIB() + FIB(0) = 3FIB() + FIB(0) = 5 Jak widać z powyższego potrzebne są tylko dwa adresy do przechowania dwóch wartości pośrednich. Największy wspólny dzielnik - lgorytm Euklidesa Definicja. Liczba całkowita k jest dzielnikiem liczby całkowitej m wtedy i tylko wtedy, gdy m jest wielokrotnością liczby k, tzn. wtedy, gdy m = k p dla pewnej liczby p Z. W takim przypadku mówimy, iż k dzieli m. Ponieważ 0 = k 0, a zatem każda liczba jest dzielnikiem 0. Ponadto liczby m i m mają te same dzielniki. Prawdziwe jest także stwierdzenie, iż k jest dzielnikiem liczby m wtedy i tylko wtedy, gdy k jest dzielnikiem tej liczby. Z tego powodu zwykle ogranicza się rozważania do nieujemnych dzielników k nieujemnych liczb m. Jeśli m > 0 i m = k p, gdzie k, p Z, to k = m/p, zatem k = m/ p m. Zatem wszystkie dzielniki liczby m leżą w przedziale między m i m. Definicja. Wspólnym dzielnikiem liczb m i n jest taka liczba całkowita, która jest dzielnikiem zarówno m, jak i n. Jest oczywistym, iż liczby i są zawsze wspólnymi dzielnikami m i n. Definicja. Jeśli liczby m i n nie są obie równe 0, to mogą mieć tylko skończoną liczbę wspólnych dzielników. Wtedy największy z nich nazywamy największym wspólnym dzielnikiem liczb m i n i oznaczamy go symbolem NWD(m,n). Przykład. Przykładowo wspólnymi dzielnikami liczb 8 i są liczby,, 4, a największym z nich jest 4. zatem NWD(8,) = 4. Przykładowo dzielnikami liczby są liczby, 3, 7,, zaś liczby są liczby,, 4, 8. zatem NWD(, ) =.

3 lgorytm NWD algorytm Euklidesa. Dopóki m n należy wykonywać:.a Jeśli m > n, należy podstawić m := m n;.b w przeciwnym wypadku, należy podstawić n := n m.. Jest zwracana liczba m. Przykład. Niech będą liczby m = 45 i n =. Kolejne etapy: (45,), (33,), (,), (9,), (9,3), (6,3), (3,3) Stąd NWD(45,) = 3. Szybki algorytm wyznaczania NWD(m, n).. W przypadku, gdy m n 0, należy wykonywać poniższe kroki:.a Jeśli m > n, podstaw m := m mod n;.b w przeciwnym wypadku podstaw n := n mod m.. Zwraca jest liczba max{n, m}. Przykład. Niech będą liczby m = 45 i n =. Kolejne etapy: (45,) (45 MOD, ) = (9,), (9, MOD 9) = (9,3), (9 MOD 3,3) = (0,3) Stąd max{0,3} = NWD(45,) = 3.

4 Sortowanie przez scalanie Innym przykładem algorytmu rekurencyjnego może być algorytm sortowania ciągu liczb (znaków). Dla uproszczenia będziemy zakładać, że długość ciągu jest potęgą dwójki. lgorytm sortowania przez scalanie merge-sort((a)).. Jeśli ciąg (a) ma tylko jeden element, zwróć ten ciąg.. W przeciwnym razie, należy wykonać następujące czynności:.a. podziel ciąg (a) na połowy (a) i (a);.b. zastosować algorytm sortowania do podciągu (a), tj. merge-sort(a);.c. zastosować algorytm sortowania do podciągu (a), tj. merge-sort(a);.d. połączyć ciągi (a) i (a) w jeden ciąg (a*) z zachowaniem kolejności i w ten sposób jako wynik jest zwracany jest ciąg (a*). Uwaga. Krok.d nazywany jest scalaniem i jego przebieg jest następujący. Na początku ciąg wynikowy jest pusty i ustawiamy po jednym wskaźniku na początku każdego ze scalanych ciągów (a) i (a). Z kolei porównujemy wskazywane elementy (do momentu, aż ich zabraknie), przy czym mniejszy z porównanych elementów przepisujemy na ciąg wynikowy i przesuwamy wskaźnik w tym ciągu, z którego został pobrany element do ciągu wynikowego. Przykład. Należy wykonać krok.d. powyższego algorytmu, tj. scalić następujące ciągi liczb: (,5,9,,5,4) i (,3,4,7,4,). Rozwiązanie. ktualne pozycje wskaźników oznaczone są przez pogrubienie czcionki. (,5,9,,5,5) (,3,4,7,4,) = [] (,5,9,,5,5) (,3,4,7,4,) = [] (,5,9,,5,5) (,3,4,7,4,) = [,] (,5,9,,5,5) (,3,4,7,4,) = [,,3] (,5,9,,5,5) (,3,4,7,4,) = [,,3,4] (,5,9,,5,5) (,3,4,7,4,) = [,,3,4,5] (,5,9,,5,5) (,3,4,7,4,) = [,,3,4,5,7] (,5,9,,5,5) (,3,4,7,4,) = [,,3,4,5,7,9] (,5,9,,5,5) (,3,4,7,4,) = [,,3,4,5,7,0,] (,5,9,,5,5) (,3,4,7,4,) = [,,3,4,5,7,0,,4] (,5,9,,5,5) (,3,4,7,4,) = [,,3,4,5,7,0,,4,5] (,5,9,,5,5) (,3,4,7,4,) = [,,3,4,5,7,0,,4,5,] (,5,9,,5,5) (,3,4,7,4,) = [,,3,4,5,7,0,,4,5,,5] Ciąg liczb (znaków) można posortować za pomocą metody przez scalanie merge-sort używając tzw. drzewo rekursji powstające podczas obliczeń.

5 D r z e w o s c a l a n i a D r z e w o r e k u r s j i Rekurencja dr hab. prof. nadzw. Tadeusz ntczak Przykład. Przy użyciu metody przez scalanie merge-sort posortować ciąg 5, 8, 3,,, 4,, 7. Narysować drzewo rekursji powstające podczas wykonywania obliczeń podczas stosowania tego algorytmu. 5, 8, 3,, 4,, 9, 7 5, 8, 3, 4,, 9, 7 5, 8 3, 4, 9, , 8, 3, 4 7, 9, 3, 5, 8,, 4, 7, 9,, 3, 4, 5, 7, 8, 9 Inny przykładem wykorzystania drzewa rekursji jest przekładanie krążków różnej wielkości z jednego palika na drugi przy wykorzystaniu trzeciego palika. Przykład. Przypuśćmy, że mamy trzy paliki, B i C. Na paliku znajduje się n krążków rożnej wielkości, osadzonych w porządku od największego na dole do najmniejszego na górze. Paliki B i C są początkowo puste. Należy przenieść wszystkie krążki z palika na palik C, posługując się w razie potrzeby palikiem B, przy czym: (i) można przenosić tylko po jednym krążku; (ii) nie można umieszczać krążka większego na mniejszym. lgorytm Przełoż(n,,B,C): przekładanie n krążków z palika na C przy wykorzystaniu palika B.. Jeśli n =, to należy przełożyć krążek z na C.. W przeciwnym przypadku, należy wykonać następujące czynności:.a. należy zastosować algorytm do n krążków, tj. przełóż(n,,b,c); tzn. przekładanie odbywa się z palika na palik B;.b. należy przełożyć n-ty krążek z na C;.c. należy zastosować algorytm do n krążków, tj. przełóż (n,b,c,), tzn. przekładanie odbywa się z palika B na palik C

6 n Przykład. Zakładając, że wierzchołek o etykiecie odpowiada wywołaniu procedury przełóż(n,,b,c), należy narysować drzewo rekursji dla B,C przekładania czterech krążków z palika na B. Następnie należy wypisać ciąg przełożeń. 4 C,B 3 B,C B 3 C, C,B C B, B, C C, B B,C B C, C, B B, C B C, C, B B, C B C, Sposób przekładania krążków jest wyznaczony poprzez przeszukanie powyższego drzewa w tzw. porządku inorder, wypisując za każdym razem, kiedy odwiedzamy węzeł, wykonanie odpowiedniego przełożenia krążka n w kroku.b: #n: B. #: B; #: C; #: B C; #3: B; #: C ; #: C B; #: B; #4: C; #: B C; #: B ; #: C ; #3: B C; #: B; #: C; #: B C;

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

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

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

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH KATEDRASYSTEMÓWOBLICZENIOWYCH ALGORYTMY I STRUKTURY DANYCH 1.Rekurencja Rekurencja inaczej rekursja (ang. recursion) to wywołanie z poziomu metody jej samej. Programowanie z wykorzytaniem rekurencji pozwala

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

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

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

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Algorytm Euklidesa Liczby pierwsze i złożone Metody

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

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

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

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

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

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 Rekurencja 11 Wieże Hanoi Rekurencja jest to zdolność podprogramu (procedury lub funkcji) do wywoływania samego siebie Zacznijmy

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

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

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

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

Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.

Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa. 2 Egzamin maturalny z informatyki Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie lub, która odpowiedź jest prawdziwa, a która fałszywa. a) rzeanalizuj poniższy algorytm (:= oznacza instrukcję

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

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

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

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

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

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

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

EGZAMIN MATURALNY Z INFORMATYKI

EGZAMIN MATURALNY Z INFORMATYKI ARKUSZ ZAWIERA INORMACJE RAWNIE CHRONIONE DO MOMENTU ROZOCZĘCIA EGZAMINU! Miejsce na naklejkę EGZAMIN MATURALNY Z INORMATYKI MIN-R1_1-092 MAJ ROK 2009 OZIOM ROZSZERZONY CZĘŚĆ I Czas pracy 90 minut Instrukcja

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

Jarosław Wróblewski Matematyka Elementarna, lato 2012/13. W dniu 21 lutego 2013 r. omawiamy test kwalifikacyjny.

Jarosław Wróblewski Matematyka Elementarna, lato 2012/13. W dniu 21 lutego 2013 r. omawiamy test kwalifikacyjny. W dniu 21 lutego 2013 r. omawiamy test kwalifikacyjny. Uwaga: Przyjmujemy, że 0 nie jest liczbą naturalną, tzn. liczby naturalne są to liczby całkowite dodatnie. 1. Dane są liczby naturalne m, n. Wówczas

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

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 (12p.)Niech n 3k > 0. Zbadać jaka jest najmniejsza możliwa liczba krawędzi w grafie, który ma dokładnie n wierzchołków oraz dokładnie k składowych, z których

Bardziej szczegółowo

Jeszcze o algorytmach

Jeszcze o algorytmach Jeszcze o algorytmach Przykłady różnych, podstawowych algorytmów 11.01.2018 M. Rad Plan Powtórka Znajdowanie najmniejszego elementu Segregowanie Poszukiwanie przez połowienie Wstawianie Inne algorytmy

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

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

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

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

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

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

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

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik

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

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

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

Informatyka I Lab 06, r.a. 2011/2012 prow. Sławomir Czarnecki. Zadania na laboratorium nr. 6

Informatyka I Lab 06, r.a. 2011/2012 prow. Sławomir Czarnecki. Zadania na laboratorium nr. 6 Informatyka I Lab 6, r.a. / prow. Sławomir Czarnecki Zadania na laboratorium nr. 6 Po utworzeniu nowego projektu, dołącz bibliotekę bibs.h.. Największy wspólny dzielnik liczb naturalnych a, b oznaczamy

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

Wybrane zagadnienia teorii liczb

Wybrane zagadnienia teorii liczb Wybrane zagadnienia teorii liczb Podzielność liczb NWW, NWD, Algorytm Euklidesa Arytmetyka modularna Potęgowanie modularne Małe twierdzenie Fermata Liczby pierwsze Kryptosystem RSA Podzielność liczb Relacja

Bardziej szczegółowo

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR

INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR 1. Algorytm XOR Operacja XOR to inaczej alternatywa wykluczająca, oznaczona symbolem ^ w języku C i symbolem w matematyce.

Bardziej szczegółowo

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych Teoria liczb Zajmuje się własnościami liczb, przede wszystkim całkowitych Niepraktyczna? - kryptografia Dzielenie liczb całkowitych z resztą Niech b>0, wtedy dla każdej liczby całkowitej a istnieją jednoznacznie

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

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów

Treść wykładu. Pierścienie wielomianów. Dzielenie wielomianów i algorytm Euklidesa Pierścienie ilorazowe wielomianów Treść wykładu Pierścienie wielomianów. Definicja Niech P będzie pierścieniem. Wielomianem jednej zmiennej o współczynnikach z P nazywamy każdy ciąg f = (f 0, f 1, f 2,...), gdzie wyrazy ciągu f są prawie

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

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element

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

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

EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I

EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2013 KOD UZUPEŁNIA ZDAJĄCY PESEL miejsce na naklejkę EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY

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

ZADANIE 1. Ważenie (14 pkt)

ZADANIE 1. Ważenie (14 pkt) ZADANIE 1. Ważenie (14 pkt) Danych jest n przedmiotów o niewielkich gabarytach i różnych wagach. Jest też do dyspozycji waga z dwiema szalkami, ale nie ma odważników. Kładąc na wadze przedmioty a i b,

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Ciąg Fibonacciego fib(0)=1 fib(1)=1 fib(n)=fib(n-1)+fib(n-2), gdzie n 2 Elementy tego ciągu stanowią liczby naturalne tworzące ciąg o takiej własności, że kolejny wyraz (z wyjątkiem

Bardziej szczegółowo

Zadanie 1. Potęgi (14 pkt)

Zadanie 1. Potęgi (14 pkt) 2 Egzamin maturalny z informatyki Zadanie 1. otęgi (14 pkt) W poniższej tabelce podane są wartości kolejnych potęg liczby 2: k 0 1 2 3 4 5 6 7 8 9 10 2 k 1 2 4 8 16 32 64 128 256 512 1024 Ciąg a=(a 0,

Bardziej szczegółowo

Poprawność semantyczna

Poprawność semantyczna Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych

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

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy. Zadania język C++ Zad. 1 Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy. (Być moŝe są w tym samym wieku. Zrób w programie warunek,

Bardziej szczegółowo

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

Projekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Materiały dydaktyczne na zajęcia wyrównawcze z matematyki dla studentów pierwszego roku kierunku zamawianego Inżynieria i Gospodarka Wodna w ramach projektu Era inżyniera pewna lokata na przyszłość Projekt

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 4: Iteracja, indukcja i rekurencja http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Słowem wstępu Iteracja, indukcja

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

Maciej Grzesiak. Wielomiany

Maciej Grzesiak. Wielomiany Maciej Grzesiak Wielomiany 1 Pojęcia podstawowe Wielomian definiuje się w szkole średniej jako funkcję postaci f(x) = a 0 + a 1 x + a 2 x + + a n x n Dogodniejsza z punktu widzenia algebry jest następująca

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

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

Jarosław Wróblewski Matematyka Elementarna, lato 2014/15 Ćwiczenia 5/6, 10, 17.03.2015 (obie grupy) 33. Połączyć podane warunki w grupy warunków równoważnych dla dowolnej liczby naturalnej n. a) liczba n jest nieparzysta b) liczba n jest względnie pierwsza z

Bardziej szczegółowo

Programowanie - wykład 4

Programowanie - wykład 4 Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include

Bardziej szczegółowo

funkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2)

funkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2) Podstawy programowania (język C) funkcje rekurencyjne Wykład 12. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Funkcje rekurencyjne (1) W języku C funkcja moŝe wywoływać samą siebie.

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, /14 Matematyka dyskretna Andrzej Łachwa, UJ, 2016 andrzej.lachwa@uj.edu.pl 6/14 Sumy Oto dwie konwencje zapisu skończonych sum wyrazów: (notacja Sigma, Fourier, 1820) Czasami stosowana jest ogólniejsza notacja,

Bardziej szczegółowo

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %). Powrót Twój wynik: 4 punktów na 6 możliwych do uzyskania (6667 %). Nr Opcja Punkty Poprawna Odpowiedź Rozważmy algorytm AVLSequence postaci: 1 Niech drzewo będzie rezultatem działania algorytmu AVLSequence

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

Jarosław Wróblewski Matematyka Elementarna, zima 2011/12

Jarosław Wróblewski Matematyka Elementarna, zima 2011/12 168. Uporządkować podane liczby w kolejności niemalejącej. sin50, cos80, sin170, cos200, sin250, cos280. 169. Naszkicować wykres funkcji f zdefiniowanej wzorem a) f(x) = sin2x b) f(x) = cos3x c) f(x) =

Bardziej szczegółowo

Teoria automatów i języków formalnych. Określenie relacji

Teoria automatów i języków formalnych. Określenie relacji Relacje Teoria automatów i języków formalnych Dr inŝ. Janusz ajewski Katedra Informatyki Określenie relacji: Określenie relacji Relacja R jest zbiorem par uporządkowanych, czyli podzbiorem iloczynu kartezjańskiego

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

Programowanie dynamiczne i algorytmy zachłanne

Programowanie dynamiczne i algorytmy zachłanne Programowanie dynamiczne i algorytmy zachłanne Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii

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

Matematyka dyskretna - 7.Drzewa

Matematyka dyskretna - 7.Drzewa Matematyka dyskretna - 7.Drzewa W tym rozdziale zajmiemy się drzewami: specjalnym przypadkiem grafów. Są one szczególnie przydatne do przechowywania informacji, umożliwiającego szybki dostęp do nich. Definicja

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

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

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

Porządek symetryczny: right(x)

Porządek symetryczny: right(x) Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)

Bardziej szczegółowo

Sortowanie. LABORKA Piotr Ciskowski

Sortowanie. LABORKA Piotr Ciskowski Sortowanie LABORKA Piotr Ciskowski main Zaimplementuj metody sortowania przedstawione w następnych zadaniach Dla każdej metody osobna funkcja Nagłówek funkcji wg uznania ale wszystkie razem powinny być

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

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je. Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie

Bardziej szczegółowo

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013 Funkcje i tablice Elwira Wachowicz elwira@ifd.uni.wroc.pl 23 maja 2013 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Funkcje i tablice 23 maja 2013 1 / 22 Największy wspólny dzielnik: algorytm Euklidesa Problem:

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

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

Przykładami ciągów, które Czytelnik dobrze zna (a jeśli nie, to niniejszym poznaje), jest ciąg arytmetyczny: Podstawowe definicje Definicja ciągu Ciągiem nazywamy funkcję na zbiorze liczb naturalnych, tzn. przyporządkowanie każdej liczbie naturalnej jakiejś liczby rzeczywistej. (Mówimy wtedy o ciągu o wyrazach

Bardziej szczegółowo

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

7. CIĄGI. WYKŁAD 5. Przykłady : WYKŁAD 5 1 7. CIĄGI. CIĄGIEM NIESKOŃCZONYM nazywamy funkcję określoną na zbiorze liczb naturalnych, dodatnich, a wyrazami ciągu są wartości tej funkcji. CIĄGIEM SKOŃCZONYM nazywamy funkcję określoną na

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy na tablicach Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. III Jesień 2013 1 / 23 Dwadzieścia pytań Zasady 1 Osoba 1 wymyśla hasło z ustalonej

Bardziej szczegółowo

Informatyka A. Algorytmy

Informatyka A. Algorytmy Informatyka A Algorytmy Spis algorytmów 1 Algorytm Euklidesa....................................... 2 2 Rozszerzony algorytm Euklidesa................................ 2 3 Wyszukiwanie min w tablicy..................................

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Co to jest algorytm? Zapis algorytmów Algorytmy

Bardziej szczegółowo

Zadanie 1. Algorytmika ćwiczenia

Zadanie 1. Algorytmika ćwiczenia Zadanie 1 Algorytmika ćwiczenia Zadanie 2 Zadanie 3 Zadanie 4 Zadanie 5 Zadanie 6 Zadanie 7 Wiązka zadań Ułamki dwójkowe W systemach pozycyjnych o podstawie innej niż 10 można zapisywać nie tylko liczby

Bardziej szczegółowo

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

Przypomnienie wiadomości dla trzecioklasisty C z y p a m i ę t a s z? Przypomnienie wiadomości dla trzecioklasisty C z y p a m i ę t a s z? Liczby naturalne porządkowe, (0 nie jest sztywno związane z N). Przykłady: 1, 2, 6, 148, Liczby całkowite to liczby naturalne, przeciwne

Bardziej szczegółowo

Podprogramy. Procedury

Podprogramy. Procedury Podprogramy Turbo Pascal oferuje metody ułatwiające tworzenie struktury programu, szczególnie dotyczy to większych programów. Przy tworzeniu większego programu stosuje się jego podział na kilka mniejszych

Bardziej szczegółowo

Uniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy

Uniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy Uniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy Matematyka, królowa nauk Edycja X - etap 2 Bydgoszcz, 16 kwietnia 2011 Fordoński

Bardziej szczegółowo

Składnia funkcji i Rekurencja w języku Haskell

Składnia funkcji i Rekurencja w języku Haskell Składnia funkcji i w języku Haskell Tomasz Ostrowski, Adrian Niechciał, Michał Workiewicz, Marcin Wilk 26 marca 2015 Składnia funkcji i w języku Haskell Spis treści Składnia funkcji Tomasz Ostrowski Adrian

Bardziej szczegółowo