Funkcja obliczajca wartoci elementów cigu Fibonacciego Cig Fibbonaciego: F(1)=1 F(2)=1 F(n)=F(n-1)+F(n-2) dla n>2

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

Programowanie dynamiczne (optymalizacja dynamiczna).



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

()*+,-. 01 ( 2 / / (:58; A B0((1C - D E D B FGHIJK % L?BMNO<=E)* I; P Q M RSC- 0,,,0 + 0 ( + TUVWXY X ; 4567 M Z[8"\)* M T U P Q ] ^_

Programowanie dynamiczne

Wstęp do programowania

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

Projektowanie algorytmów rekurencyjnych

Anatomia definicji rekursywnej. Anatomia definicji rekursywnej. int silnia(intn){ if(n==0) return 1; else return n*silnia(n-1); }

Algorytmy i struktury danych

Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne

ALGORYTMY I STRUKTURY DANYCH

Sprężyny naciągowe z drutu o przekroju okrągłym

GEOMETRIA PŁASZCZYZNY

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology

Bukiety matematyczne dla gimnazjum

PLANIMETRIA - TRÓJKATY (2) ZDANIA ŁATWE

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Podstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy

Macierze i Wyznaczniki

Zaprojektować i zaimplementować algorytm realizujący następujące zadanie.

Algorytmy i Struktury Danych

Opisy funkcji /html_node/libc_528.html

Matura próbna 2014 z matematyki-poziom podstawowy

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Metody komputerowe i obliczeniowe Metoda Elementów Skoczonych. Element jednowymiarowy i jednoparametrowy : spryna

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 3 - sem.iii. Dr inż. M. Czyżak

Marcin Różański Zastosowanie arkusza kalkulacyjnego w zadaniach matematycznych. Opiekun stypendysty: mgr Jerzy Mil

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków.

MODELOWANIE INŻYNIERSKIE ISNN X 32, s , Gliwice 2006

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

Sposoby przekazywania parametrów w metodach.

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

KLASA I LO Poziom podstawowy (styczeń) Treści nauczania wymagania szczegółowe:

Projektowanie i analiza algorytmów

Wielkopolskie Mecze Matematyczne

Programowanie dynamiczne

RACHUNEK PRAWDOPODOBIEŃSTWA WYKŁAD 5.

X. PODSTAWOWA MATEMATYKA REKONSTRUKCJI TOMOGRAFICZNYCH

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

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

Konkurs dla gimnazjalistów Etap II 5 luty 2013 roku

Języki i paradygmaty programowania

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

BINARNE MACIERZE PORÓWNA PARAMI. MO LIWO CI ZASTOSOWA W ZAGADNIENIACH WYZNACZANIA OCENY GRUPOWEJ.

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

Programowanie w C/C++ Instrukcje - konstrukcje powtórka. LABORKA Piotr Ciskowski

MODYFIKACJA KOSZTOWA ALGORYTMU JOHNSONA DO SZEREGOWANIA ZADAŃ BUDOWLANYCH

MECHANIKA OGÓLNA (II)

1 Macierz odwrotna metoda operacji elementarnych

Kuratorium Oświaty w Lublinie ZESTAW ZADAŃ KONKURSOWYCH Z MATEMATYKI DLA UCZNIÓW GIMNAZJUM ROK SZKOLNY 2014/2015 ETAP OKRĘGOWY. Instrukcja dla ucznia

Programowanie dynamiczne cz. 2

ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 2 POZIOM PODSTAWOWY. 1. x y x y

Układy równań nieliniowych (wielowymiarowa metoda Newtona-Raphsona) f(x) = 0, gdzie. dla n=2 np.

Ćwiczenie nr 35: Elektroliza

Wstęp do Programowania potok funkcyjny

Teoretyczne podstawy informatyki

Elementy języka Scheme

ARKUSZ PRÓBNEJ MATURY Z OPERONEM MATEMATYKA

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

A. fałszywa dla każdej liczby x.b. prawdziwa dla C. prawdziwa dla D. prawdziwa dla

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

KURS C/C++ WYKŁAD 8. Deklaracja funkcji informuje komplilator jaką wartość funkcja będzie zwracała i jakiego typu są jej argumenty.

Wstęp do programowania

Bukiety matematyczne dla gimnazjum

LINIA PRZESYŁOWA PRĄDU STAŁEGO

Zadanie domowe nr Odczytać zaszyfrowaną wiadomość (liczbę) jeżeli:

Klasa bazowa i klasy potomne - doskonalenie umiejtnoci projektowania i wykorzystania klas (45 min)

Wstęp do Programowania, laboratorium 02

Podstawy Programowania

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

Macierze i Wyznaczniki

Sprężyny naciskowe z drutu o przekroju okrągłym

Komputerowa symulacja doświadczenia Rutherforda (rozpraszanie cząstki klasycznej na potencjale centralnym

Katedra Elektrotechniki Teoretycznej i Informatyki. sem. II - wykład 6. Dr hab. inż. M. Czyżak

Zastosowanie teorii pierścieni w praktyce

Język C zajęcia nr 7. Uwagi dotyczące stylu programowania

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

ZL - STATYSTYKA - Zadania do oddania

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

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Wojewódzki Konkurs Matematyczny dla uczniów gimnazjów. rok szkolny 2016/2017. Etap III etap wojewódzki- klucz odpowiedzi

Wstęp do programowania

Algorytmy i język C++

Elementy geometrii w przestrzeni R 3

Algorytmy i Struktury Danych, 2. ćwiczenia

Planimetria Uczeń: a) stosuje zależności między kątem środkowym i kątem wpisanym, b) korzysta z własności stycznej do okręgu i własności okręgów

R w =

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

OCENIANIE ARKUSZA POZIOM ROZSZERZONY

KLUCZ PUNKTOWANIA ODPOWIEDZI

Egzamin maturalny z matematyki Poziom podstawowy ZADANIA ZAMKNIĘTE. W zadaniach 1-25 wybierz i zaznacz na karcie odpowiedzi poprawną odpowiedź.

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Transkrypt:

Teat: Pogaowanie dynaiczne. Pogaowanie dynaiczne Uycie stategii pogaowania dynaicznego polega na zapaitaniu w odpowiednie stutuze (naczcie tablicy) wyniów ozwizania podpobleów, na tóe został podzielony poble zasadniczy, uniac w ten sposób wielootnych oblicze dla tego saego podpobleu. Pogaowanie dynaiczne powadzi do całowite bd czciowe eliinaci euenci.. Cig Fibonacciego Funca obliczaca watoci eleentów cigu Fibonacciego Cig Fibbonaciego: F() F() F(n)F(n-)F(n-) dla n> Algoyt I (ozwizanie euencyne) int fib(int n) if (n) etun ; else etun fib(n-)fib(n-); } Koszt czasowy: O( n ) Koszt paiciowy: O(n) W funci fib powtaza si wywołania dla te sae watoci paaetu n. Na pzyład w wywołaniu fib() dwa azy powtaza si wywołanie fib(), tzy azy powtaza si wywołanie fib(). Powtazace si wywołania angau poceso, co powodue wzost złoonoci czasowe algoytu. Reody atywaci wywoła euencynych zwisza złoono paiciow algoytu.

Algoyt II (pogaowanie dynaiczne w wesi z tablic) int fib(int n) int f[n]; f[]f[]; fo (int i;in;i) f[i]f[i-]f[i-]; etun f[n]; } Koszt czasowy: O(n) Koszt paiciowy: O(n) Algoyt III (pogaowanie dynaiczne w wesi bez tablicy) int fib(int n) int a,b,c; fo (int i; in; i) cab; ab; bc; } etun c; } Koszt czasowy: O(n) Złoono paiciowa: O(). Poble optyalnego noenia aciezy WP : Cig aciezy:,,..., n, gdzie i est aciez o i wieszach i i olunach. WK : Wyniie est taie ozstawienie nawiasów w iloczynie... n, aby ilo wyonanych opeaci noenia pzy obliczaniu iloczynu aciezy była inialna. Rozia zadania: n Opeaca eleentana: obliczenie iloci wyonanych noe podczas opeaci wyznaczania iloczynu dwóch

aciezy. Na pzyład,,, [ ] [ ] [ ] [ ] Ogólnie, eeli noyy dwie acieze A [ p q] B [ q ] wyonywanych est pq noe.,, to I oleno: (( ) ( )) Ilo noe: oszt noenia aciezy oszt noenia aciezy oszt noenia aciezy II oleno: ( ( ( ))) ( ) Ilo noe: oszt noenia aciezy oszt noenia aciezy oszt noenia aciezy 7 Algoyt naiwny Rozway wszystie oliwe ustawienia nawiasów, obliczac dla ade oliwoci ilo wyonanych opeaci noenia. Liczba oliwych ustawie nawiasów X(n) w iloczynie wyaa si nastpuc zalenoci euencyn:... n X n n i dla n (*) X ( i) X ( n i ) dla n > ona poaza, e posta awna ównania (*) est nastpuca: n n... (n ) ( n )... (n ) X n n n n ( n )! ( n )! ona poaza, e: ( n ) ( n )... (n ) n ( n )!

Algoyt opaty na pogaowaniu dynaiczny Oznaczenie: i - inialny oszt obliczenia iloczynu aciezy i in i i... dla i ( ) i dla i i i n dla i i inialny oszt noenia aciezy i i... o oziaze i inialny oszt noenia aciezy... o oziaze oszt noenia aciezy o oziaze i i i Dla i wato i, i, i,..., -. Roziay aciezy uieszczay w tablicy R [,,...,, ] : n n. Watoci i zapaituey w tablicy dwuwyiaowe. Na pzyład niech n. Rozwaay iloczyn : acieze a nastpuce oziay: R : [ ], [ ], [ ], [ ] [,,,, ], gdzie

,,, in in in in in in }, in, in in }, in, in in

in ( ) in,, in,, } Czyli: Wynii: Optyalne ozstawienie nawiasów w iloczynie : ( ( ) ) Algoyt fo (i;in;i) ii : ; fo (t;tn-;t) fo (i;i n-t; i) it; i in( i i ); }; i Złoono pesyistyczna: T n n n... n n ax ona poaza, e T ( n) Θ( n ) ax. 6

. Poble optyalne tiangulaci wielota wypułego WP: v, v,..., v n- cig wiezchołów wielota wypułego W WK: T zbió nie pzecinacych si pzetnych wielota, dzielcych go na ozłczne tóty ta, e sua obwodów powstały tótów est naniesza. Algoyt wyozystucy pogaowanie dynaiczne Poble optyalnego noenia aciezy est szczególny pzypadie pobleu optyalne tiangulaci. Kady egzeplaz pobleu nawiasowania iloczynu aciezy ona sfoułowa ao ównowany egzeplaz pobleu optyalne tiangulaci.,,...,, n Cigowi oziaów aciezy odpowiada cig wiezchołów wielota v, v, v,..., v n. Wystaczy w algoytie ustalacy optyalne nawiasowanie iloczyn oziaów aciezy: i zastpi wywołanie funci obliczace obwód tóta v i, v, v. Wato i aciezy wyznaczone w algoytie optyalnego nawiasowania opowiada wyniowi optyalne tiangulaci wielota: v i, vi,..., v. 7

Odpowiedniie ozstawienia nawiasów w iloczynie aciezowy ( ( ) ) est nastpuca tiangulaca: v, v, v v ( ) ( ), v, v, v v v v v v 8