Obrazy rekurencyjne. Zastosowanie rekurencji w algorytmice. AUTOR: Martin Śniegoń
|
|
- Krzysztof Borowski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Obrazy rekurencyjne Zastosowanie rekurencji w algorytmice AUTOR: Martin Śniegoń
2 Zdolność procedury/funkcji do wywoływania samej siebie Podstawowa i jedna z najważniejszych technik programistycznych Umożliwia rozkładanie problemów większych na mniejsze, w analogiczny sposób Jasno określone warunki zakończenia funkcji rekurencyjnej Dlaczego rekurencja?
3 Krótszy i bardziej przejrzysty zapis kodu źródłowego na wszystkich etapach rozwoju aplikacji Ułatwione dowodzenie poprawności algorytmu, a także obliczanie złożoności Zminimalizowane ryzyko popełnienia błędu podczas konstruowania algorytmu Zalety rekurencji
4 Ryzyko braku optymalnego rozwiązania problemu algorytmicznego (np. niewłaściwie zastosowana rekurencja znacząco podnosi złożoność algorytmu) Błędy programistyczne podczas określania warunków zakończenia rekurencji Brak wsparcia sprzętowego w typowych językach programistycznych (wyjątkiem są języki funkcyjne typu Haskell, F#) Czy rekurencja ma wady?
5 Zasada zastępowania rekurencji iteracją, gdzie tylko jest to możliwe Wielokrotne wywołanie, a kwestia przepełnienia stosu Brak obliczeń częściowych (problem przechowywania danych) Zmiana środowiska programistycznego celem poprawy wydajności Rozwiązywanie problemów związanych z rekursją
6 Względnie prosty schemat generowania grafiki, a także mniejszy rozmiar obrazu Możliwość ustalenia za pomocą dodatkowej zmiennej dokładności wyświetlanej ilustracji (im większa liczba wywołań funkcji rekurencyjnej, tym dokładniejszy obraz) Łatwe wykrywanie kolizji, a także punktów należących do obrazu Zalety obrazów rekurencyjnych
7 Uzyskiwanie nietypowych, realnych kształtów, figur czy obiektów Niejednolite elementy graficzne Tylko samopodobne, powtarzające się fragmenty Problemy z projektowaniem algorytmów tworzących skomplikowane ilustracje Ograniczenia obrazów tworzonych rekurencyjnie
8 Definicja (brak ścisłego określenia) Zbiór minimum kilku następujących cech: Nietrywialna struktura w dowolnej skali Względnie prosta reguła powstawania (rek.) Samopodobieństwo (niekoniecznie dokładne) Wymiar Hausdorfa > wymiar topograficzny Naturalny wygląd (często poszarpany) Struktura trudna do opisania w geometrii euklidesowej Czym jest fraktal?
9 Atraktory IFS (iterated function system), czyli fraktale generowane za pomocą odpowiednich funkcji rekurencyjnychiterowanych (możliwość określenia ilości kroków do wykonania) Zbiory i funkcje określone na liczbach zespolonych (typowe przykłady to zbiór Julii i Mandelbrota) Powstawanie fraktali
10 Przykładowe fraktale (mat.)
11 Przykładowe fraktale (grafika)
12 Przykładowe fraktale (świat)
13 Konstrukcja W kroku pierwszym ustalamy wymiary (współrzędne wierzchołków trójkąta równobocznego) figury Następnie wyliczamy środki wszystkich boków Trójkąt zbudowany na środkach tych boków kolorujemy na ustaloną barwę Dla pozostałych trzech trójkątów wywołujemy funkcje rekurencyjne Dodatkowa zmienna przekazywana jako parametr określa ilość kroków rekurencji Trójkąt Sierpińskiego
14 Uszczelka Sierpińskiego (ilustracja)
15 Konstrukcja W pierwszym kroku określamy kwadrat i jego wierzchołki za pomocą współrzędnych Kolejno każdy bok dzielimy na 3 równe części, w taki sposób, że środkowy kwadrat jest kolorowany Dla pozostałych 8 kwadratów wywołujemy rekurencyjnie tę samą funkcję podziału i kolorowania W implementacji musimy pamiętać o określeniu liczby wywołań rekursji (często warunki brzegowe są określane wg widoczności obrazu i dopasowywane do rozdzielczości) Dywan Sierpińskiego
16 Dywan Sierpińskiego
17 WZÓR (wymiar fraktalny): Uproszczony model n * s r = 1, gdzie n oznacza liczbę wywołań rekurencyjnych (liczba atraktorów obrazu głównego), s oznacza skalę podobieństwa kolejnego atraktora w stosunku do poprzednika, a r jest szukanym wymiarem Udowodnić można, że wymiar fraktalny dywanu Sierpińskiego wynosi ok. 1,8928 Pole dywanu (a także innych prostych figur, w których wycinane są pewne elementy w sposób regularny) wynosi 0 Dywan Sierpińskiego (obliczenia)
18 Ciekawostkę stanowi również odmienna strategia generowania figur rekurencyjnych, tzw. gra w chaos Polega ona na losowym wybieraniu odpowiednich punktów i łączeniu ich w taki sposób, aby powstał fraktal Trójkąt Sierpińskiego można otrzymać w ten sposób, a początkowe punkty są losowane zamiast definiowane (trójkąt nie musi być równoboczny) Gra w chaos
19 Kluczowym elementem płatku Kocha jest połączenie trzech odcinków (w kolejnych krokach krzywych) w trójkąt równoboczny, który stanowi podstawę płatka (im więcej kroków tym bardziej przypomina płatek śniegu) Każdy krok oznacza zmniejszenie pojedynczego odcinka w skali 1/3 w stosunku do poprzedniego kroku Krzywa i płatek Kocha
20 Krzywa Kocha
21 Chcąc wykonać krzywą Kocha należy zadbać o wykonanie odpowiedniej sekwencji wywołań rekurencyjnych Rysowanie odbywa się w najniższej wywołanej funkcji rekurencyjnej Obroty są wykonywane w każdym wywołaniu rekursywnym Alternatywny sposób generowania płatku Kocha za pomocą trójkątów równobocznych nie stanowi optymalnego rozwiązania Krzywa Kocha - generowanie
22 Kolejne kroki tworzenia krzywej Sierpińskiego Warto zwrócić uwagę na powtarzający się schemat: -Krzywa tworzy zamknięty zbiór punktów na płaszczyźnie - Domknięcia występują zawsze w tych samych miejscach (narożniki: góra po prawej, dół po prawej, dół po lewej, góra po lewej) - Rysowanie odbywa się wg kolejności narożników, które rysowane są tylko w głównym wywołaniu procedury Krzywa Sierpińskiego
23 Warto zwrócić uwagę na 4 kawałki powtarzające się podczas rysowania: Oznaczmy jako A Oznaczmy jako C Oznaczmy jako B Oznaczmy jako D Krzywa Sierpińskiego
24 Figura: An Bn Cn Dn Powyższe strzałki oznaczają domknięcia Elementy An, Bn, Cn i Dn oznaczają odpowiednio fragmenty rysunku wykonane z dokładnością do n kroków: górnej, prawej, dolnej i lewej części Należy zdefiniować rekurencyjnie An, Bn, Cn i Dn, aby krzywa mogła powstać Krzywa Sierpińskiego (algorytm)
25 An = An-1 Bn-1 Dn-1 An-1 Bn = Bn-1 Cn-1 An-1 Bn-1 Cn = Cn-1 Dn-1 Bn-1 Cn-1 Dn = Dn-1 An-1 Cn-1 Dn-1 Zauważyć należy, iż długość odcinków, z których składa się krzywa określamy na początku lub uzależniamy od liczby kroków rekurencji Rysowanie zaczyna się od górnej lewej strony, a nie od środka! Krzywa Sierpińskiego (def. rek.)
26 Krzywa Hilberta
27 Krzywa składa się z 4 fragmentów (niedomkniętych kwadratów, odpowiednio obróconych względem pustego boku) Aby otrzymać kolejny krok rekurencyjny należy skleić powyższe 4 fragmenty w 3 miejscach (łączenie następuje zawsze po lewej stronie, u góry i po prawej) Ciekawostkę stanowi fakt, że krzywa Hilberta wypełnia całą powierzchnię po n- krokach Krzywa Hilberta (budowa)
28 Krzywa Hilberta (obserwacje)
29 Krzywa Hilberta (schemat)
30 Zgodnie z ustalonym porządkiem łączenia (można wybrać inną kolejność i zmodyfikować nieznacznie algorytm): Zaczynamy rysowanie figury Cn, po którym następuje łączenie w górę z kolejnym elementem krzywej Bn, po którym następuje łączenie w prawo Bn, po którym następuje łączenie w dół An, które kończy rysowanie W kolejnych krokach rekurencyjnych dochodzi element Dn (wstawiany w odpowiednie miejsce, schemat powstał w oparciu 3 kroki r.) Krzywa Hilberta (rysowanie)
31 Program KrzyweHilberta () Const n = 5; h = 100; Var i, h, x, y, x0, y0; procedure A(i) if i>0 then begin D(i-1); x:=x - h; A(i-1); y:=y - h; A(i-1); x:=x + h; B(i-1); end procedure B(i) if i>0 then begin C(i-1); y:=y + h; B(i-1); x:=x + h; B(i-1); y:=y h; A(i-1); end procedure C(i) if i>0 then begin B(i-1); x:=x + h; C(i-1); y:=y + h; C(i-1); x:=x h; D(i-1); end procedure D(i) if i>0 then begin A(i-1); y:=y - h; D(i-1); x:=x - h; D(i-1); y:=y + h; C(i-1); end begin i := 0; h:= h0; x0 := h/2; y0 := x0; repeat i := i + 1; h := h/2; x0 := x0 - h/2; y0 := y0 - h/2; x := x0; y := y0; UstawPioro(x,y); B(i); until i = n; end Krzywa Hilberta (kod źródłowy)
32 W kodzie źródłowym rysujemy n- początkowych krzywych Hilberta Poza zaprogramowaniem wywołań rekurencyjnych, należy zwrócić uwagę na początek rysowania (ustawienie kursora w początkowym położeniu, aby w trakcie rysowania nie wyjść poza ustalony obszar) Funkcja UstawPioro rozpoczyna rysowanie, a pisak porusza się zgodnie z wytycznymi w poszczególnych procedurach po osi X i Y Krzywa Hilberta (komentarz)
33 Istnieją alternatywne algorytmy tworzenia tych samych lub podobnych fraktali (najczęściej wybiera się optymalny) Z definicji fraktale są nieskończone, ale na potrzeby algorytmów zawsze określa się moment stopu (określone n, albo rozmiar najmniejszej części) Złożoność obliczeniowa podanych przykładów jest rzędu wykładniczego (z tego powodu nie wykonuje się bardzo wielu kroków rekurencyjnych) Podsumowanie
34 W wielu algorytmach tworzących fraktale wykorzystuje się metodę gry w chaos Powyższa technika pozwala na szersze zastosowanie iteracji i otrzymanie zadowalających rezultatów przy stosunkowo niewielkiej liczbie obliczeń (zalecane zwłaszcza dla bardzo rozbudowanych i nietypowych fraktali) Większość fraktali ma wymiar podobieństwa (fraktalny) z przedziału (1;2). Wymiar ten jest zawsze >0 Podsumowanie c.d.
35 Podziękowania DZIĘKUJĘ ZA UWAGĘ!
FRAKTALE I SAMOPODOBIEŃSTWO
FRAKTALE I SAMOPODOBIEŃSTWO Mariusz Gromada marzec 2003 mariusz.gromada@wp.pl http://multifraktal.net 1 Wstęp Fraktalem nazywamy każdy zbiór, dla którego wymiar Hausdorffa-Besicovitcha (tzw. wymiar fraktalny)
Bardziej szczegółowoProjekt współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego
Wstęp Rekurencja jest to wywołanie podprogramu (procedury) samej przez siebie. W logo zapis rekurencji będzie wyglądał następująco: oto nazwa_funkcji czynności_wykonywane_przez_procedurę nazwa_funkcji
Bardziej szczegółowoZadania domowe. Ćwiczenie 2. Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL
Zadania domowe Ćwiczenie 2 Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL Zadanie 2.1 Fraktal plazmowy (Plasma fractal) Kwadrat należy pokryć prostokątną siatką 2 n
Bardziej szczegółowoFraktale deterministyczne i stochastyczne. Katarzyna Weron Katedra Fizyki Teoretycznej
Fraktale deterministyczne i stochastyczne Katarzyna Weron Katedra Fizyki Teoretycznej Szare i Zielone Scena z Fausta Goethego (1749-1832), Mefistofeles do doktora (2038-2039): Wszelka, mój bracie, teoria
Bardziej szczegółowosamopodobnym nieskończenie subtelny
Fraktale Co to jest fraktal? Według definicji potocznej fraktal jest obiektem samopodobnym tzn. takim, którego części są podobne do całości lub nieskończenie subtelny czyli taki, który ukazuje subtelne
Bardziej szczegółowoModele i symulacje - Scratch i Excel
Instytut Matematyki Uniwersytet Gdański Literatura P. Szlagowski, Programowanie wizualne scratch 2.0 SCRATCH jest językiem programowania, w którym możesz stworzyć własne interaktywne historyjki, animacje,
Bardziej szczegółowoGrafika Komputerowa Materiały Laboratoryjne
Grafika Komputerowa Materiały Laboratoryjne Laboratorium 6 Processing c.d. Wstęp Laboratorium 6 poszerza zagadnienie generowania i przetwarzania obrazów z wykorzystaniem języka Processing 2, dedykowanego
Bardziej szczegółowoGra w chaos i sekwencje DNA
Jest to tekst związany z odczytem wygłoszonym na XLIX Szkole Matematyki Poglądowej, Wyjątki, Nadarzyn, sierpień 2012. Gra w chaos i sekwencje DNA Magdalena NOWAK, Kielce Nasza opowieść rozgrywa się w krainie
Bardziej szczegółowoSystemy Lindenmayera (L-systemy)
Systemy Lindenmayera (L-systemy) L-systemy Zastosowania: Generowanie fraktali Modelowanie roślin L-systemy Fraktale (łac. fractus złamany, cząstkowy) cechy samopodobieństwa Krzywa Kocha (płatek śniegu)
Bardziej szczegółowoFRAKTALE. nie tworzą się z przypadku. Są tworzone naturalnie przez otaczającą nas przyrodę, bądź za pomocą
Małgorzata Mielniczuk FRAKTALE Poniższy referat będzie traktować o fraktalach, majestatycznych wzorach, których kręte linie nie tworzą się z przypadku. Są tworzone naturalnie przez otaczającą nas przyrodę,
Bardziej szczegółowoINTERAKTYWNA KOMUNIKACJA WIZUALNA. Systemy Lindenmayera (L-systemy)
INTERAKTYWNA KOMUNIKACJA WIZUALNA Systemy Lindenmayera () Zastosowania: Generowanie fraktali Modelowanie roślin Fraktale (łac. fractus złamany, cząstkowy) cechy samopodobieństwa Krzywa Kocha (płatek śniegu)
Bardziej szczegółowoRekurencja. 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ółowoPracę wykonali: -Bryjak Mateusz -Chudziak Paweł -Palacz Angelika -Skorwider Dariusz
Pracę wykonali: -Bryjak Mateusz -Chudziak Paweł -Palacz Angelika -Skorwider Dariusz Symetria osiowa- przekształcenie płaszczyzny względem pewnej prostej, jest ona osią symetrii. Każdemu punktowi A przyporządkowujemy
Bardziej szczegółowoSTART. Wprowadź (v, t) S:=v*t. Wyprowadź (S) KONIEC
GRUPA I Co to jest algorytm, a czym jest program komputerowy? Algorytm: uporządkowany i uściślony sposób rozwiązywania problemu, zawierający szczegółowy opis wykonywanych czynności. Program komputerowy:
Bardziej szczegółowoFraktale wokół nas. Leszek Rudak Uniwersytet Warszawski. informatyka +
Fraktale wokół nas Leszek Rudak Uniwersytet Warszawski informatyka + 1 Podobieństwo figur informatyka + 2 Figury podobne Figury są podobne gdy proporcjonalnie zwiększając lub zmniejszając jedną z nich
Bardziej szczegółowoREKURENCJA 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ółowoRekurencja (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ółowoAlgorytm selekcji Hoare a. Łukasz Miemus
Algorytm selekcji Hoare a Łukasz Miemus 1 lutego 2006 Rozdział 1 O algorytmie 1.1 Problem Mamy tablicę A[N] różnych elementów i zmienną int K, takie że 1 K N. Oczekiwane rozwiązanie to określenie K-tego
Bardziej szczegółowoPodstawy 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ółowoObliczenia 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ółowoPodręcznik. Przykład 1: Wyborcy
MODELOWANIE RZECZYWISTOŚCI Daniel Wójcik Instytut Biologii Doświadczalnej PAN d.wojcik@nencki.gov.pl tel. 5892 424 http://www.neuroinf.pl/members/danek/swps/ Iwo Białynicki-Birula Iwona Białynicka-Birula
Bardziej szczegółowoZadanie 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ółowoWykł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ółowoWstęp do programowania. Listy. Piotr Chrząstowski-Wachtel
Wstęp do programowania Listy Piotr Chrząstowski-Wachtel Do czego stosujemy listy? Listy stosuje się wszędzie tam, gdzie występuje duży rozrzut w możliwym rozmiarze danych, np. w reprezentacji grafów jeśli
Bardziej szczegółowoStrategia "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ółowoWstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel
Wstęp do programowania Drzewa podstawowe techniki Piotr Chrząstowski-Wachtel Drzewa wyszukiwań Drzewa często służą do przechowywania informacji. Jeśli uda sie nam stworzyć drzewo o niewielkiej wysokości
Bardziej szczegółowoZbiór Cantora. Diabelskie schody.
Zbiór Cantora. Diabelskie schody. Autor: Norbert Miękina Zespół Szkół nr 3 im. ks. prof. Józefa Tischnera ul. Krakowska 20 32-700 Bochnia tel. 14 612-27-79 Opiekun: mgr Barbara Góra 1 W matematyce sztuka
Bardziej szczegółowoPoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj
Bardziej szczegółowoWYKŁ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ółowoCo to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,
wprowadzenie Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu, w przepisie tym podaje się opis czynności, które trzeba wykonać, oraz dane, dla których algorytm będzie określony.
Bardziej szczegółowoParadygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów
Bardziej szczegółowoAlgorytm. 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ółowoECDL Podstawy programowania Sylabus - wersja 1.0
ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoJulia 4D - raytracing
i przykładowa implementacja w asemblerze Politechnika Śląska Instytut Informatyki 27 sierpnia 2009 A teraz... 1 Fraktale Julia Przykłady Wstęp teoretyczny Rendering za pomocą śledzenia promieni 2 Implementacja
Bardziej szczegółowoLuty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl
System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy
Bardziej szczegółowoAlgorytmy i Struktury Danych
POLITECHNIKA KRAKOWSKA WYDZIAŁ INŻYNIERII ELEKTRYCZNEJ i KOMPUTEROWEJ Katedra Automatyki i Technik Informacyjnych Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew
Bardziej szczegółowoDefinicja. 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ółowoProgramowanie 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ółowo3.27pt. Algorytmy i programowanie ze Scratchem
3.27pt Instytut Matematyki Uniwersytet Gdański Literatura P. Szlagowski, Programowanie wizualne scratch 2.0 SCRATCH jest językiem programowania, w którym możesz stworzyć własne interaktywne historyjki,
Bardziej szczegółowoTechnologia informacyjna Algorytm Janusz Uriasz
Technologia informacyjna Algorytm Janusz Uriasz Algorytm Algorytm - (łac. algorithmus); ścisły przepis realizacji działań w określonym porządku, system operacji, reguła komponowania operacji, sposób postępowania.
Bardziej szczegółowoSortowanie 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ółowoJęzyki formalne i automaty Ćwiczenia 5
Języki formalne i automaty Ćwiczenia 5 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 L-systemy... 2 Grafika żółwia... 2 Bibliografia... 5 Zadania... 6 Zadania na 3.0... 6 Zadania
Bardziej szczegółowoPrzedmiotowy Konkurs Informatyczny LOGIA powołany przez Mazowieckiego Kuratora Oświaty
Zadanie Ogniwa minilogia 16 (2017/18), etap 3 Treść zadania Napisz dwuparametrową procedurę/funkcję ogniwa, po wywołaniu której na środku ekranu powstanie rysunek łańcuszka złożonego z dwukolorowych ogniw
Bardziej szczegółowoTEORETYCZNE 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ółowoOpis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1
Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1 Etapy rozwiązywania problemu PROBLEM wybór metody rozwiązania ALGORYTM 1.
Bardziej szczegółowoTechnologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Bardziej szczegółowoPodstawy 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ółowo2.1. Duszek w labiryncie
https://app.wsipnet.pl/podreczniki/strona/38741 2.1. Duszek w labiryncie DOWIESZ SIĘ, JAK sterować duszkiem, stosować pętlę zawsze, wykorzystywać blok warunkowy jeżeli. Sterowanie żółwiem, duszkiem lub
Bardziej szczegółowoZaawansowane 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ółowoPROPOZYCJA ZASTOSOWANIA WYMIARU PUDEŁKOWEGO DO OCENY ODKSZTAŁCEŃ PRZEBIEGÓW ELEKTROENERGETYCZNYCH
Prace Naukowe Instytutu Maszyn, Napędów i Pomiarów Elektrycznych Nr 56 Politechniki Wrocławskiej Nr 56 Studia i Materiały Nr 24 2004 Krzysztof PODLEJSKI *, Sławomir KUPRAS wymiar fraktalny, jakość energii
Bardziej szczegółowoktóra metoda jest najlepsza
która metoda jest najlepsza dr inż. Marek Żabka Instytut Matematyki Wydział Matematyki Stosowanej Politechnika Śląska 20 września 2012r Nowa metoda tworzenia grafiki na stronie internetowej: element,,canvas
Bardziej szczegółowoAlgorytmy 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ółowoScenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99
Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Techniki algorytmiczne realizowane przy pomocy grafiki żółwia w programie ELI 2,0. Przedmiot: Informatyka
Bardziej szczegółowoWykł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ółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoAlgorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne
Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na
Bardziej szczegółowonarzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.
Elementy programu Paint Aby otworzyć program Paint, należy kliknąć przycisk Start i Paint., Wszystkie programy, Akcesoria Po uruchomieniu programu Paint jest wyświetlane okno, które jest w większej części
Bardziej szczegółowoRekurencje. 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ółowoPodstawy 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ółowoPodstawy 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ółowoRekurencja/rekursja. Iluzja istnienia wielu kopii tego samego algorytmu (aktywacji) Tylko jedna aktywacja jest aktywna w danej chwili
rekurencja 1 Rekurencja/rekursja Alternatywny dla pętli sposób powtarzania pewnych czynności; kolejny etap podzadanie poprzedniego Rekursja może być zamieniona na iteracje Cechy rekurencji Rozłożenie problemu
Bardziej szczegółowoWykład 4: Fraktale deterministyczne i stochastyczne
Wykład 4: Fraktale deterministycne i stochastycne Fiyka komputerowa 005 Kataryna Weron, kweron@ift.uni.wroc.pl Co to jest fraktal? Złożona budowa dowolnie mały jego fragment jest równie skomplikowany jak
Bardziej szczegółowoCałkowanie numeryczne
Całkowanie numeryczne Nie zawsze możliwe jest wyznaczenie analitycznego wzoru będącego wynikiem całkowania danej funkcji f(x). Praktycznie zawsze możne jednak wyznaczyć całkę oznaczoną funkcji przy podanych
Bardziej szczegółowoNastępnie zdefiniujemy utworzony szkic jako blok, wybieramy zatem jak poniżej
Zadanie 1 Wykorzystanie opcji Blok, Podziel oraz Zmierz Funkcja Blok umożliwia zdefiniowanie dowolnego złożonego elementu rysunkowego jako nowy blok a następnie wykorzystanie go wielokrotnie w tworzonym
Bardziej szczegółowoWstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel
Wstęp do programowania Procedury i funkcje Piotr Chrząstowski-Wachtel Po co procedury i funkcje? Gdyby jakis tyran zabronił korzystać z procedur lub funkcji, to informatyka by upadła! Procedury i funkcje
Bardziej szczegółowoWstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline Procedury wyższych rzędów 1 Procedury wyższych rzędów jako abstrakcje konstrukcji programistycznych Intuicje Procedury wyższych rzędów
Bardziej szczegółowoI. Funkcja kwadratowa
Pojęcia, wymagania i przykładowe zadania na egzamin poprawkowy w roku szkolnym 2018/2019 w CKZiU nr 3 Ekonomik w Zielonej Górze KLASA III fl POZIOM PODSTAWOWY I. Funkcja kwadratowa narysować wykres funkcji
Bardziej szczegółowoALGORYTMY 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ółowoMetody Kompilacji Wykład 7 Analiza Syntaktyczna
Metody Kompilacji Wykład 7 Analiza Syntaktyczna Parsowanie Parsowanie jest to proces określenia jak ciąg terminali może być generowany przez gramatykę. Włodzimierz Bielecki WI ZUT 2/57 Parsowanie Dla każdej
Bardziej szczegółowoWprowadzenie do rysowania w 3D. Praca w środowisku 3D
Wprowadzenie do rysowania w 3D 13 Praca w środowisku 3D Pierwszym krokiem niezbędnym do rozpoczęcia pracy w środowisku 3D programu AutoCad 2010 jest wybór odpowiedniego obszaru roboczego. Można tego dokonać
Bardziej szczegółowoPodstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują
Bardziej szczegółowo1. A 2. A 3. B 4. B 5. C 6. B 7. B 8. D 9. A 10. D 11. C 12. D 13. B 14. D 15. C 16. C 17. C 18. B 19. D 20. C 21. C 22. D 23. D 24. A 25.
1. A 2. A 3. B 4. B 5. C 6. B 7. B 8. D 9. A 10. D 11. C 12. D 13. B 14. D 15. C 16. C 17. C 18. B 19. D 20. C 21. C 22. D 23. D 24. A 25. A Najłatwiejszym sposobem jest rozpatrzenie wszystkich odpowiedzi
Bardziej szczegółowoAlgorytmy i struktury danych. wykład 2
Plan wykładu: Pojęcie algorytmu. Projektowanie wstępujące i zstępujące. Rekurencja. Pojęcie algorytmu Pojęcie algorytmu Algorytm skończony zbiór operacji, koniecznych do wykonania zadania z pewnej klasy
Bardziej szczegółowoEGZAMIN MATURALNY W ROKU SZKOLNYM 2014/2015
EGZAMIN MATURALNY W ROKU SZKOLNYM 0/0 FORMUŁA OD 0 ( NOWA MATURA ) MATEMATYKA POZIOM PODSTAWOWY ZASADY OCENIANIA ROZWIĄZAŃ ZADAŃ ARKUSZ MMA-P CZERWIEC 0 Egzamin maturalny z matematyki nowa formuła Klucz
Bardziej szczegółowoObliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303
Wykład 9 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303 stos i operacje na stosie odwrotna notacja polska języki oparte na ONP przykłady programów J. Cichoń, P. Kobylański Wstęp
Bardziej szczegółowoProgramowanie w Baltie klasa VII
Programowanie w Baltie klasa VII Zadania z podręcznika strona 127 i 128 Zadanie 1/127 Zadanie 2/127 Zadanie 3/127 Zadanie 4/127 Zadanie 5/127 Zadanie 6/127 Ten sposób pisania programu nie ma sensu!!!.
Bardziej szczegółowoAlgorytmika i pseudoprogramowanie
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry
Bardziej szczegółowoReprezentacja i analiza obszarów
Cechy kształtu Topologiczne Geometryczne spójność liczba otworów liczba Eulera szkielet obwód pole powierzchni środek cięŝkości ułoŝenie przestrzenne momenty wyŝszych rzędów promienie max-min centryczność
Bardziej szczegółowoFraktale. i Rachunek Prawdopodobieństwa
Fraktale i Rachunek Prawdopodobieństwa Przyjrzyjmy się poniższemu rysunkowi, przedstawiającemu coś,, co kształtem tem przypomina drzewo o bardzo regularnej strukturze W jaki sposób b najłatwiej atwiej
Bardziej szczegółowoVoter model on Sierpiński fractals Model głosujący na fraktalach Sierpińskiego
Voter model on Sierpiński fractals Model głosujący na fraktalach Sierpińskiego Krzysztof Suchecki Janusz A. Hołyst Wydział Fizyki Politechniki Warszawskiej Plan Model głosujący : definicja i własności
Bardziej szczegółowoOptymalizacja ciągła
Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej
Bardziej szczegółowoProgramowanie dynamiczne cz. 2
Programowanie dynamiczne cz. 2 Wykład 7 16 kwietnia 2019 (Wykład 7) Programowanie dynamiczne cz. 2 16 kwietnia 2019 1 / 19 Outline 1 Mnożenie ciągu macierzy Konstruowanie optymalnego rozwiązania 2 Podstawy
Bardziej szczegółowo6. Pętle while. Przykłady
6. Pętle while Przykłady 6.1. Napisz program, który, bez użycia rekurencji, wypisze na ekran liczby naturalne od pewnego danego n do 0 włącznie, w kolejności malejącej, po jednej liczbie na linię. Uwaga!
Bardziej szczegółowoInformatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy
Informatyka wprowadze do algorytmów (II) dr hab. inż. Mikołaj Morzy plan wykładu cechy algorytmów sposoby zapisu algorytmów klasyfikacja algorytmów przykłady algorytmów sumowa przeszukiwa ciągu liczb sortowa
Bardziej szczegółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;
Podstawy Informatyki Inżyria Ciepła, I rok Wykład 8 Algorytmy, cd Instrukcja decyzyjna wybierz Zda wybierz służy do wyboru jednej z kilku możliwości Ma ono postać: wybierz przełącznik z wartość_1: zda_1
Bardziej szczegółowoPrzykład 1 wałek MegaCAD 2005 2D przykład 1 Jest to prosty rysunek wałka z wymiarowaniem. Założenia: 1) Rysunek z branży mechanicznej; 2) Opracowanie w odpowiednim systemie warstw i grup; Wykonanie 1)
Bardziej szczegółowoSchematy 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ółowoWizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD
Wizualne systemy programowania Wykład 11 Grafika 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Grafika GDI+ GDI+ - Graphics Device Interface jeden z trzech podstawowych komponentów
Bardziej szczegółowoScenariusz lekcji Ozobot w klasie: Ciąg Fibonacciego
Scenariusz lekcji Ozobot w klasie: Ciąg Fibonacciego Opracowanie scenariusza: Richard Born Adaptacja scenariusza na język polski: mgr Piotr Szlagor Tematyka: Informatyka, Matematyka, Rekurencja, Fibonacci,
Bardziej szczegółowoAlgorytmy i struktury danych.
Algorytmy i struktury danych. Wykład 4 Krzysztof M. Ocetkiewicz Krzysztof.Ocetkiewicz@eti.pg.gda.pl Katedra Algorytmów i Modelowania Systemów, WETI, PG Problem plecakowy mamy plecak o określonej pojemności
Bardziej szczegółowoWymagania z matematyki na poszczególne stopnie szkolne w klasie trzeciej gimnazjum
Wymagania z matematyki na poszczególne stopnie szkolne w klasie trzeciej gimnazjum I LICZBY I WYRAŻENIA ALGEBRAICZNE podawanie przykładów liczb naturalnych, całkowitych, wymiernych i niewymiernych; porównywanie
Bardziej szczegółowoWybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej
Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej Spis treści Autor: Marcin Orchel Algorytmika...2 Algorytmika w gimnazjum...2 Algorytmika w liceum...2 Język programowania w
Bardziej szczegółowoMathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje
Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje
Bardziej szczegółowoPROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW
PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW http://metodycy.torun.pl/ m.informatyka@metodycy.torun.pl 1. Wprowadzenie do Pythona podstawowe informacje Python to język programowania wysokiego poziomu,
Bardziej szczegółowoWstęp do Programowania potok funkcyjny
i programowanie dynamiczne Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 i programowanie dynamiczne Outline 1 i programowanie dynamiczne i programowanie dynamiczne Rekurencyjny zapis rozwiązania
Bardziej szczegółowoReprezentacja i analiza obszarów
Cechy kształtu Topologiczne Geometryczne spójność liczba otworów liczba Eulera szkielet obwód pole powierzchni środek ciężkości ułożenie przestrzenne momenty wyższych rzędów promienie max-min centryczność
Bardziej szczegółowoPodstawy 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ółowoLogo Komeniusz. Gimnazjum w Tęgoborzy. Mgr Zofia Czech
Logo Komeniusz Gimnazjum w Tęgoborzy Mgr Zofia Czech to język strukturalny, umożliwiający dzielenie algorytmu na wyraźnie wyodrębnione problemy, których rozwiązanie opisuje się za pomocą procedur (tzn.
Bardziej szczegółowoPlan prezentacji. Cechy charakterystyczne fraktali Zastosowanie fraktali Wymiar fraktalny D. Iteracyjny system funkcji (IFS)
Fraktale Plan prezentacji Wprowadzenie Cechy charakterystyczne fraktali Zastosowanie fraktali Wymiar fraktalny D Klasyczne fraktale Iteracyjny system funkcji (IFS) L-system Zbiory Julii i Mandelbrota Ruchy
Bardziej szczegółowo