Informatyka 1. Wykład nr 8 ( ) Plan wykładu nr 8. Politechnika Białostocka. - Wydział Elektryczny. Algorytm - definicje.

Podobne dokumenty
Informatyka 1. Wykład nr 7 ( ) Plan wykładu nr 7. Politechnika Białostocka. - Wydział Elektryczny. Algorytm - definicje.

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Informatyka 1. Wykład nr 7 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Algorytmy komputerowe. dr inż. Jarosław Forenc

Informatyka 1. Wykład nr 7 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Algorytm. a programowanie -

Analiza algorytmów to dział informatyki zajmujcy si szukaniem najefektywniejszych, poprawnych algorytmów dla danych problemów komputerowych

3 Arytmetyka. 3.1 Zbiory liczbowe.

I. Podzielność liczb całkowitych

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2012 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Analiza algorytmów to dział informatyki zajmujcy si szukaniem najefektywniejszych, poprawnych algorytmów dla danych problemów komputerowych.

Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: Badania operacyjne. Temat ćwiczenia: Problemy transportowe cd, Problem komiwojażera

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

Parametryzacja rozwiązań układu równań

Struktura i funkcjonowanie komputera struktura połączeń, magistrala, DMA systemy pamięci komputerowych hierarchia pamięci, pamięć podręczna

Elementy modelowania matematycznego

Ciągi liczbowe wykład 3

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2011 POZIOM ROZSZERZONY WYBRANE: CZĘŚĆ I. Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Informatyka 1. Wykład nr 6 ( ) Plan wykładu nr 6. Politechnika Białostocka. - Wydział Elektryczny. Architektura von Neumanna

Algorytmy I Struktury Danych Prowadząca: dr Hab. inż. Małgorzata Sterna. Sprawozdanie do Ćwiczenia 3 Algorytmy grafowe ( )

Matematyka. Zakres podstawowy. Nawi zanie do gimnazjum. n/m Rozwi zywanie zada Zadanie domowe Dodatkowe Komunikaty Bie ce materiały

Egzamin maturalny z informatyki Poziom rozszerzony część I

Prawdopodobieństwo i statystyka

Algorytmy I Struktury Danych Prowadząca: dr Hab. inż. Małgorzata Sterna. Sprawozdanie do Ćwiczenia 1 Algorytmy sortowania (27.02.

Definicja interpolacji

D. Miszczyńska, M.Miszczyński KBO UŁ, Badania operacyjne (wykład 6 _ZP) [1] ZAGADNIENIE PRZYDZIAŁU (ZP) (Assignment Problem)

Metody Obliczeniowe w Nauce i Technice laboratorium

ma rozkład złożony Poissona z oczekiwaną liczbą szkód równą λ i rozkładem wartości pojedynczej szkody takim, że Pr( Y

Relacje rekurencyjne. będzie następująco zdefiniowanym ciągiem:

MATEMATYKA (poziom podstawowy) przykładowy arkusz maturalny wraz ze schematem oceniania dla klasy II Liceum

Analiza numeryczna. Stanisław Lewanowicz. Aproksymacja funkcji

MINIMALIZACJA PUSTYCH PRZEBIEGÓW PRZEZ ŚRODKI TRANSPORTU

UKŁADY RÓWNAŃ LINOWYCH

O liczbach naturalnych, których suma równa się iloczynowi

Scenariusz lekcji: Kombinatoryka utrwalenie wiadomości

Wstęp do Informatyki

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Znajdowanie pozostałych pierwiastków liczby zespolonej, gdy znany jest jeden pierwiastek

Metrologia: miary dokładności. dr inż. Paweł Zalewski Akademia Morska w Szczecinie

Estymacja przedziałowa

1.3. Największa liczba naturalna (bez znaku) zapisana w dwóch bajtach to a) b) 210 c) d) 32767

Podprzestrzenie macierzowe

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Magistrala systemowa (System Bus) Architektura komputera

2.8. Algorytmy, schematy, programy

3. Tworzenie próby, błąd przypadkowy (próbkowania) 5. Błąd standardowy średniej arytmetycznej

LABORATORIUM MODELOWANIA I SYMULACJI. Ćwiczenie 3 MODELOWANIE SYSTEMÓW DYNAMICZNYCH METODY OPISU MODELI UKŁADÓW

2 n < 2n + 2 n. 2 n = 2. 2 n 2 +3n+2 > 2 0 = 1 = 2. n+2 n 1 n+1 = 2. n+1

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

Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: Badania operacyjne. Temat ćwiczenia: Problemy przydziału

ZASTOSOWANIE METODY STOLIKÓW EKSPERCKICH NA LEKCJACH MATEMATYKI SCENARIUSZE ZAJĘĆ

Jarosław Wróblewski Analiza Matematyczna 1, zima 2016/17

POMIARY WARSZTATOWE. D o u ż y t k u w e w n ę t r z n e g o. Katedra Inżynierii i Aparatury Przemysłu Spożywczego. Ćwiczenia laboratoryjne

Teoria obliczeń: ciągi, notacja 0. Wykład 7

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytm. Krótka historia algorytmów

Podprzestrzenie macierzowe

Zdarzenia losowe, definicja prawdopodobieństwa, zmienne losowe

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNII Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe:

X i. X = 1 n. i=1. wartość tej statystyki nazywana jest wartością średnią empiryczną i oznaczamy ją symbolem x, przy czym x = 1. (X i X) 2.

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNI Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe:

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNII Z PRZEMIOTU INFORMATYKA 1

1. Wnioskowanie statystyczne. Ponadto mianem statystyki określa się także funkcje zmiennych losowych o

INWESTYCJE MATERIALNE

RÓWNANIA RÓŻNICZKOWE WYKŁAD 11

Projekt z dnia r. Wersja 0.5 ROZPORZĄDZENIE MINISTRA GOSPODARKI 1) z dnia..

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy

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

Efektywna metoda sortowania sortowanie przez scalanie

EGZAMIN MATURALNY Z INFORMATYKI

INFORMATYKA. Algorytmy.

MODELE MATEMATYCZNE W UBEZPIECZENIACH. 1. Renty

Chemia Teoretyczna I (6).

Katalog wymagań programowych z matematyki od absolwenta II klasy (poziom rozszerzony).

7 Liczby zespolone. 7.1 Działania na liczbach zespolonych. Liczby zespolone to liczby postaci. z = a + bi,

Zasady projektowania hurtowni

Szereg geometryczny. 5. b) b n = 4n 2 (b 1 = 2, r = 4) lub b n = 10 (b 1 = 10, r = 0). 2. jest równa 1 x dla x = 1+ Zad. 3:

Stwierdzenie 1. Jeżeli ciąg ma granicę, to jest ona określona jednoznacznie (żaden ciąg nie może mieć dwóch różnych granic).

KADD Metoda najmniejszych kwadratów

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

3. Wzory skróconego mnożenia, działania na wielomianach. Procenty. Elementy kombinatoryki: dwumian Newtona i trójkąt Pascala. (c.d.

Pierwiastki z liczby zespolonej. Autorzy: Agnieszka Kowalik

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Zadania z analizy matematycznej - sem. I Szeregi liczbowe

Zapisywanie algorytmów w języku programowania

Wstęp do programowania

Matematyka finansowa r. Komisja Egzaminacyjna dla Aktuariuszy. XLVII Egzamin dla Aktuariuszy z 6 października 2008 r.

PODSTAWY OPRACOWANIA WYNIKÓW POMIARÓW Z ELEMENTAMI ANALIZY NIEPEWNOŚCI POMIAROWYCH

d wymiarowy wektor losowy Niech (Ω, S, P) przestrzeń probabilistyczna Definicja Odwzorowanie X: Ω R nazywamy 1-wymiarowym wektorem

TESTY LOSOWOŚCI. Badanie losowości próby - test serii.

Informatyka 1. Wykład nr 2 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Kongruencje Wykład 4. Kongruencje kwadratowe symbole Legendre a i Jac

Trzeba pokazać, że dla każdego c 0 c Mc 0. ) = oraz det( ) det( ) det( ) jest macierzą idempotentną? Proszę odpowiedzieć w

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNI Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe:

Podstawy Informatyki. Programowanie. Inżynieria Ciepła, I rok. Co to jest algorytm? Istotne cechy algorytmu

Podstawy informatyki 2. Podstawy informatyki 2. Wykład nr 9 ( ) Plan wykładu nr 9. Politechnika Białostocka. - Wydział Elektryczny

Internetowe Kółko Matematyczne 2004/2005

Dydaktyka matematyki III-IV etap edukacyjny (wykłady) Wykład nr 6: Nauczanie algorytmów w szkole Semestr zimowy 2018/2019

Transkrypt:

Rok akademicki 007/008, Wykład r 8 /8 Pla wykładu r 8 Iformatyka Politechika Białostocka - Wydział Elektryczy Elektrotechika, semestr II, studia iestacjoare I stopia (zaocze) Rok akademicki 007/008 Defiicje algorytmu komputerowego Sposoby opisu algorytmów opis słowy schemat blokowy pseudokod język programowaia Klasyfikacje algorytmów Rekurecja Wykład r 8 (5.05.008) Rok akademicki 007/008, Wykład r 8 3/8 Rok akademicki 007/008, Wykład r 8 4/8 Algorytm - defiicje Defiicja Algorytm to skończoy, uporządkoway ciąg jaso zdefiiowaych czyości, koieczych do wykoaia pewego zadaia Defiicja Metoda rozwiązaia zadaia Defiicja 3 Ściśle określoa procedura obliczeiowa, która dla właściwych daych wejściowych zwraca Ŝądae dae wyjściowe zwae wyikiem działaia algorytmu Defiicja 4 Skończoy zbiór reguł, wskazujący kolejość operacji przy rozwiązywaiu problemu pewego typu Algorytmy Słowo algorytm pochodzi od azwiska Mohammed ib Musa al-khowarizmiego (po łaciie pisae jako Algorismus), matematyka perskiego z IX wieku i początkowo ozaczało w Europie sposób obliczeń oparty a dziesiętym systemie liczbowym Badaiem algorytmów zajmuje się algorytmika Algorytm moŝe zostać zaimplemetoway w postaci programu komputerowego lub dla iego urządzeia Te sam algorytm moŝe być zaimplemetoway w róŝy sposób przy uŝyciu róŝych języków programowaia Jeśli day algorytm da się wykoać a maszyie o dostępej mocy obliczeiowej i pamięci oraz akceptowalym czasie, to mówi się Ŝe jest to algorytm obliczaly

Rok akademicki 007/008, Wykład r 8 5/8 Rok akademicki 007/008, Wykład r 8 6/8 Algorytmy Podstawowe cechy algorytmu Algorytm powiie posiadać dae wejściowe (w ilości większej lub rówej zeru) pochodzące z dobrze zdefiiowaego zbioru Algorytm powiie zwracać pewie wyik Algorytm powiie być precyzyjie zdefiioway (kaŝdy krok algorytmu musi być jedozaczie określoy) Sposoby opisu algorytmów. Opis w puktach, w języku aturalym (opis słowy, lista kroków). Za pomocą schematu blokowego 3. Z zastosowaiem pseudokodu (język publikacyjy), czyli iezbyt formalej odmiaie języka programowaia (p. odformalizoway Pascal, C, C++) 4. W kokretym języku programowaia, p. Pascalu, C, C++, Matlabie Algorytm powiie być zawsze poprawy (dla kaŝdego z załoŝoego dopuszczalego zestawu daych wejściowych) Algorytm powiie zawsze kończyć się po skończoej liczbie kroków (powia istieć poprawie działająca reguła stopu algorytmu) Algorytm powiie być efektywy (jak ajkrótszy czas wykoaia i jak ajmiejsze zapotrzebowaie a pamięć) Rok akademicki 007/008, Wykład r 8 7/8 Rok akademicki 007/008, Wykład r 8 8/8 Opis słowy s algorytmu Opis słowy przypomia przepis kuliary z ksiąŝki kucharskiej Schematy blokowe Elemety występujące a schematach blokowych: Przykład: Algorytm: Tortilla (a podstawie PodróŜy kuliarych R. Makłowicza) Dae wejściowe: Dae wyjściowe: Koleje kroki: 0,5 kg ziemiaków, 00 g kiełbasy Chorizo, 8 jajek gotowa Tortilla początek algorytmu moŝe występować tylko jede raz koiec algorytmu musi występować przyajmiej jede raz. Ziemiaki obrać i pokroić w plasterki. Kiełbasę pokroić w plasterki 3. Ziemiaki wrzucić a gorącą oliwę a pateli i przyrumieić z obu stro 4. Kiełbasę wrzucić a gorącą oliwę a pateli i przyrumieić z obu stro 5. Ubić jajka i dodać do połączoych ziemiaków i kiełbasy 6. Dodać sól i pieprz 7. UsmaŜyć z obu stro wielki omlet adzieway chipsami ziemiaczaymi z kiełbaską Opis operacji elemetara istrukcja blok fukcyjy operacje obliczeiowe lub orgaizacyje blok decyzyjy operacje warukowe testy

Rok akademicki 007/008, Wykład r 8 9/8 Rok akademicki 007/008, Wykład r 8 0/8 algorytm Euklidesa zajdowaia ajwiększego wspólego dzielika algorytm Euklidesa zajdowaia ajwiększego wspólego dzielika Opis w puktach: Dae wejściowe: iezerowe liczby aturale a i b NWD(675,375)? Dae wyjściowe: Koleje kroki: NWD(a,b). Czytaj liczby a i b. Dopóki a i b są większe od zera, powtarzaj krok 3, a astępie przejdź do kroku 4 3. Jeśli a jest większe od b, to weź za a resztę z dzieleia a przez b, w przeciwym razie weź za b resztę z dzieleia b przez a 4. Przyjmij jako ajwiększy wspóly dzielik tę z liczb a i b, która pozostała większa od zera 5. Drukuj NWD(a,b) a b 675 375 675 40 67 40 67 0 NWD(675,375) 67 Dzieleie większej liczby przez miejszą b/a 375/675 40 a/b 675/40 4 67 b/a 40/67 6 0 KONIEC Zamiaa b 40 a 67 b 0 Rok akademicki 007/008, Wykład r 8 /8 Rok akademicki 007/008, Wykład r 8 /8 algorytm Euklidesa zajdowaia ajwiększego wspólego dzielika algorytm Euklidesa zajdowaia ajwiększego wspólego dzielika Schemat blokowy: Pseudokod: NWD(a,b) while a>0 i b>0 do if a>b the a a mod b b b mod a if a>0 the retur a retur b

Rok akademicki 007/008, Wykład r 8 3/8 Rok akademicki 007/008, Wykład r 8 4/8 algorytm Euklidesa zajdowaia ajwiększego wspólego dzielika zamiaa zapisu liczby aturalej l daej w systemie dziesiętym, a zapis w systemie pozycyjym o podstawie p Język C: it NWD(it a, it b) { while (a>0 && b>0) if (a>b) a a % b; b b % a; if (a>0) retur a; retur b; } Opis w puktach: Dae wejściowe: Dae wyjściowe: Koleje kroki:. Czytaj liczby l i p liczba l w systemie dziesiętym, podstawa systemu p zapis liczby l w systemie o podstawie p. Dopóki l > 0 powtarzaj krok 3 3. Wykoaj dzieleie całkowite liczby l przez p, resztę z dzieleia zapamiętaj jako koleją cyfrę przedstawieia liczby l w owym systemie pozycyjym 4. Drukuj cyfry przedstawieia liczby l w owym systemie pozycyjym w odwrotej kolejości iŝ były zapamiętywae Rok akademicki 007/008, Wykład r 8 5/8 Rok akademicki 007/008, Wykład r 8 6/8 zamiaa zapisu liczby aturalej l daej w systemie dziesiętym, a zapis w systemie pozycyjym o podstawie p 75 (0)?(6) 75(0) 035(6) 75/ 6 9/ 6 48 / 6 8 / 6 / 6 9 48 8 0 5 3 0 kolejość odczytywaia cyfr liczby w systemie szóstkowym Klasyfikacje algorytmów Podstawowe paradygmaty tworzeia programów komputerowych: strategia dziel i zwycięŝaj programowaie dyamicze algorytmy zachłae programowaie liiowe algorytmy siłowe (brute force) algorytmy probabilistycze heurystyka NajwaŜiejsze techiki implemetacji algorytmów komputerowych: proceduralość obiektowość praca sekwecyja praca wielowątkowa praca rówoległa rekurecja

Rok akademicki 007/008, Wykład r 8 7/8 Rok akademicki 007/008, Wykład r 8 8/8 Strategia dziel i zwycięŝ ęŝaj Strategia dziel i zwycięŝaj (ag. divide ad coquer) jest strategią kostruowaia algorytmów, jedą z ajefektywiejszych metod w iformatyce W strategii tej zazwyczaj rekurecyjie dzielimy problem a dwa lub więcej miejszych problemów tego samego (lub podobego) typu tak długo, aŝ staie się o wystarczająco prosty do bezpośrediego rozwiązaia Rozwiązaia otrzymae dla miejszych podproblemów są scalae w celu uzyskaia rozwiązaia całego zadaia Przykłady zastosowań: sortowaie szybkie (quicksort) wyszukiwaie biare - polega a sprawdzeiu czy szukay elemet zajduje się w uporządkowaej tablicy, jeśli tak, to zwraca jego ideks Programowaie dyamicze Kostrukcja programu wykorzystującego zasadę programowaia dyamiczego moŝe być sformułowaa w trzech etapach: Kocepcja: Iicjacja: Progresja: dla daego problemu stwórz rekurecyjy model jego rozwiązaia (wraz z jedozaczym określeiem przypadków elemetarych) stwórz tablicę, w której będzie moŝa zapamiętywać rozwiązaia przypadków elemetarych i podproblemów, które zostaą obliczoe a ich podstawie wpisz do tablicy wartości umerycze odpowiadające przypadkom elemetarym a podstawie wartości wpisaych do tablicy, uŝywając formuły rekurecyjej, oblicz rozwiązaie problemu wyŝszego rzędu i wpisz je do tablicy postępuj w te sposób do osiągięcia poŝądaej wartości Rok akademicki 007/008, Wykład r 8 9/8 Rok akademicki 007/008, Wykład r 8 0/8 Algorytmy zachłae ae Algorytm zachłay (ag. greedy algorithm) jest to algorytm, w którym w celu rozwiązaia pewego zadaia w kaŝdym kroku dokouje się zachłaego, tj. ajlepiej rokującego w daym momecie wyboru rozwiązaia częściowego Algorytm podejmuje decyzję lokalie optymalą, dokouje wyboru wydającego się w daej chwili ajlepszym, kotyuując rozwiązaie podproblemu wyikające z podjętej decyzji Algorytmy zachłae stosowae są przede wszystkim w optymalizacji Musi zawsze istieć kryterium pozwalające oceić jakość rozwiązaia Programowaie liiowe Programowaie liiowe to klasa programowaia matematyczego, w której wszystkie waruki ograiczające oraz fukcja celu mają postać liiową, p. waruki ograiczające: a x + a x a x + a x a x + a x + K+ a x + K+ a x + K+ a x α α α Zadaie polega a zmaksymalizowaiu (zmiimalizowaiu) fukcji celu: f α + c K+ x + cx + cx Dokoyway lokalie ajkorzystiejszy wybór ma w załoŝeiu prowadzić do zalezieia globalego optymalego rozwiązaia wiele problemów moŝa sprowadzić do maksymalizacji lub miimalizacji pewej fukcji celu, przy ograiczoych zasobach i atagoistyczych warukach programowaie liiowe zalazło szerokie zastosowaie w teorii decyzji, p. do optymalizacji plau produkcyjego

Rok akademicki 007/008, Wykład r 8 /8 Rok akademicki 007/008, Wykład r 8 /8 Programowaie liiowe Fabryka produkuje urządzeia A i B. W ciągu jedego dia moŝa wytworzyć łączie 00 urządzeń. Wyprodukowaie urządzeia A zajmuje 3 roboczogodziy, a urządzeia B - 4 roboczogodziy. Dziea liczba dostępych roboczogodzi wyosi 600. W ciągu jedego dia aleŝy wyprodukować mi. 50 urządzeń A i mi. 50 urządzeń B. Zysk ze sprzedaŝy urządzeia A to 000 PLN, a B - 00 PLN. Ile urządzeń A i B aleŝy dzieie wyprodukować, aby zysk był jak ajwiększy? Waruki ograiczające: x A 3 x + x x, x A A 00 + 4 x B B B 50 600 Algorytmy siłowe Algorytm siłowy (ag. brute force) jest to określeie algorytmu opierającego się a sukcesywym sprawdzaiu wszystkich moŝliwych kombiacji w poszukiwaiu rozwiązaia problemu Algorytm siłowy jest zazwyczaj ieoptymaly, ale ajprostszy w implemetacji W programowaiu termi te odosi się do dowolego algorytmu, który rozwiązuje problem przez weryfikację i oceę wszystkich wariatów postępowaia Stosowae jest takŝe pojęcie ataku brute force, odoszące się do przeprowadzaych przez człowieka lub program komputerowy prób złamaia zabezpieczeń, p. odgadięcia hasła, poprzez wypróbowaie wszystkich moŝliwych kombiacji cyfr, liter i iych zaków Fukcja celu: f 000 x + 00 A x B Rok akademicki 007/008, Wykład r 8 3/8 Rok akademicki 007/008, Wykład r 8 4/8 Algorytmy probabilistycze Ogólie algorytmy moŝa podzielić a determiistycze i probabilistycze Dae wejściowe Algorytm determiistyczy Dae wyjściowe Dae wejściowe Algorytm probabilistyczy Dae wyjściowe Geerator liczb losowych Działaie algorytmu determiistyczego jest całkowicie zdetermiowae przez waruki początkowe (wejście), tz. dla takich samych daych wejściowych algorytm zawsze zwraca taki sam wyik Algorytm probabilistyczy albo radomizoway (ag. radomized algorithm) to algorytm, który do swojego działaia uŝywa losowości (geeratora liczb pseudolosowych) Algorytmy probabilistycze Główą zaletą algorytmów probabilistyczych jest działaie w średim przypadku, dzięki czemu złośliwe dae wejściowe ie wydłuŝają jego działaia Wśród algorytmów probabilistyczych wyróŝia się algorytmy Las Vegas i algorytmy Mote Carlo Algorytm Las Vegas: Algorytm Las Vegas zawsze zwraca prawidłową odpowiedź, ale jego czas działaia ie jest z góry ustaloy (p. szukaie litery a w tablicy zawierającej połowę liter a i połowę liter b ) Algorytm Moe Carlo: Algorytm Mote Carlo kończy się w ustaloym czasie, ale moŝe z pewym prawdopodobieństwem zwrócić zły wyik lub zwrócić wyik tylko z pewą dokładością (p. obliczaie całek ozaczoych)

Rok akademicki 007/008, Wykład r 8 5/8 Rok akademicki 007/008, Wykład r 8 6/8 Rekurecja Rekurecja - przykłady Rekurecja lub rekursja (ag. recursio, z łac. recurrere, przybiec z powrotem) jest to odwoływaie się p. fukcji do samej siebie Rekurecja polega a tym, Ŝe rozwiązaie daego problemu wyraŝa się za pomocą rozwiązań tego samego problemu dla daych o miejszych rozmiarach W matematyce mechaizm rekurecji stosoway jest dość często do defiiowaia lub opisywaia algorytmów silia liczby! ( )! dla dla 0 UŜycie opisu rekurecyjego w przypadku algorytmu pozwala a przejrzysty, zwarty opis fukcji lub procedury Nie zawsze rozwiązaie rekurecyje prowadzi do rozwiązaia efektywego, czasem prowadzi do obiŝeia efektywości programu Rekurecja zawsze zwiększa zapotrzebowaie programu a pamięć it silia(it ) { if (0) retur ; retur *silia(-); } Rok akademicki 007/008, Wykład r 8 7/8 Rok akademicki 007/008, Wykład r 8 8/8 Rekurecja - przykłady Rekurecja - przykłady defiicja ciągu Fiboacciego ajwiększy wspóly dzielik - algorytm Euklidesa 0 dla 0 F dla F + F dla > NWD(a, b) a NWD(b,a mod b) dla dla b 0 b it F(it ) { if (0) retur 0; if () retur ; retur F(-) + F(-); } it NWD(it a, it b) { if (b0) retur a; retur NWD(b,a % b); }

Rok akademicki 007/008, Wykład r 8 9/8 Rok akademicki 007/008, Wykład r 8 30/8 Koiec wykładu r 8 Źródła a (KsiąŜ ąŝki): Dziękuj kuję za uwagę! Adamski T., Ogrodzki J.: Algorytmy komputerowe i struktury daych. Oficya Wydawicza Politechiki Warszawskiej, Warszawa, 005 - Rozdz... Wprowadzeie (str. 9-48) Goczyła K.: Struktury daych. Wydawictwo Politechiki Gdańskiej, Gdańsk, 00 - Rozdz..3 Miary jakości algorytmów (str. 9-0) Goczyła K.: Struktury daych. Wydawictwo Politechiki Gdańskiej, Gdańsk, 00 - Rozdz..4 Szacowaie (str. 0-3) Alexader R., Besley G.: C++. Optymalizacja oprogramowaia. Wydawictwo RM, Warszawa, 00 - Rozdz. 5 Pomiary czasu i złoŝoości (str. 89-9) Baachowski L., Diks K., Rytter W.: Algorytmy i struktury daych. WNT, Warszawa, 006 - Rozdz... ZłoŜoość obliczeiowa (str. 3-0) Baachowski L., Diks K., Rytter W.: Algorytmy i struktury daych. WNT, Warszawa, 006 - Rozdz..8. Metody układaia algorytmów (str. 40-4) Corme T.H., Leiserso Ch.E., Rivest R.L., Stei C.: Wprowadzeie do algorytmów. WNT, Warszawa, 005 - Rozdz.. Rola algorytmów w obliczeiach (str. 4-) Rok akademicki 007/008, Wykład r 8 3/8 Rok akademicki 007/008, Wykład r 8 3/8 Źródła a (KsiąŜ ąŝki): Źródła a (Iteret): Corme T.H., Leiserso Ch.E., Rivest R.L., Stei C.: Wprowadzeie do algorytmów. WNT, Warszawa, 005 - Rozdz..3. Projektowaie algorytmów (str. 7-36) Corme T.H., Leiserso Ch.E., Rivest R.L., Stei C.: Wprowadzeie do algorytmów. WNT, Warszawa, 005 - Rozdz. 4. Rekurecje (str. 60-87) Wróblewski P.: Algorytmy, struktury daych i techiki programowaia. Wydaie III, Helio, Gliwice, 003 - Rozdz.. Zaim wystartujemy (str. 9-8) Wróblewski P.: Algorytmy, struktury daych i techiki programowaia. Wydaie III, Helio, Gliwice, 003 - Rozdz.. Rekurecja (str. 9-5) Wróblewski P.: Algorytmy, struktury daych i techiki programowaia. Wydaie III, Helio, Gliwice, 003 - Rozdz. 9. Zaawasowae techiki programowaia (str. 09-7) http://pl.wikipedia.org/wiki/algorytm - Algorytm http://pl.wikipedia.org/wiki/dziel_i_zwyci%c4%99%c5%bcaj - Dziel i zwycięŝaj http://pl.wikipedia.org/wiki/programowaie_dyamicze - Programowaie dyamicze http://pl.wikipedia.org/wiki/algorytm_zach%c5%8ay - Algorytm zachłay http://pl.wikipedia.org/wiki/programowaie_liiowe - Programowaie liiowe http://pl.wikipedia.org/wiki/brute_force - Atak brute force http://pl.wikipedia.org/wiki/algorytm_probabilistyczy - Algorytm probabilistyczy http://pl.wikipedia.org/wiki/heurystyka - Heurystyka http://pl.wikipedia.org/wiki/rekurecja - Rekurecja http://pl.wikipedia.org/wiki/z%c5%8o%c5%bcoo%c5%9b%c4%87_obliczeiowa - ZłoŜoość obliczeiowa