Metoda bisekcji (inaczej połowienia przedziału lub równych podziałów)

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

Download "Metoda bisekcji (inaczej połowienia przedziału lub równych podziałów)"

Transkrypt

1 Metoda bisekcji (inaczej połowienia przedziału lub równych podziałów) Metoda służy do wyznaczenia miejsca zerowego danej funkcji i polega na cyklicznym połowieniu zadanego z góry przedziału (w którym znajduje się pierwiastek) aż do osiągnięcia zadanej dokładności. Twierdzenie Jeżeli funkcja ciągła f(x) ma na końcach przedziału domkniętego wartości różnych znaków, to wewnątrz tego przedziału, istnieje co najmniej jeden pierwiastek równania f(x) = 0. Aby można było zastosować metodę, muszą być spełnione założenia: 1. funkcja f(x) jest ciągła w przedziale domkniętym [a; b] 2. funkcja przyjmuje różne znaki na końcach przedziału: f(a)f(b) < 0 1

2 Algorytm 1. Sprawdzamy, czy pierwiastkiem równania jest punkt s leżący w środku przedziału [a, b] (tj s=(a+b)/2), czyli czy f(s) = 0. Jeżeli tak jest, algorytm kończy się (znaleźliśmy rozwiązanie). 2. W przeciwnym razie s dzieli przedział [a, b] na dwa mniejsze przedziały: [a, s] oraz [s, b]. Wybierany jest ten przedział, dla którego spełnione jest drugie założenie, tzn. albo f(s)f(a) < 0 albo f(s)f(b) < 0. Cały proces powtarzany jest od punktu 1 dla wybranego przedziału i do osiągnięcia żądanej dokładności eps przybliżenia pierwiastka. 2

3 Algorytm (opis alternatywny) Pętla, wykonywana dopóki długość przedziału (b-a) jest większa od dokładności eps: Wylicz środek przedziału s = (a+b)/2 Jeżeli pierwiastkiem równania jest punkt s (tzn. jeżeli f(s) = 0), to wynik = s, zakończ pętlę W przeciwnym wypadku s dzieli przedział [a, b] na dwa mniejsze przedziały - [a, s] oraz [s, b]. Wybierany jest przedział z miejscem zerowym, tzn. jeżeli f(a)*f(s) < 0 to przypisz zmiennej b wartość s, a jeżeli f(s)*f(b) < 0 to przypisz zmiennej a wartość s. wynik = s 3

4 Wyszukiwanie Wejście: posortowana, n-elementowa tablica liczbowa T oraz liczba p. Wyjście: liczba naturalna, określająca pozycję elementu p w tablicy T, bądź 1, jeżeli element w tablicy nie występuje. Gdyby tablica T była nieposortowana, zastosowalibyśmy wyszukiwanie liniowe (przeszukiwanie całej tablicy od początku do końca). Koszt: O(n). Wyszukiwanie binarne Wyszukiwanie binarne polega na tropieniu fragmentu tablicy, o którym wiemy, że musi zawierać element p, o ile element ten znajduje się w tablicy T. Początkowo tym fragmentem jest cała tablica. Przedział kurczy się po porównaniu środkowego elementu ze zmienną p i odrzuceniu odpowiedniej połowy tego przedziału. Proces trwa do chwili odnalezienia p w tablicy lub do momentu, gdy wiadomo, że przedział, w którym musiałby się on znajdować, jest pusty. Złożoność obliczeniowa: O(log 2 n). 4

5 Sformułowanie algorytmu Wiemy, że jeżeli p znajduje się w gdziekolwiek w tablicy T, to musi być w określonym przedziale. Oznaczmy ten fakt skrótem: musi_być(przedział). Szkic programu: zainicjuj przedział jako 1...n pętla // niezmiennik: musi_być(przedział) jeżeli przedział pusty elementu p nie ma w tablicy T koniec oblicz wartość środek, środka przedziału użyj środek do testów, aby zmniejszyć przedział jeżeli p znaleziono podczas testu wynik = pozycja p w tablicy koniec 5

6 Przedział reprezentujemy przy pomocy dwóch indeksów: dół, góra. Oznaczenie musi_być(dół, góra) oznacza, że jeżeli element znajduje się gdzieś w tablicy, to znajduje się w przedziale domkniętym T[dół... góra]. Inicjowanie: jakie wartości muszą mieć zmienne góra i dół, aby warunek musi_być(dół, góra) był spełniony? Oczywiście 1 oraz n. A zatem: dół = 1 góra = n Następnie sprawdzamy, czy przedział jest pusty: jeżeli dół > góra wynik = -1 // elementu nie ma w tablicy koniec 6

7 Obliczamy wartość środka przedziału: środek = (dół + góra) div 2 // Dzielenie całkowite Szkic programu wygląda teraz tak: dół = 1 góra = n pętla // niezmiennik: musi_być(dół, góra) jeżeli dół > góra wynik = -1 koniec środek = (dół + góra) div 2 użyj środek do testów, aby zmniejszyć przedział [dół... góra] jeżeli p znaleziono podczas testu wynik = pozycja p w tablicy koniec 7

8 Teraz porównujemy p i T[środek] oraz podejmujemy odpowiednie działania w celu zachowania niezmiennika (4 ostatnie wiersze). Piszemy: jeżeli T[środek] < p: przypadek A jeżeli T[środek] == p: przypadek B jeżeli T[środek] > p: przypadek C Przypadek B oznacza, że znaleziono element: przypisujemy wynik = środek i kończymy program. Analiza przypadku A: Jeżeli T[środek] < p, to T[dół] T[dół+1]... T[środek] < p. Innymi słowy, p nie może znajdować się w przedziale T[dół... środek]. Zatem, jeżeli p znajduje się w tablicy T, to znajduje się w przedziale [środek góra], co zapisujemy: musi_być(środek + 1, góra). Przywracamy zatem prawdziwość niezmiennika musi_być(dół, góra) poprzez podstawienie: dół = środek

9 Analogicznie, w przypadku C przywracamy niezmiennik podstawiając: góra = środek 1. Ostateczna postać pseudokodu wyszukiwania binarnego: dół = 1 góra = n pętla // niezmiennik: musi_być(dół, góra) jeżeli dół > góra wynik = -1 koniec środek = (dół + góra) div 2 jeżeli T[środek] < p: dół = środek + 1 jeżeli T[środek] == p: wynik = środek; koniec jeżeli T[środek] > p: góra = środek - 1 9

10 Dowód poprawności algorytmu Metoda niezmienników Floyda (przypomnienie) wyróżnić newralgiczne punkty w algorytmie, określić warunki (niezmienniki), jakie mają być spełnione w każdym wyróżnionym punkcie, udowodnić poprawność kolejnych warunków, zakładając poprawność warunków poprzedzających, własność stopu udowodnić np. metodą liczników iteracji lub metodą malejących wielkości. 10

11 1. // musi_być(1, n) 2. dół = 1; góra = n 3. // musi_być(dół, góra) 4. pętla 5. // musi_być(dół, góra) 6. jeżeli dół > góra 7. // dół > góra i musi_być(dół, góra) 8. // p nie ma w tablicy T 9. wynik = -1; koniec pętli 10. // dół góra i musi_być(dół, góra) 11. środek = (dół + góra) div // dół środek góra i musi_być(dół, góra) 13. jeżeli T[środek] < p 14. // musi_być(dół, góra) i nie_może_być(dół, środek) 15. // musi_być(środek+1, góra) 16. dół = środek // musi_być(dół, góra) 18. jeżeli T[środek] == p 19. // T[środek] == p 20. wynik = środek; koniec pętli 21. jeżeli T[środek] > p 22. // musi_być(dół, góra) i nie_może_być(środek, góra) 23. // musi_być(dół, środek-1) 24. góra = środek // musi_być(dół, góra) 26. // musi_być(dół, góra) 11

12 Dowód poprawności algorytmu wyszukiwania binarnego będzie się składał się z 3 części: 1. Inicjowanie. Niezmiennik jest prawdziwy podczas pierwszego wykonania pętli. 2. Zachowanie prawdziwości niezmiennika. Jeżeli niezmiennik jest prawdziwy na początku iteracji i treść pętli zostanie wykonana, to niezmiennik pozostanie prawdziwy po jej zakończeniu. 3. Zakończenie. Pętla się skończy i da pożądany skutek (u nas: nadanie zmiennej wynik odpowiedniej wartości). 12

13 Szczegółowa analiza (uwaga nudne!). Prawdziwość warunku (asercji) z wiersza 1, czyli musi_byc(1,n), wynika z definicji tego warunku: jeśli p znajduje się w tablicy, to musi być w przedziale T[1...n]. Przypisania w wierszu 2 zapewniają więc prawdziwość asercji z wiersza 3, czyli musi_być(dół, góra). Inicjowanie pętli: wiemy, że asercja w wierszu 3 jest taka sama, jak w wierszu 5. Jeżeli przeprowadzimy odpowiednią analizę dla wierszy 6-26 będziemy wiedzieli, że prawdziwość niezmiennika jest w pętli zachowana, bo asercje w wierszach 5 i 26 są identyczne. Pozytywny wynik testu w wierszu 6 prowadzi do asercji w wierszu 7: jeśli p znajduje się gdziekolwiek w tablicy, to musi być między dół i góra dla dół < góra. Z tych warunków wynika wiersz 8: p nie ma w tablicy. Tak więc poprawnie kończymy pętlę w wierszu 9 po nadaniu zmiennej wynik wartości -1. Jeżeli test w wierszu 6 da wynik negatywny, to przechodzimy do wiersza 10. Niezmiennik jest nadal zachowany (nie zrobiliśmy nic, co mogłoby go zmienić), a w wyniku testu wiemy, że dół <= góra. Wiersz 11 to nadanie zmiennej środek wartości średniej z dół i góra, zaokrąglonej w dół do najbliższej liczby całkowitej. Ponieważ średnia zawsze znajduje się pomiędzy dwiema wartościami a zaokrąglenie nie zmniejszy jej poniżej dół, prawdziwa jest asercja w wierszu 12. Dowód poprawności instrukcji warunkowych w wierszach dotyczy każdego z trzech możliwych przypadków. Przypadek drugi (wiersz 18): ponieważ prawdziwa jest asercja z wiersza 19, nadanie zmiennej wynik wartości środek i zakończenie pętli są poprawne. To jest drugie miejsce, w którym pętla może się zakończyć. 13

14 Pozostałe przypadki (czyli pierwszy i trzeci) są symetryczne. Rozpatrzmy dla przykładu warunek z wierszy Pierwszy człon asercji z wiersza 22 nie został naruszony podczas działania programu. Drugi człon jest prawdziwy, bo p < T[środek] T[środek+1]... T[n] wiemy, że p nie może się znajdować w tablicy powyżej indeksu środek-1, co wyrażone zostało warunkiem nie_może_być(środek, góra). Logika podpowiada, że jeżeli p musi być między dół a góra, i nie może być pod indeksem środek ani wyżej, to musi być znajdować się między dół a środek-1 (o ile w ogóle się oczywiście w tablicy znajduje). Stąd się bierze wiersz 23. Wykonanie instrukcji z wiersza 24 przy prawdziwej asercji z wiersza 23, daje prawdziwość asercji w wierszu 25. Zatem niezmiennik w wierszu 26 pozostaje prawdziwy. Rozumowanie dla wierszy wygląda identycznie. Wykazaliśmy więc, że jeżeli pętla się kończy, to zmienna wynik ma właściwą wartość. Może się jednak pojawić pętla nieskończona. W dowodzie własności stopu wykorzystamy metodę malejących wielkości. Przedział dół... góra ma początkowy rozmiar n. Z wierszy 6-9 wynika, że pętla się skończy, jeżeli przedział zawiera mniej niż jeden element. Musimy więc wykazać, że przedział się zmniejsza przy każdym obiegu pętli. Na podstawie wiersza 12 wiemy, że środek znajduje się zawsze w bieżącym przedziale. Pierwsza i trzecia instrukcja warunkowa wykluczają indeks środek z bieżącego przedziału i w ten sposób zmniejszają jego rozmiar co najmniej o 1. A zatem pętla a co za tym idzie cały program musi się zatrzymać. 14

15 Generowanie podciągów Problem Na wejściu znajdują się dwie liczby całkowite m i n, gdzie m <= n. Wynikiem jest posortowana lista m losowych liczb całkowitych z przedziału 1... n, wśród których żadna nie powtarza się dwukrotnie. Algorytm nr 1 zwykłe wybieranie Generujemy m liczb pseudolosowych z przedziału 1... n. Po każdym losowaniu sprawdzamy, czy liczba się nie powtórzyła; w takim przypadku powtarzamy losowanie. Wylosowane liczby sortujemy wybraną metodą. Zalety: prosty, intuicyjny Wady: nieefektywny (szczególnie dla m n), konieczność sortowania wyników 15

16 Pseudokod: wczytaj m, n pętla od i=1 do m powtarzaj wygeneruj liczbę losową los z przedziału [1,n] jeżeli i > 1 to sprawdź, czy liczba los już wcześniej wystąpiła: wystąpiła = false pętla od j=1 do i-1 jeżeli W[j] == los wystąpiła = true zakończ pętlę jeżeli wystąpiła == true zapisz los do wyniku: W[i] = los posortuj tablicę W koniec 16

17 Algorytm nr 2 test losowy Algorytm analizuje kolejno liczby całkowite 1, 2,..., n i na podstawie odpowiedniego testu losowego decyduje, czy wybrać, czy też odrzucić każdą z nich. Oglądając liczby po kolei mamy pewność, że w wyniku otrzymamy ciąg posortowany. Rozważmy przykład, w którym m = 2 i n = 5. Powinniśmy wybrać liczbę 1 z prawdopodobieństwem 2/5; program powinien realizować to zadanie za pomocą instrukcji w rodzaju if RandReal(0,1) < 2/5 then... Niestety, nie możemy wybrać liczby 2 z tym samym prawdopodobieństwem: w wyniku takiego postępowania nie mielibyśmy pewności, że otrzymamy dokładnie 2 liczby spośród 5. Tak więc na następnej decyzji zaważy poprzedni wybór i decyzję na temat liczby 2 podejmiemy z prawdopodobieństwem 1/4, jeśli jedynka została wybrana i 2/4, jeśli wybrana nie została. Ogólnie, aby wylosować w liczb spośród p pozostałych, będziemy następną liczbę wybierać z prawdopodobieństwem w/p. 17

18 Zalety: oparty na solidnych podstawach matematycznych, wynik od razu posortowany. Wady: nieefektywny dla m «n Pseudokod: wczytaj m, n wybierz = m pozostało = n pętla od i=1 do n oblicz prawdopodobieństwo wylosowania i-tej liczby, prawd = wybierz / pozostało wygeneruj liczbę losową los z przedziału [0,1) jeżeli los < prawd wypisz i wybierz = wybierz 1 pozostało = pozostało - 1 koniec 18

19 Algorytm nr 3 przemieszanie Umieszczamy liczby z przedziału 1... n w n-elementowej tablicy T. Następnie mieszamy (czyli zamieniamy) pierwszych m elementów tablicy T z elementami 1... n tej samej tablicy (oczywiście, w szczególnym przypadku taka zamiana może nie nastąpić, gdy chcąc przemieszać i-tą liczbę wylosujemy właśnie liczbę i). Wynikiem (po posortowaniu) jest tablica złożona z pierwszych m przemieszanych elementów z tablicy T. Zalety: szybki (szczególnie dla m «n) Wady: wymaga użycia sortowania oraz pomocniczej tablicy 19

20 Pseudokod: wczytaj m, n utwórz tablicę T=[1,2,...,n]: pętla od i=1 do n T[i] = i pętla od i=1 do m wygeneruj liczbę losową los z przedziału [1,n] zamień T[i] z T[los] pętla od i=1 do m // Utwórz tablicę wynikową W = T[1,2,...,m] W[i] = T[i] posortuj tablicę W koniec 20

21 Problem komiwojażera Wejście: n punktów (miast), odległości pomiędzy miastami (d ij i, j = 1, 2,..., n); Wyjście: trasa komiwojażera przez wszystkie miasta (przy czym dopuszczalna jest tylko jedna wizyta w każdym mieście permutacja miast) o najmniejszej sumie odległości. Bardziej formalnie: znaleźć cykl w grafie o minimalnym całkowitym koszcie. Przykład: Miasta={Gdańsk, Warszawa, Poznań, Kraków}, Odległości={ {Gdańsk, Kraków}=700, {Gdańsk, Warszawa}=300, {Gdańsk, Poznań}=280, {Warszawa, Poznań}=320, {Warszawa, Kraków}=350, {Poznań, Kraków}=360}. Należy znaleźć najkrótszą trasę wychodzącą np. z Gdańska i przechodzącą jednokrotnie przez wszystkie pozostałe miasta i wracającą do Gdańska. 21

22 Złożoność obliczeniowa algorytmu bezpośredniego: O(n!) tyle tras jest do porównania. Powstały różne algorytmy usprawniające algorytm bezpośredni (programowanie liniowe, metody typu podział-ograniczenie itp.), ale nie udało się pokonać granicy O(2 n ). Istnieją też algorytmy heurystyczne, które rozwiązują problem w przybliżeniu, bez gwarancji, że otrzymane rozwiązanie jest optymalne. Najlepszy do chwili obecnej rezultat: rozwiązano problem miast przy użyciu programu CONCORDE (mieszanina metod dokładnych i heurystycznych, 2006 rok). Czas działania pojedynczego procesora dla otrzymania tego rozwiązania: ponad 136 lat. 22

23 Wieże Hanoi Zadanie polega na przeniesieniu wieży na inny pręt, z zachowaniem następujących reguł: jednorazowo można przenosić tylko jeden krążek dopuszczalne jest umieszczanie tylko mniejszego krążka na większym algorytm rekurencyjny złożoność O(2 n ) 23

24 Oznaczmy podstawki przez A, B, C, niech n oznacza liczbę krążków, ponumerujmy krążki od najmniejszego u góry do największego u dołu. W celu przeniesienia n krążków z A do B należy: przenieść n-1 krążków z A do C wówczas n-ty dysk samotnie pozostaje w A przenieść n-ty (największy krążek) z A do B przenieść n-1 krążków z C do B 24

Wyszukiwanie. Wyszukiwanie binarne

Wyszukiwanie. Wyszukiwanie binarne Wyszukiwanie Wejście: posortowana, n-elementowa tablica liczbowa T oraz liczba p. Wyjście: liczba naturalna, określająca pozycję elementu p w tablicy T, bądź 1, jeŝeli element w tablicy nie występuje.

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

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu 1 Metody rozwiązywania równań nieliniowych. Postawienie problemu Dla danej funkcji ciągłej f znaleźć wartości x, dla których f(x) = 0. (1) 2 Przedział izolacji pierwiastka Będziemy zakładać, że równanie

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

Efektywna metoda sortowania sortowanie przez scalanie

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

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Złożoność obliczeniowa, poprawność programów Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XII Jesień 2013 1 / 20 Złożoność obliczeniowa Problem Ile czasu

Bardziej szczegółowo

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. prof. dr hab.inż. Katarzyna Zakrzewska

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. prof. dr hab.inż. Katarzyna Zakrzewska METODY NUMERYCZNE Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą prof. dr hab.inż. Katarzyna Zakrzewska Met.Numer. Wykład 4 1 Rozwiązywanie równań nieliniowych z jedną niewiadomą

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Wykład 5 Podstawowe techniki programownia w przykładach Janusz Szwabiński Plan wykładu: Metoda babilońska wyliczania pierwiastka Liczby pierwsze i sito Eratostenesa Metoda bisekcji

Bardziej szczegółowo

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie: Ciągi rekurencyjne Zadanie 1 Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie: w dwóch przypadkach: dla i, oraz dla i. Wskazówka Należy poszukiwać rozwiązania w postaci, gdzie

Bardziej szczegółowo

Algorytmy sortujące i wyszukujące

Algorytmy sortujące i wyszukujące Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.

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

I. Podstawy języka C powtórka

I. Podstawy języka C powtórka I. Podstawy języka C powtórka Zadanie 1. Utwórz zmienne a = 730 (typu int), b = 106 (typu long long), c = 123.45 (typu double) Wypisz następujące komunikaty: Dane sa liczby: a = 730, b = 106 i c = 123.45.

Bardziej szczegółowo

Algorytmy i struktury danych Matematyka III sem.

Algorytmy i struktury danych Matematyka III sem. Algorytmy i struktury danych Matematyka III sem. 30 godz. wykł. / 15 godz. ćw. / 15 godz. projekt dr inŝ. Paweł Syty, 413GB, sylas@mif.pg.gda.pl, http://sylas.info Literatura T.H. Cormen i inni, Wprowadzenie

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 2. Poprawność algorytmów

Wykład 2. Poprawność algorytmów Wykład 2 Poprawność algorytmów 1 Przegląd Ø Poprawność algorytmów Ø Podstawy matematyczne: Przyrost funkcji i notacje asymptotyczne Sumowanie szeregów Indukcja matematyczna 2 Poprawność algorytmów Ø Algorytm

Bardziej szczegółowo

Algorytmy zrandomizowane

Algorytmy zrandomizowane Algorytmy zrandomizowane http://zajecia.jakubw.pl/nai ALGORYTMY ZRANDOMIZOWANE Algorytmy, których działanie uzależnione jest od czynników losowych. Algorytmy typu Monte Carlo: dają (po pewnym czasie) wynik

Bardziej szczegółowo

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for. Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9

Bardziej szczegółowo

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym

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

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności

Bardziej szczegółowo

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Patryk Żywica 5 maja 2008 1 Spis treści 1 Problem wydawania reszty 3 1.1 Sformułowanie problemu...................... 3 1.2 Algorytm.............................. 3 1.2.1 Prosty

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

Poprawność algorytmów

Poprawność algorytmów Poprawność algorytmów Jeśli uważasz, że jakiś program komputerowy jest bezbłędny, to się mylisz - po prostu nie zauważyłeś jeszcze skutków błędu, który jest w nim zawarty. Jakie błędy można popełnić? Błędy

Bardziej szczegółowo

Podstawy Informatyki. Sprawność algorytmów

Podstawy Informatyki. Sprawność algorytmów Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych

Bardziej szczegółowo

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. Rozwiązywanie równań nieliniowych z jedną niewiadomą

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. Rozwiązywanie równań nieliniowych z jedną niewiadomą METODY NUMERYCZNE Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą dr hab.inż. Katarzyna Zakrzewska, prof.agh Met.Numer. Wykład 4 1 Rozwiązywanie równań nieliniowych z jedną niewiadomą

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 1. Optymalizacja funkcji jednej zmiennej Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 28.02.2019 1 / 54 Plan wykładu Optymalizacja funkcji jednej

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

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

Bardziej szczegółowo

Liczby całkowite i rzeczywiste

Liczby całkowite i rzeczywiste Wykład 4(20 marzec 2014r.) Liczby całkowite i rzeczywiste Paulina Rogowiecka Klaudia Kamińska Adrianna Znyk 1 Spis treści: Czynniki pierwsze metoda próbnych dzieleń Pierwszość liczby naturalnej algorytmy

Bardziej szczegółowo

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Podstawowe algorytmy i ich implementacje w C. Wykład 9 Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny

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

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

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny ALGORYMY Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu

Bardziej szczegółowo

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności

Bardziej szczegółowo

1 Równania nieliniowe

1 Równania nieliniowe 1 Równania nieliniowe 1.1 Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym jest numeryczne poszukiwanie rozwiązań równań nieliniowych, np. algebraicznych (wielomiany),

Bardziej szczegółowo

Obliczenia iteracyjne

Obliczenia iteracyjne Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej

Bardziej szczegółowo

Konstrukcje warunkowe Pętle

Konstrukcje warunkowe Pętle * Konstrukcje warunkowe Pętle *Instrukcja if sposób na sprawdzanie warunków *Konstrukcja: if(warunek) else { instrukcje gdy warunek spełniony} {instrukcje gdy warunek NIE spełniony} * 1. Wylicz całkowity

Bardziej szczegółowo

Laboratorium nr 7 Sortowanie

Laboratorium nr 7 Sortowanie Laboratorium nr 7 Sortowanie 1. Sortowanie bąbelkowe (BbS) 2. Sortowanie przez wstawianie (IS) 3. Sortowanie przez wybieranie (SS) Materiały Wyróżniamy następujące metody sortowania: 1. Przez prostą zamianę

Bardziej szczegółowo

Zadanie 1. Korale (8 pkt) Rozważamy następującą rekurencyjną procedurę Korale, której parametrem jest dodatnia liczba całkowita n.

Zadanie 1. Korale (8 pkt) Rozważamy następującą rekurencyjną procedurę Korale, której parametrem jest dodatnia liczba całkowita n. Zadanie 1. Korale (8 pkt) Rozważamy następującą rekurencyjną procedurę Korale, której parametrem jest dodatnia liczba całkowita n. Korale(n) 1. Jeżeli n = 1, to 1.1. nawlecz czarny koralik na prawy koniec

Bardziej szczegółowo

Pochodna funkcji odwrotnej

Pochodna funkcji odwrotnej Pochodna funkcji odwrotnej Niech będzie dana w przedziale funkcja różniczkowalna i różnowartościowa. Wiadomo, że istnieje wówczas funkcja odwrotna (którą oznaczymy tu : ), ciągła w przedziale (lub zależnie

Bardziej szczegółowo

Podyplomowe Studium Informatyki

Podyplomowe Studium Informatyki Podyplomowe Studium Informatyki Wstęp do informatyki 30 godz. wykładu dr inż. Paweł Syty, 413GB, sylas@mif.pg.gda.pl, http://sylas.info Literatura D. Harel, Rzecz o istocie informatyki. Algorytmika, WNT

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

lekcja 8a Gry komputerowe MasterMind

lekcja 8a Gry komputerowe MasterMind lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych

Bardziej szczegółowo

Sortowanie Shella Shell Sort

Sortowanie Shella Shell Sort Sortowanie Shella Shell Sort W latach 50-tych ubiegłego wieku informatyk Donald Shell zauważył, iż algorytm sortowania przez wstawianie pracuje bardzo efektywnie w przypadku gdy zbiór jest w dużym stopniu

Bardziej szczegółowo

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

Rekurencja. Przykład. Rozważmy ciąg Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu

Bardziej szczegółowo

Zadanie 3 Oblicz jeżeli wiadomo, że liczby 8 2,, 1, , tworzą ciąg arytmetyczny. Wyznacz różnicę ciągu. Rozwiązanie:

Zadanie 3 Oblicz jeżeli wiadomo, że liczby 8 2,, 1, , tworzą ciąg arytmetyczny. Wyznacz różnicę ciągu. Rozwiązanie: Zadanie 3 Oblicz jeżeli wiadomo, że liczby 8 2,, 1, 6 11 6 11, tworzą ciąg arytmetyczny. Wyznacz różnicę ciągu. Uprośćmy najpierw liczby dane w treści zadania: 8 2, 2 2 2 2 2 2 6 11 6 11 6 11 26 11 6 11

Bardziej szczegółowo

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów W ramach zajęć oprogramujemy jedną, wybraną metodę numeryczną: metodę bisekcji numerycznego rozwiązywania równania nieliniowego

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

Wybrane metody przybliżonego. wyznaczania rozwiązań (pierwiastków) równań nieliniowych

Wybrane metody przybliżonego. wyznaczania rozwiązań (pierwiastków) równań nieliniowych Wykład trzeci 1 Wybrane metody przybliżonego wyznaczania rozwiązań pierwiastków równań nieliniowych 2 Metody rozwiązywania równań nieliniowych = 0 jest unkcją rzeczywistą zmiennej rzeczywistej Rozwiązanie

Bardziej szczegółowo

Możliwości i ograniczenia komputerów

Możliwości i ograniczenia komputerów Możliwości i ograniczenia komputerów Komputer potrafi przeanalizować ogromną ilość danych pochodzących np. z wielu zdjęć rentgenowskich ludzkiego mózgu wykonanych pod stopniowo zwiększanym kątem, tworząc

Bardziej szczegółowo

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie. Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy

Bardziej szczegółowo

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony. Iteracje Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony. Iteracja inaczej zwana jest pętlą i oznacza wielokrotne wykonywanie instrukcji. Iteracje

Bardziej szczegółowo

Propozycje rozwiązań zadań otwartych z próbnej matury rozszerzonej przygotowanej przez OPERON.

Propozycje rozwiązań zadań otwartych z próbnej matury rozszerzonej przygotowanej przez OPERON. Propozycje rozwiązań zadań otwartych z próbnej matury rozszerzonej przygotowanej przez OPERON. Zadanie 6. Dane są punkty A=(5; 2); B=(1; -3); C=(-2; -8). Oblicz odległość punktu A od prostej l przechodzącej

Bardziej szczegółowo

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Załóżmy, że uprawiamy jogging i chcemy monitorować swoje postępy. W tym celu napiszemy program, który zlicza, ile czasu

Bardziej szczegółowo

Metody numeryczne. dr Artur Woike. Ćwiczenia nr 2. Rozwiązywanie równań nieliniowych metody połowienia, regula falsi i siecznych.

Metody numeryczne. dr Artur Woike. Ćwiczenia nr 2. Rozwiązywanie równań nieliniowych metody połowienia, regula falsi i siecznych. Ćwiczenia nr 2 metody połowienia, regula falsi i siecznych. Sformułowanie zagadnienia Niech będzie dane równanie postaci f (x) = 0, gdzie f jest pewną funkcją nieliniową (jeżeli f jest liniowa to zagadnienie

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Metody numeryczne. materiały do wykładu dla studentów

Metody numeryczne. materiały do wykładu dla studentów Metody numeryczne materiały do wykładu dla studentów 5. Przybliżone metody rozwiązywania równań 5.1 Lokalizacja pierwiastków 5.2 Metoda bisekcji 5.3 Metoda iteracji 5.4 Metoda stycznych (Newtona) 5.5 Metoda

Bardziej szczegółowo

Podstawy Informatyki. Algorytmy i ich poprawność

Podstawy Informatyki. Algorytmy i ich poprawność Podstawy Informatyki Algorytmy i ich poprawność Błędy Błędy: językowe logiczne Błędy językowe Związane ze składnią języka Wykrywane automatycznie przez kompilator lub interpreter Prosty sposób usuwania

Bardziej szczegółowo

Metody numeryczne w przykładach

Metody numeryczne w przykładach Metody numeryczne w przykładach Bartosz Ziemkiewicz Wydział Matematyki i Informatyki UMK, Toruń Regionalne Koło Matematyczne 8 kwietnia 2010 r. Bartosz Ziemkiewicz (WMiI UMK) Metody numeryczne w przykładach

Bardziej szczegółowo

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać ogólna równania nieliniowego Zazwyczaj nie można znaleźć

Bardziej szczegółowo

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę

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

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH Jednym z zastosowań metod numerycznych jest wyznaczenie pierwiastka lub pierwiastków równania nieliniowego. W tym celu stosuje się szereg metod obliczeniowych np:

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

FUNKCJE I RÓWNANIA KWADRATOWE. Lekcja 78. Pojęcie i wykres funkcji kwadratowej str

FUNKCJE I RÓWNANIA KWADRATOWE. Lekcja 78. Pojęcie i wykres funkcji kwadratowej str FUNKCJE I RÓWNANIA KWADRATOWE Lekcja 78. Pojęcie i wykres funkcji kwadratowej str. 178-180. Funkcja kwadratowa to taka, której wykresem jest parabola. Definicja Funkcją kwadratową nazywamy funkcje postaci

Bardziej szczegółowo

Podstawy Informatyki. Metalurgia, I rok. Rekurencja. skomplikowane zadanie. Rekurencja

Podstawy Informatyki. Metalurgia, I rok. Rekurencja. skomplikowane zadanie. Rekurencja Podstawy Informatyki Metalurgia, I rok 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 Małe dziecko otrzymuje polecenie

Bardziej szczegółowo

Podstawy Informatyki. Metalurgia, I rok. Wykład 5 Rekurencja

Podstawy Informatyki. Metalurgia, I rok. Wykład 5 Rekurencja Podstawy Informatyki Metalurgia, I rok Wykład 5 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: Małe

Bardziej szczegółowo

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0, 2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d

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

Algorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe

Algorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe Algorytmy sortujące sortowanie kubełkowe, sortowanie grzebieniowe Sortowanie kubełkowe (bucket sort) Jest to jeden z najbardziej popularnych algorytmów sortowania. Został wynaleziony w 1956 r. przez E.J.

Bardziej szczegółowo

Pętle instrukcje powtórzeo

Pętle instrukcje powtórzeo Pętle instrukcje powtórzeo Pętle - zbiór instrukcji, które należy wykonad wielokrotnie. Program dyktuje: - ile razy pętla ta wykona zawarty w niej blok instrukcji - jakie mają byd warunki zakooczenia jej

Bardziej szczegółowo

Kubatury Gaussa (całka podwójna po trójkącie)

Kubatury Gaussa (całka podwójna po trójkącie) Kubatury Gaussa (całka podwójna po trójkącie) Całka podwójna po trójkącie Dana jest funkcja dwóch zmiennych f (x, y) ciągła i ograniczona w obszarze trójkątnym D. Wierzchołki trójkąta wyznaczają punkty

Bardziej szczegółowo

FUNKCJA LINIOWA - WYKRES

FUNKCJA LINIOWA - WYKRES FUNKCJA LINIOWA - WYKRES Wzór funkcji liniowej (Postać kierunkowa) Funkcja liniowa jest podstawowym typem funkcji. Jest to funkcja o wzorze: y = ax + b a i b to współczynniki funkcji, które mają wartości

Bardziej szczegółowo

RÓWNANIA NIELINIOWE Maciej Patan

RÓWNANIA NIELINIOWE Maciej Patan RÓWNANIA NIELINIOWE Maciej Patan Uniwersytet Zielonogórski Przykład 1 Prędkość v spadającego spadochroniarza wyraża się zależnością v = mg ( 1 e c t) m c gdzie g = 9.81 m/s 2. Dla współczynnika oporu c

Bardziej szczegółowo

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH Transport, studia I stopnia Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym

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

Algorytm simplex i dualność

Algorytm simplex i dualność Algorytm simplex i dualność Łukasz Kowalik Instytut Informatyki, Uniwersytet Warszawski April 15, 2016 Łukasz Kowalik (UW) LP April 15, 2016 1 / 35 Przypomnienie 1 Wierzchołkiem wielościanu P nazywamy

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym. ZESTAWY A Zestaw 1 Organizacja plików: Wszystkie pliki oddawane do sprawdzenia nale»y zapisa we wspólnym folderze o nazwie b d cej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko ¹ródªa programów

Bardziej szczegółowo

Metody rozwiązywania równań nieliniowych

Metody rozwiązywania równań nieliniowych Metody rozwiązywania równań nieliniowych Rozwiązywanie równań nieliniowych Ogólnie równanie o jednej niewiadomej x można przedstawić w postaci f ( x)=0, x R, (1) gdzie f jest wystarczająco regularną funkcją.

Bardziej szczegółowo

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst. Schematy blokowe I Jeżeli po schematach blokowych będzie używany język C, to należy używać operatorów: '&&', ' ', '!=', '%' natomiast jeśli Ruby to 'and', 'or', '%', '!='. 1. Dostępne bloki: a) początek:

Bardziej szczegółowo

Definicja i własności wartości bezwzględnej.

Definicja i własności wartości bezwzględnej. Równania i nierówności z wartością bezwzględną. Rozwiązywanie układów dwóch (trzech) równań z dwiema (trzema) niewiadomymi. Układy równań liniowych z parametrem, analiza rozwiązań. Definicja i własności

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

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

Rozwiązywanie równań nieliniowych

Rozwiązywanie równań nieliniowych Rozwiązywanie równań nieliniowych Marcin Orchel 1 Wstęp Przykłady wyznaczania miejsc zerowych funkcji f : f(ξ) = 0. Wyszukiwanie miejsc zerowych wielomianu n-tego stopnia. Wymiar tej przestrzeni wektorowej

Bardziej szczegółowo

Arkusz maturalny nr 2 poziom podstawowy ZADANIA ZAMKNIĘTE. Rozwiązania. Wartość bezwzględna jest odległością na osi liczbowej.

Arkusz maturalny nr 2 poziom podstawowy ZADANIA ZAMKNIĘTE. Rozwiązania. Wartość bezwzględna jest odległością na osi liczbowej. Arkusz maturalny nr 2 poziom podstawowy ZADANIA ZAMKNIĘTE Rozwiązania Zadanie 1 Wartość bezwzględna jest odległością na osi liczbowej. Stop Istnieje wzajemnie jednoznaczne przyporządkowanie między punktami

Bardziej szczegółowo

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a); Ciała i wielomiany 1 Ciała i wielomiany 1 Definicja ciała Niech F będzie zbiorem, i niech + ( dodawanie ) oraz ( mnożenie ) będą działaniami na zbiorze F. Definicja. Zbiór F wraz z działaniami + i nazywamy

Bardziej szczegółowo

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych. Jarosław Wróblewski Matematyka dla Myślących, 008/09. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych. 15 listopada 008 r. Uwaga: Przyjmujemy,

Bardziej szczegółowo

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

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

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2014 POZIOM ROZSZERZONY CZĘŚĆ I WYBRANE: Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 201 KOD WPISUJE ZDAJĄCY PESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY

Bardziej szczegółowo

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;( Zad Przedstaw funkcję kwadratową w postaci ogólnej Przykład y = ( x ) + 5 (postać kanoniczna) FUNKCJA KWADRATOWA Postać ogólna funkcji kwadratowej to: y = ax + bx + c;( a 0) Aby ją uzyskać pozbywamy się

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

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

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

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

Analiza algorytmów zadania podstawowe Analiza algorytmów zadania podstawowe 15 stycznia 2019 Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r P Jaka wartość zostanie zwrócona

Bardziej szczegółowo

Sortowanie przez wstawianie Insertion Sort

Sortowanie przez wstawianie Insertion Sort Sortowanie przez wstawianie Insertion Sort Algorytm sortowania przez wstawianie można porównać do sposobu układania kart pobieranych z talii. Najpierw bierzemy pierwszą kartę. Następnie pobieramy kolejne,

Bardziej szczegółowo

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:

Bardziej szczegółowo

WYKŁAD 3 WYPEŁNIANIE OBSZARÓW. Plan wykładu: 1. Wypełnianie wieloboku

WYKŁAD 3 WYPEŁNIANIE OBSZARÓW. Plan wykładu: 1. Wypełnianie wieloboku WYKŁ 3 WYPŁNINI OSZRÓW. Wypełnianie wieloboku Zasada parzystości: Prosta, która nie przechodzi przez wierzchołek przecina wielobok parzystą ilość razy. Plan wykładu: Wypełnianie wieloboku Wypełnianie konturu

Bardziej szczegółowo

Materiały: kartki papieru (5 x 5 kolorów), piłeczki pingpongowe (5 x 5 kolorów), worek (nieprzeźroczysty).

Materiały: kartki papieru (5 x 5 kolorów), piłeczki pingpongowe (5 x 5 kolorów), worek (nieprzeźroczysty). Pudełkowy komputer Materiały: kartki papieru (5 x 5 kolorów), piłeczki pingpongowe (5 x 5 kolorów), worek (nieprzeźroczysty). Budowa komputera: każdy uczeń składa proste pudełko metodą orgiami Zobacz:

Bardziej szczegółowo

Zagadnienia - równania nieliniowe

Zagadnienia - równania nieliniowe Zagadnienia - równania nieliniowe Sformułowanie zadania poszukiwania pierwiastków. Przedział izolacji. Twierdzenia o istnieniu pierwiastków. Warunki zatrzymywania algorytmów. Metoda połowienia: założenia,

Bardziej szczegółowo

Podyplomowe Studium Programowania i Systemów Baz Danych

Podyplomowe Studium Programowania i Systemów Baz Danych Podyplomowe Studium Programowania i Systemów Baz Danych Algorytmy, struktury danych i techniki programowania 15 godz. wykładu / 15 godz. laboratorium dr inż. Paweł Syty, 413GB, sylas@mif.pg.gda.pl, http://sylas.info

Bardziej szczegółowo