Katedra Elektrotechniki Teoretycznej i Informatyki. sem. II - Elementy algorytmów. Dr hab. inż. M. Czyżak
|
|
- Iwona Lewicka
- 8 lat temu
- Przeglądów:
Transkrypt
1 Katedra Elektrotechniki Teoretycznej i Informatyki sem. II - Elementy algorytmów Dr hab. inż. M. Czyżak
2 REGULAMIN zaliczeń i wystawiania ocen z przedmiotu Informatyka II realizowanych w Katedrze Elektrotechniki Teoretycznej i Informatyki na studiach stacjonarnych I stopnia na kierunku Elektrotechnika w sem. III, 2016/ Obecność studentów na wykładach i laboratorium jest obowiązkowa. 2. Na wykładzie i laboratorium obecność jest kontrolowana. W przypadku stwierdzenia 3 krotnej nieusprawiedliwionej nieobecności na laboratorium, student jest skreślany z listy uczestniczących w laboratorium i nie jest klasyfikowany. 3. Podczas semestru 2 krotnie przeprowadzane jest kolokwium na laboratorium (90 min) zgodnie z podanym harmonogramem laboratorium.
3 4. W przypadku usprawiedliwionej nieobecności na kolokwium, potwierdzonej zwolnieniem lekarskim, student jest zobowiązany w terminie 2 tygodni od daty zakończenia zwolnienia odrobić kolokwium w godzinach konsultacji. W przypadku nieobecności nieusprawiedliwionej lub nie odrobienia w podanym terminie usprawiedliwionej nieobecności na kolokwium, student otrzymuje 0 punktów z kolokwium. 5. Zaliczenie laboratorium następuje w oparciu o ilość punktów uzyskanych przez studenta. Podział punktów dla laboratorium na poszczególne elementy jest następujący: - kolokwia 60 pkt ( 2 x 30 pkt) - wejściówki 20 pkt - zadania domowe 20 pkt Zaliczenie laboratorium wymaga 60 pkt, konieczne jest też uzyskanie przynajmniej 30 pkt łącznie z kolokwiów. Zadania domowe należy oddać w terminie dwóch tygodni. Prowadzący zajęcia laboratoryjne wystawia oceny punktowe.
4 6. Zaliczenie części wykładowej następuje w oparciu o kolokwium organizowane na koniec semestru, prace domowe oraz obecność na wykładzie (80 pkt kolokwium, 20 pkt prace domowe). Student może dodatkowo uzyskać 10 pkt za zadania wykonywane na wykładzie (1 pkt za jedno zadanie, w przypadku niepoprawnego wykonania zadania 0.5 pkt). Zaliczenie części wykładowej wymaga uzyskania 60 pkt w tym przynajmniej 41 pkt z kolokwium wykładowego) 7. Na zakończenie zajęć w semestrze oblicza się końcową punktową ocenę każdego studenta, wg wzoru: Z 0.66* L 0.34* W gdzie: L ocena punktowa uzyskana z części laboratoryjnej, W ocena punktowa uzyskana z części wykładowej.
5 8. Ocenę końcową wystawia się wg progów punktowych przedstawionych w tabeli: Progi punktowe poniżej 60 Ocena niedostateczna dostateczna dość dobra dobra ponad dobra powyżej 88 bardzo dobra
6 9. Prowadzący laboratorium organizuje dodatkowe kolokwium zaliczające laboratorium bezpośrednio przed sesją podstawową oraz kolokwium zaliczające w sesji poprawkowej. W wyniku każdego z tych kolokwiów student może otrzymać połowę maksymalnej ilości punktów z kolokwiów czyli 30 pkt. 10. Dla studentów, którzy nie uzyskali wymaganego minimum punktów z kolokwium zaliczającego wykład, organizowane jest kolokwium poprawkowe z części wykładowej w sesji poprawkowej. 11. W wyniku kolokwium poprawkowego z części wykładowej można uzyskać tylko połowę maksymalnej liczby punktów, czyli 40 pkt. 12. Obliczanie ocen po sesji poprawkowej odbywa się z uwzględnieniem wyniku kolokwium poprawkowego oraz pozostałych elementów składających się na część laboratoryjną i wykładową.
7 Algorytm jest jednym z zasadniczych pojęć w informatyce. Dział nauki zajmujący się algorytmami jest określany jako "Teoria algorytmów", "Analiza algorytmów" czy też "Algorytmika". Algorytm ( nieformalne określenie) 1. Algorytm jest przepisem określającym krok po kroku rozwiązanie jakiegoś problemu lub też osiągnięcie pewnego celu.
8 2. Algorytm jest pewną ściśle określoną procedurą obliczeniową, która dla właściwych danych wejściowych, wytwarza dane wyjściowe zwane wynikiem działania algorytmu. Algorytm można też traktować jako sposób rozwiązania konkretnego problemu obliczeniowego. Postawienie takiego problemu polega na ustaleniu wymagań, co do relacji między danymi wejściowymi algorytmu, a danymi wyjściowymi, a algorytm opisuje procedurę obliczeniową, która zapewni, że relacja ta będzie osiągnięta.
9 Problemy, które można rozpatrywać w aspekcie ich rozwiązywania z użyciem algorytmów, można podzielić na następujące grupy: a) problemy niealgorytmiczne - wykazano, że nie mogą być rozwiązane za pomocą algorytmów w skończonym czasie Przykład 1. Pokrywanie powierzchni wielokątami o dowolnym kształcie. Wykazano, że to zadanie jest obliczeniowo nierozwiązywalne. Przykład 2. Rozwiązywanie równań diofantycznych x n y n z n Dla n=2 nieskończenie wiele rozwiązań w liczbach całkowitych, brak rozwiązań dla n>2.
10 b) problemy przypuszczalnie niealgorytmiczne - zadania dla których nie udało się znaleźć algorytmu o skończonym czasie działania, ale też nie udowodniono, że taki algorytm nie istnieje (nie mogą być rozwiązane za pomocą algorytmów w skończonym czasie) c) problemy wykładnicze - nie mają algorytmów ograniczonych przez wielomian zmiennej problemu ( np. n!)
11 d) problemy przypuszczalnie wykładnicze - nie udało się podać algorytmu wielomianowego, ale też nie udowodniono że nie ma takiego algorytmu. d) problemy wielomianowe - dla problemów tych istnieją algorytmy rozwiązujące je w czasie ograniczonym wielomianem zmiennej problemu. Kubale, M. Łagodne wprowadzenie do analizy algorytmów, Wyd. PG, 1999.
12 Słowo algorytm pochodzi od nazwiska matematyka arabskiego żyjącego w IX wieku Abu Ja'far Mohammed ibn Müsâ al Khowârizmî ( al Khorezmi, (ar.) z Chorezmu), nazwisko jego pisano w Europie jako Algorismus. Podał on w IX wieku reguły dodawania, odejmowania, mnożenia i dzielenia liczb dziesiętnych znane wcześniej w Indiach i Chinach.
13 Jednak za autora pierwszego algorytmu uważa się greckiego matematyka Euklidesa ( 365 p.n.e- 300 p.n.e), stworzył on słynny przepis na obliczanie największego wspólnego dzielnika dwóch liczb całkowitych a i b ( NWD, gcd - ang. greatest common divisor)
14 Algorytm Euklidesa - obliczanie gcd (a,b) gcd(a,0)=0 Dopóki b>0 wykonuj 1. c=a modulo b 2. a=b 3. b=c 4. gcd=a Operacja = oznacza, podobnie jak w języku C, podstawienie do zmiennej po lewej stronie, wartości wyrażenia po prawej stronie.
15 Przykład. Zastosowanie algorytmu Euklidesa dla a=30, b=21. I. II. III. 1. c=9 1. c=3 1. c=0 2. a=21 2. a=9 2. a=3 3. b=9 3. b=3 3. b=0 4. gcd=21 4. gcd=9 4. gcd=3 b>0 b>0 b=0, stop
16 1. Opis słowny Sposoby opisu (zapisu algorytmów) cz.1 2. Opis w postaci listy kolejnych kroków 3. Opis w języku programowania ( Pascal, C/C++) 4. Opis w postaci schematu blokowego Przykład. Opis słowny Algorytmy Cel działania algorytmu: algorytm sprawdza czy dana liczba naturalna N jest liczbą pierwszą. Realizacja algorytmu (algorytm): algorytm oblicza całkowitą resztę z dzielenia N przez kolejne liczby nieparzyste mniejsze lub równe N. Jeśli jakaś reszta jest równa zeru, algorytm przerywa działanie.
17 Sposoby opisu (zapisu algorytmów) cz.2 2. Opis w postaci listy kolejnych kroków Przykład. Zapis algorytmu Euklidesa w postaci listy kroków. Dane: Liczby całkowite a i b. Wynik: Największy wspólny dzielnik a i b, gcd(a,b). 1. Wczytaj a. 2. Wczytaj b. 3. Jeśli b=0, idź do kroku Oblicz c=a modulo b. 5. Wykonaj a=b. 6. Wykonaj b=c.
18 Sposoby opisu (zapisu algorytmów) cz.3 Przykład. Zapis algorytmu Euklidesa w postaci listy kroków ( cz. II). 7. Wykonaj gcd=a. 8. Jeśli b=0, idź do kroku Idź do kroku gcd= Drukuj a, b, gcd. 12. STOP.
19 Sposoby opisu (zapisu algorytmów) cz.4 Przykład. Zapis algorytmu Euklidesa w postaci programu int main() { int a=30,b=21,c,gcd; do { c=a%b; a=b; b=c; gcd=a; } while ( b>0); printf("\n a=%d b=%d gcd=%d ",a,b,gcd); }
20 Sposoby opisu (zapisu algorytmów) cz.5 Sieci działań ( schematy blokowe) Autorem tej koncepcji jest John von Neumann. Zaproponował on w latach 50-tych formalizację algorytmów przy użyciu sieci działań. Sieci działań są geometrycznym sposobem zapisu algorytmów. Podstawą tej koncepcji jest podzielenie procesu rozwiązania na odrębne etapy, które w sieci działań przedstawia się w postaci bloków. Bloki są prostymi figurami geometrycznymi.
21 Sposoby opisu (zapisu algorytmów) cz.6 Sieci działań ( schematy blokowe) Wewnątrz bloków umieszcza się rodzaj czynności, którą symbolizuje dany blok. Bloki łączy się liniami, które ukazują ich powiązania logiczne, a strzałki wskazują na kolejność wykonywania poszczególnych w algorytmie. Algorytm przedstawiony w postaci sieci działań jest niezależny od języka programowania, w którym będzie napisany program.
22 Sposoby opisu (zapisu algorytmów) cz.7 Sieci działań ( schematy blokowe) Sieci działań mogą być pisane na różnym poziomie szczegółowości, lecz zwykle przyjmuje się, że każdy blok odpowiada jednej instrukcji programu realizującej pewne obliczenie lub instrukcji, która umożliwia podjęcie decyzji w algorytmie odnośnie dalszej jego realizacji.
23 Sposoby opisu (zapisu algorytmów) cz.8 Sieci działań ( schematy blokowe) Wewnątrz bloków sieci działań można stosować następujące symbole: - litery alfabetu łacińskiego i greckiego - cyfry systemu dziesiętnego - symbole działań arytmetycznych - dodawanie + - odejmowanie -,
24 Sposoby opisu (zapisu algorytmów) cz.9 Sieci działań ( schematy blokowe) - symbole działań arytmetycznych (c.d.) - mnożenie lub - dzielenie / - dzielenie całkowite - potęgowanie - pierwiastkowanie
25 Sposoby opisu (zapisu algorytmów) cz.10 Sieci działań ( schematy blokowe) - symbole działań logicznych - negacja ~ - koniunkcja - alternatywa
26 Sposoby opisu (zapisu algorytmów) cz.11 Sieci działań ( schematy blokowe) - symbole relacji - symbol podstawienia, : = - znaki interpunkcyjne,,,,, Wewnątrz bloków sieci działań można ponadto stosować liczby całkowite, rzeczywiste, zespolone jednak o wielkości odpowiadającej wielkości typów dla komputera, na którym będzie realizowany algorytm.
27 Sposoby opisu (zapisu algorytmów) cz.12 Sieci działań ( schematy blokowe) - stałe logiczne - stałe tekstowe - zmienne i wskaźniki do zmiennych (użycie zmiennej wskazuje, że będzie istniała komórka pamięci, o nazwie takiej, jak nazwa zmiennej)
28 Sposoby opisu (zapisu algorytmów) cz.13 Sieci działań ( schematy blokowe) - wyrażenia arytmetyczne i logiczne - funkcje ( wykładnicze, logarytmiczne, trygonometryczne, cyklometryczne, hiperboliczne i odwrotne do nich) - wartość bezwzględna - część całkowita
29 Sposoby opisu (zapisu algorytmów) cz.14 Sieci działań ( schematy blokowe) Symbole geometryczne - początek algorytmu START - koniec algorytmu STOP
30 Sposoby opisu (zapisu algorytmów) cz.15 Sieci działań ( schematy blokowe) Operator - działanie (operacja do wykonania) Operator wejścia/wyjścia wprowadzanie lub wyprowadzanie danych Operator - element decyzyjny- wybór jednej z dróg działania
31 Sposoby opisu (zapisu algorytmów) cz.16 Sieci działań ( schematy blokowe) Łącznik - łączy dwie części algorytmu Linia - łącząca poszczególne symbole sieci działań
32 Struktura algorytmów (cz.1) Opis algorytmu w postaci sieci działań wymaga zwykle niewielu podstawowych elementów takich jak - sekwencja operacji - przełącznik - pętla
33 Struktura algorytmów (cz.2) Sekwencja operacji Sekwencja operacji stanowi zbiór operacji realizowanych w określonej kolejności na określonych danych. Przykład. Realizacja obliczenia y ( c ( a b) 2 ) d
34 Struktura algorytmów (cz.3) wyznacz a+b wyznacz (a+b) 2 dane a,b,c,d y <- a+b y <-y*y dane a,b,c,d wyznacz c+(a+b) 2 y <-y+c wyznacz (c+(a+b) 2 )d y <-y*c
35 Struktura algorytmów (cz.4) Przełącznik Przełącznik jest elementem sprawdzającym spełnienie określonego warunku i wybierającego jedną z dwóch alternatywnych sekwencji operacji w zależności od tego czy warunek jest spełniony czy też nie. Przykład. TAK a>0 NIE Sekwencja 1 Sekwencja 2
36 Struktura algorytmów (cz.4) Pętla Pętla jest elementem umożliwiającą kolejną, wielokrotną realizację określonej operacji lub sekwencji operacji.
37 Ogólna struktura pętli Część inicjacyjna Część główna Część aktualizująca warunek Część decyzyjna Część wyjściowa
38 Przykład. Sieć działań dla obliczania sumy (cz. 1) S n 1 i 1 1 i
39 Przykład. Sieć działań dla obliczania sumy (cz. 2) START s<-0 s<-s+1/i i<-i+1 TAK i<n Drukuj s NIE STOP
40 Nauka o algorytmach to teoria algorytmów zwana też analizą algorytmów. Zajmuje się ona szukaniem najlepszych algorytmów dla rozwiązywania określonych zadań na komputerach, badaniem możliwości rozwiązania pewnych zadań jak również określaniem złożoności rozwiązań, o ile one istnieją.
41 Przykłady algorytmów (1) I. Algorytmy numeryczne 1. Interpolacja Lagrange a. 2. Interpolacja Aitkena-Lagrange a. 3. Aproksymacja wielomianowa. 4. Aproksymacja trygonometryczna. 5. Kwadratura Newtona-Cotesa. 6. Metoda całkowania Romberga. 7. Metoda rozwiązywania równań nieliniowych (bisekcja, metoda siecznych, metoda Newtona).
42 8. Rozwiązywanie układu równań z macierzą trójkątną. 9. Metoda eliminacji Gaussa. 10. Rozkład LU. Przykłady algorytmów (2) 11. Metoda Gaussa-Crouta. 12. Metoda eliminacji Jordana. 13. Obliczanie wyznacznika metodą rozkładu LU. 14. Odwracanie macierzy przy użyciu rozkładu LU. 15. Metoda Jacobiego rozwiązywania układu równań liniowych.
43 Przykłady algorytmów (3) 16. Metoda Gaussa-Seidela. 17. Rozkład QR macierzy metodą Grama-Schmidta. 18. Rozkład QR macierzy metodą Givensa. 19. Schemat Hornera obliczania wartości wielomianu. 20. Metoda relaksacyjna rozwiązywania układu równań liniowych. 21. Metoda Eulera rozwiązywania równań różniczkowych zwyczajnych. 22. Metoda Runge-Kutty rozwiązywania równań różniczkowych zwyczajnych. 23. Szybka transformacja Fouriera.
44 Przykłady algorytmów (4) II. Algorytmy przeszukiwania zbiorów danych 1. Przeszukiwanie binarne. 2. Przeszukiwanie z funkcją mieszającą. III.Algorytmy przeszukiwania tekstów. 1. Algorytm typu brute-force. 2. Algorytm K-M-P (Knutha, Morrisa, Pratta). 3. Algorytm Boyera-Moore a. 4. Algorytm Rabina-Karpa.
45 Przykłady algorytmów (5) IV. Algorytmy grafowe 1. Algorytm Floyda-Warshalla ( domknięcie przechodnie grafu, algorytm pozwala stwierdzić, czy istnieje droga między dwoma wierzchołkami grafu). 2. Algorytm Dijkstry (poszukiwanie najkrótszej drogi w grafie). 3. Algorytmy przeszukiwania grafów ( wszerz, w głąb) V. Algorytmy kompresji danych 1. Kompresja przez modelowanie matematyczne. 2. Kompresja metodą RLE. 3. Kompresja danych metodą Huffmana. 4. Kompresja LZW. Algorytmy
46 Przykłady algorytmów (6) VI. Algorytmy szyfrowania 1. Algorytm wymiany klucza Diffiego-Hellmana. 2. Algorytm RSA 3.Algorytm Rijndael. VII. Algorytmy teorioliczbowe (przykłady) 1. Obliczanie iloczynu Mongomery ego 2. Potęgowanie modulo n (n nieparzyste) z użyciem iloczynu Mongomery ego. 3. Chińskie twierdzenie o resztach.
47 Przykłady algorytmów (7) VIII. Algorytmy sortowania. 1. Sortowanie przez zamianę ( ang. exchange sort) ( przykład: sortowanie przez prostą zamianę). 2. Sortowanie przez wybieranie (ang. selection sort) (przykład sortowanie przez proste wybieranie) 3. Sortowanie przez proste wstawianie. 4. Sortowanie szybkie (ang. quicksort). 5. Sortowanie przez kopcowanie (ang. heapsort). 6. Sortowanie przez scalanie( ang. mergesort).
48 Sortowanie Sortowanie jest procesem ustawiania zbioru obiektów w określonym porządku. Sortowanie stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. Problem sortowania można sformułować następująco: Dane są obiekty a 1, a,..., 2 a n
49 Sortowanie (niemalejąco) polega na przestawianiu tych obiektów aż do chwili osiągnięcia uporządkowania a k a,..., 1 k2, a k 3 takiego, że dla danej funkcji porządkującej f zachodzi związek: f ( a ) f ( a )... f ( a k1 k2 k 3 )
50 Zwykle nie oblicza się wartości funkcji porządkującej, lecz przechowuje się je w jawnej postaci jako składowe każdego obiektu. Wartość tej funkcji nazywana jest kluczem obiektu. Dla tablic kluczem obiektu jest wartość elementu.
51 Przykłady algorytmów (5) IV. Algorytmy sortowania. 1. Sortowanie przez zamianę ( ang. exchange sort) ( przykład: sortowanie przez prostą zamianę). 2. Sortowanie przez wybieranie (ang. selection sort) ( przykład sortowanie przez proste wybieranie) 3. Sortowanie przez proste wstawianie. 4. Sortowanie szybkie (ang. quicksort). 5. Sortowanie przez kopcowanie (ang. heapsort) 6. Sortowanie przez scalanie ( ang. merge sort)
52 Sortowanie przez prostą zamianę ( sortowanie bąbelkowe) Metoda ta polega na porównywaniu w kolejnych przebiegach kluczy kolejnych sąsiadujących elementów (dla tablic wartości elementów tablicy) i ewentualnej zamianie miejscami tych elementów, jeżeli nie spełniają zadanej relacji. Po zakończeniu danego przebiegu następuje sprawdzenie czy nastąpiły w nim zamiany. Jeśli tak, realizowany jest kolejny przebieg, jeśli nie, to sortowanie zostało zakończone.
53 Sortowanie przez prostą zamianę (sortowanie bąbelkowe) Przykład. Posortować niemalejąco tablicę 5-elementową zawierającą elementy 8,6,10,2,1. Pokazane zostaną poniżej stany tablicy w kolejnych przebiegach. I. przebieg II. przebieg III. przebieg IV. przebieg V. przebieg 8,6,10,2,1 6,8,2,1,10 6,2,1,8,10 2,1,6,8,10 1,2,6,8,10 6,8,10,2,1 6,8,2,1,10 2,6,1,8,10 1,2,6,8,10 1,2,6,8,10 6,8,10,2,1 6,2,8,1,10 2,1,6,8,10 1,2,6,8,10 1,2,6,8,10 6,8,2,10,1 6,2,1,8,10 2,1,6,8,10 1,2,6,8,10 1,2,6,8,10 6,8,2,1,10 6,2,1,8,10 2,1,6,8,10 1,2,6,8,10 1,2,6,8,10
54 Sortowanie przez prostą zamianę (bąbelkowe) #define N 5 // sortowanie niemalejąco #include <stdio.h> #include <conio.h> int main(int argc, char **argv) { int i, nr=1,p, zam; int a[5]={8,6,10,2,1}; do { zam=0; printf("\n przebieg nr=%d",nr++); for (i=0;i<n -1;i++) if (a[i+1]<a[i]) { p=a[i]; a[i]=a[i+1]; a[i+1]=p; zam=1; } } while (zam); printf("\n Stan tablicy po sortowaniu"); for (i=0;i<n;i++) printf("\n % d ",a[i]); getchar(); return 0;}
55 Sortowanie przez proste wybieranie Metodę tę można opisać następująco:( sortowanie niemalejąco) - wybrać element o najmniejszym kluczu ( dla tablic element o najmniejszej wartości) - wymienić go z pierwszym elementem. Operacje te powtarza się z pozostałymi n-1 obiektami, następnie z n-2 obiektami, aż pozostanie jeden obiekt - największy.
56 Przykład. Posortować niemalejąco przy użyciu algorytmu prostego wybierania tablicę 5- elementową przy użyciu zawierającą elementy 8,6,10,2,1. Pokazane zostaną poniżej kolejne stany tablicy w trakcie sortowania zamieniane elementy 8 i 1 stan po pierwszej zamianie zamieniane elementy 6 i stan po drugiej zamianie zamieniane elementy 10 i stan po trzeciej zamianie zamieniane elementy 8 i tablica posortowana
57 // Sortowanie przez proste wybieranie #define N 5 #include <stdio.h> #include <conio.h> int main(int argc, char **argv) { int i,j,k,p,amin; int a[5]={8,6,10,2,1}; for (i=0;i<n;i++) { amin=a[i]; k=i; for (j=i+1;j<n-1;j++) if (a[j]<amin) { amin=a[j]; k=j; } if (k!=i) { p=a[i]; a[i]=a[k]; a[k]=p; } } printf("\n Stan tablicy po sortowaniu"); for (i=0;i<n;i++) printf("\n % d ",a[i]); getchar(); return 0;}
58 Podstawowe własności algorytmów a) własność stopu b) poprawność Def. (poprawność algorytmu) Algorytm jest poprawny, gdy dla każdego egzemplarza problemu zatrzymuje się i daje poprawny wynik. c) stabilność numeryczna d) złożoność obliczeniowa
59 Elementy analizy algorytmów Analiza algorytmu (analiza złożoności obliczeniowej) polega na określeniu zasobów, jakie są potrzebne do jego wykonania. Zasobami zasadniczymi są czas obliczeń i wielkość potrzebnej pamięci. Obecnie ważniejszym parametrem jest czas obliczeń. Zwykle rozpatruje się przypadek pesymistyczny dla czasu działania algorytmu.
60 Pesymistyczny czas działania jest górną granicą możliwego czasu działania algorytmu dla każdych danych wejściowych. Znając ten czas, mamy gwarancję, że algorytm nie będzie działał dłużej (taki czas może często występować w praktyce, np. przy poszukiwaniu w bazie danych informacji, której tam nie ma).
61 Czas działania algorytmu może być opisany pewną funkcją np. t = f(n)=an 2 +bn +c, gdzie n reprezentuje rozmiar danych wejściowych. Można zauważyć, że dla dużych n znaczenie ma głównie pierwszy składnik. Przyjmując przykładowo a=1, b=1, c=1 n an 2 bn c t
62 Pojawia się tutaj pojęcie rzędu wielkości funkcji. Rząd wielkości funkcji określa jak zmienia się składnik najbardziej istotny. Uważa się, że dany algorytm jest lepszy, jeśli jego pesymistyczny czas działania jest funkcją niższego rzędu.
63 Przykład. Dla funkcji f(n) i czasu z poniższej tabeli wyznaczyć największy rozmiar problemu, który może być rozwiązany w czasie t, zakładając, że algorytm działa w ciągu f(n) mikrosekund. f(n) n 1 sek 1 min 1 dzień 1 miesiąc log n n n n log n n 2 n 3 2 n n!
64 Symbol Algorytmy Notacje asymptotyczne (1) Niech g:r * R * będzie funkcją rzeczywistą zmiennej n. Mówimy, że funkcja jest (g(n)), gdy istnieją stałe c 1,, c 2 R * i x 0 R * takie, że c 1 g(n) f(n)) c 2 g(n) dla wszystkich n n 0. Mówimy wówczas,że funkcje są tego samego rzędu. (log n) - logarytmiczna (n) - liniowa c 1 g(n) f(n) (n log n) - logarytmiczno-liniowa c 2 g(n) (n 2 ) - kwadratowa (2 n ) - wykładnicza n 0 n
65 Symbol O( ) Algorytmy Notacje asymptotyczne (2) Niech g:r * R * będzie funkcją rzeczywistą zmiennej n. Przez O(g) oznaczymy zbiór funkcji f:r * R *, takich, że dla pewnego c R * i x 0 R * mamy f(n)) c g(n) dla wszystkich n n. } Symbol O(g) 0 czytamy " O duże od n", zaś o funkcji f mówimy, "że jest duże O od g" c 1 g(n) f(n) n
66 Rząd złożoności obliczeniowej Klasa funkcji Typ funkcji Przykłady subliniowa stała (e -n sin 2 n), (1/n) polilogarytmiczna (log log n), (log 2 n) liniowa (n), (n(1+n) n ) wielomianowa quasi-liniowa (n log n), (n loglog n) kwadratowa superwielomianowa (n 2 ), (n/2) (n log n ), () niewielomianowa wykładnicza (2 n ), (n 2 3 n ) n n superwykładnicza ( 2 ), (n n )
67 Złożoność obliczeniowa a programowanie algorytmów Generalnie powinno się stosować algorytmy o możliwie najmniejszej złożoności obliczeniowej, lecz w praktyce powinno się też uwzględnić dodatkowe czynniki: 1. Gdy program będzie używany niewiele razy, to koszt napisania i uruchomienia programu jest większy od pozostałych kosztów. 2. Jeśli program będzie wykonywany na małych danych, istotna jest wielkość stałej proporcjonalności c. 3. Program nie powinien być skomplikowany ( o ile to możliwe), gdyż utrudnia to wprowadzanie zmian 4. Istnieją algorytmy o dużej złożoności dla najgorszego przypadku, a działające szybko dla przypadku przeciętnego. 5. Dla algorytmów działających na liczbach rzeczywistych są ważne dokładność, a także wrażliwość numeryczna. Żródło Kubale M. Łagodne wprowadzenie do algorytmów.
Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Co to jest algorytm? Zapis algorytmów Algorytmy
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)
Definicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
Algorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Metody numeryczne Wykład 4
Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania
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
dr inż. Damian Słota Gliwice r. Instytut Matematyki Politechnika Śląska
Program wykładów z metod numerycznych na semestrze V stacjonarnych studiów stopnia I Podstawowe pojęcia metod numerycznych: zadanie numeryczne, algorytm. Analiza błędów: błąd bezwzględny i względny, przenoszenie
Algorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Zasady analizy algorytmów
Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania
Podstawy Programowania Algorytmy i programowanie
Podstawy Programowania Algorytmy i programowanie Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Algorytm Algorytm w matematyce, informatyce, fizyce, itp. lub innej dziedzinie życia,
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
Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )
SORTOWANIE 1 SORTOWANIE Proces ustawiania zbioru elementów w określonym porządku. Stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. 2 Definicja Ciąg wejściowy: a 1,
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan wykładów (1) Algorytmy i programy Proste typy danych Rozgałęzienia
Algorytmy komputerowe. dr inŝ. Jarosław Forenc
Rok akademicki 2009/2010, Wykład nr 8 2/24 Plan wykładu nr 8 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2009/2010
Technologie Informacyjne
POLITECHNIKA KRAKOWSKA - WIEiK - KATEDRA AUTOMATYKI Technologie Informacyjne www.pk.edu.pl/~zk/ti_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 3: Wprowadzenie do algorytmów i ich
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
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
Metody numeryczne Numerical methods. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)
Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/13
Metody numeryczne Numerical methods. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)
KARTA MODUŁU / KARTA PRZEDMIOTU Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013
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ą
Algorytmy i złożoność obliczeniowa. Wojciech Horzelski
Algorytmy i złożoność obliczeniowa Wojciech Horzelski 1 Tematyka wykładu Ø Ø Ø Ø Ø Wprowadzenie Poprawność algorytmów (elementy analizy algorytmów) Wyszukiwanie Sortowanie Elementarne i abstrakcyjne struktury
Algorytmy i struktury danych
Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce
INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn
Katedra Elektrotechniki Teoretycznej i Informatyki. sem. III. Dr inż. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki sem. III Dr inż. M. Czyżak REGULAMIN zaliczeń i wystawiania ocen z przedmiotu Informatyka realizowanych w Katedrze Elektrotechniki Teoretycznej i Informatyki
Algorytm 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
Algorytmy i struktury danych
Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Mariusz Różycki University of Cambridge Zajęcia będą mieć formę wykładową. Slajdy można znaleźć na stronie kursu: http://lw.mi.edu.pl/informatyka/algorytmy.
Algorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Wstęp do informatyki- wykład 2
MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
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
Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).
Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z
Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Przykładowy program ćwiczeń
Przykładowy program ćwiczeń Ćwiczenie 1. Obliczenie funkcji elementarnych za pomocą szeregów. Opracowanie wyrażeń rekurencyjnych. 3 4 Realizacja w Ecelu funkcji e 1. 1!! 3! 4! Przykład 1: Obliczenie wartości
Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska
Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 3 2 Złożoność obliczeniowa algorytmów Notacja wielkie 0 Notacja Ω i Θ Algorytm Hornera Przykłady rzędów
Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott
Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html
Egzamin, AISDI, I termin, 18 czerwca 2015 r.
Egzamin, AISDI, I termin, 18 czerwca 2015 r. 1 W czasie niezależnym do danych wejściowych działają algorytmy A. sortowanie bąbelkowego i Shella B. sortowanie szybkiego i przez prosty wybór C. przez podział
Wykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.
Wykład 1 Wprowadzenie do algorytmów Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami Wykaz literatury 1. N. Wirth - Algorytmy+Struktury Danych = Programy, WNT Warszawa
Projektowanie i Analiza Algorytmów
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI I TECHNIK INFORMACYJNYCH Projektowanie i Analiza Algorytmów www.pk.edu.pl/~zk/piaa_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład
automatyka i robotyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)
Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2013/2014
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Organizacja wykładu. Problem Sortowania. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury
Algorytmy i schematy blokowe
Algorytmy i schematy blokowe Algorytm dokładny przepis podający sposób rozwiązania określonego zadania w skończonej liczbie kroków; zbiór poleceń odnoszących się do pewnych obiektów, ze wskazaniem porządku,
Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
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
Wprowadzenie do algorytmiki
Wprowadzenie do algorytmiki Pojecie algorytmu Powszechnie przyjmuje się, że algorytm jest opisem krok po kroku rozwiązania postawionego problemu lub sposób osiągnięcia jakiegoś celu. Wywodzi się z matematyki
Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe
I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom
Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 7 Algorytmy Programowanie Sformułowanie problemu. Opracowanie metodyki rozwiązania. Opracowanie algorytmu. Napisanie kodu źródłowego (zakodowanie) w
Informatyka 1. Złożoność obliczeniowa
Informatyka 1 Wykład XI Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)
Zał nr 4 do ZW WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI KARTA PRZEDMIOTU Nazwa w języku polskim : Obliczenia Naukowe Nazwa w języku angielskim : Scientific Computing. Kierunek studiów : Informatyka Specjalność
Algorytmy i Struktury Danych
Algorytmy i Struktury Danych Podstawowe informacje Prowadzący: Jan Tuziemski Email: jan.tuziemski@pg.edu.pl Konsultacje: pokój 412 GB (do ustalenia 412 GB) Podstawowe informacje literatura K. Goczyła Struktury
Schematy blokowe. Algorytmy Marek Pudełko
Schematy blokowe Algorytmy Marek Pudełko Metody zapisu algorytmów Algorytmy można zapisywać w postaci słownej, listy kroków lub symbolicznej - używając metajęzyków. Metajęzyk to język bardzo ogólny - opisujący
Rozdział 4. Algorytmy sortowania 73 Rozdział 5. Typy i struktury danych 89 Rozdział 6. Derekursywacja i optymalizacja algorytmów 147
Spis treści Przedmowa 9 Rozdział 1. Zanim wystartujemy 17 Jak to wcześniej bywało, czyli wyjątki z historii maszyn algorytmicznych 18 Jak to się niedawno odbyło, czyli o tym, kto wymyślił" metodologię
Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.
Algorytm znaczenie informatyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Metoda Dziel i zwyciężaj. Problem Sortowania, cd. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Algorytmy
Informatyka 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
x y
Przykłady pytań na egzamin końcowy: (Uwaga! Skreślone pytania nie obowiązują w tym roku.). Oblicz wartość interpolacji funkcjami sklejanymi (przypadek (case) a), dla danych i =[- 4 5], y i =[0 4 -]. Jaka
INFORMATYKA SORTOWANIE DANYCH.
INFORMATYKA SORTOWANIE DANYCH http://www.infoceram.agh.edu.pl SORTOWANIE Jest to proces ustawiania zbioru obiektów w określonym porządku. Sortowanie stosowane jest w celu ułatwienia późniejszego wyszukania
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.
Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL
Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL 1 Część 1 Pojęcie algorytmu 2 I. Pojęcie algorytmu Trochę historii Pierwsze
Efektywność algorytmów
Efektywność algorytmów Algorytmika Algorytmika to dział informatyki zajmujący się poszukiwaniem, konstruowaniem i badaniem własności algorytmów, w kontekście ich przydatności do rozwiązywania problemów
Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A
Egzamin z Metod Numerycznych ZSI, 06.2007. Egzamin, Gr. A Imię i nazwisko: Nr indeksu: Section 1. Test wyboru, max 33 pkt Zaznacz prawidziwe odpowiedzi literą T, a fałszywe N. Każda prawidłowa odpowiedź
Metody numeryczne. materiały do wykładu dla studentów
Metody numeryczne materiały do wykładu dla studentów Autorzy: Maria Kosiorowska Marta Kornafel Grzegorz Kosiorowski Grzegorz Szulik Sebastian Baran Jakub Bielawski Materiały przygotowane w ramach projektu
Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
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 danych
Wykład 4. Określimy teraz pewną ważną klasę pierścieni.
Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia
Algorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Schemat Hornera. Wyjaśnienie: Zadanie 1. Pozycyjne reprezentacje
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
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane
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
Technologie informacyjne Wykład VII-IX
Technologie informacyjne -IX A. Matuszak 19 marca 2013 A. Matuszak Technologie informacyjne -IX Rekurencja A. Matuszak (2) Technologie informacyjne -IX Gotowanie jajek na miękko weż czysty garnek włóż
ECTS (Część 2. Metody numeryczne) Nazwa w języku angielskim: Algorithms and data structures.
Algorytmy i struktury danych. Metody numeryczne ECTS (Część 2. Metody numeryczne) Nazwa w języku angielskim: Algorithms and data structures. dzienne magisterskie Numerical methods. (Part 2. Numerical methods)
2.8. Algorytmy, schematy, programy
https://app.wsipnet.pl/podreczniki/strona/38766 2.8. Algorytmy, schematy, programy DOWIESZ SIĘ co oznaczają pojęcia: algorytm, schemat blokowy, język programowania, jakie są sposoby obliczania największego
Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie
Więcej o sprawności algorytmów Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Załóżmy, że możemy wykonać dane zadanie przy użyciu dwóch algorytmów: jednego o złożoności czasowej
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76
. p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować
Jeszcze o algorytmach
Jeszcze o algorytmach Przykłady różnych, podstawowych algorytmów 11.01.2018 M. Rad Plan Powtórka Znajdowanie najmniejszego elementu Segregowanie Poszukiwanie przez połowienie Wstawianie Inne algorytmy
POLITECHNIKA OPOLSKA
POLITECHNIKA OPOLSKA WYDZIAŁ MECHANICZNY Katedra Technologii Maszyn i Automatyzacji Produkcji Laboratorium Podstaw Inżynierii Jakości Ćwiczenie nr 2 Temat: Schemat blokowy (algorytm) procesu selekcji wymiarowej
koordynator modułu dr hab. Michał Baczyński rok akademicki 2012/2013
Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Matematyka, studia II stopnia, rok 1 Sylabus modułu: Matematyczne podstawy informatyki (03-MO2S-12-MPIn) 1. Informacje ogólne koordynator
Informatyka A. Algorytmy
Informatyka A Algorytmy Spis algorytmów 1 Algorytm Euklidesa....................................... 2 2 Rozszerzony algorytm Euklidesa................................ 2 3 Wyszukiwanie min w tablicy..................................
Metody numeryczne I Równania nieliniowe
Metody numeryczne I Równania nieliniowe Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/66 Równania nieliniowe 1. Równania nieliniowe z pojedynczym pierwiastkiem
ROZKŁAD MATERIAŁU DLA KLASY I LICEUM I TECHNIKUM (ZAKRES PODSTAWOWY I ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ
ROZKŁAD MATERIAŁU DLA KLASY I LICEUM I TECHNIKUM (ZAKRES PODSTAWOWY I ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ ZBIORY TEMAT LICZBA GODZIN LEKCYJNYCH WYMAGANIA SZCZEGÓŁOWE Z PODSTAWY PROGRAMOWEJ Z
Algorytmy. Programowanie Proceduralne 1
Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa
Wprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, Spis treści. Wprowadzenie 2
Wprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, 2012 Spis treści Przedmowa XIII Część I Podstawy Wprowadzenie 2 1. Rola algorytmów w obliczeniach 4 1.1. Algorytmy 4 1.2. Algorytmy
Zaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Język ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
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
Teoria liczb. Magdalena Lemańska. Magdalena Lemańska,
Teoria liczb Magdalena Lemańska Literatura Matematyka Dyskretna Andrzej Szepietowski http://wazniak.mimuw.edu.pl/ Discrete Mathematics Seymour Lipschutz, Marc Lipson Wstęp Teoria liczb jest dziedziną matematyki,
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
LICZBY PIERWSZE. Jan Ciurej Radosław Żak
LICZBY PIERWSZE Jan Ciurej Radosław Żak klasa IV a Katolicka Szkoła Podstawowa im. Świętej Rodziny z Nazaretu w Krakowie ul. Pędzichów 13, 31-152 Kraków opiekun - mgr Urszula Zacharska konsultacja informatyczna
Sylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln)
Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Matematyka, studia II stopnia, rok 1 Sylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln) 1. Informacje ogólne
Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn
Metody numeryczne Wykład 3 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Pojęcia podstawowe Algebra
Zaawansowane algorytmy. Wojciech Horzelski
Zaawansowane algorytmy Wojciech Horzelski 1 Organizacja Wykład: poniedziałek 8 15-10 Aula Ćwiczenia: Każdy student musi realizować projekty (treść podawana na wykładzie) : Ilość projektów : 5-7 Na realizację
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
Technologie 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
Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.
2 Egzamin maturalny z informatyki Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie lub, która odpowiedź jest prawdziwa, a która fałszywa. a) rzeanalizuj poniższy algorytm (:= oznacza instrukcję
Wymagania na poszczególne oceny szkolne Klasa 7
1 Wymagania na poszczególne oceny szkolne Klasa 7 Ocena postępów ucznia jest wynikiem oceny stopnia opanowania jego umiejętności podstawowych i ponadpodstawowych. W poniższej tabeli umiejętności te przypisane
Wymagania dla klasy siódmej. Treści na 2 na 3 na 4 na 5 na 6 Uczeń: Uczeń: Uczeń: Uczeń: Uczeń: DZIAŁ 1. LICZBY
Wymagania dla klasy siódmej Treści na 2 na 3 na 4 na 5 na 6 Uczeń: Uczeń: Uczeń: Uczeń: Uczeń: DZIAŁ 1. LICZBY Rzymski sposób zapisu liczb Liczby pierwsze i złożone. Dzielenie z resztą Rozwinięcia dziesiętne
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego
Metody numeryczne Numerical methods. Energetyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólnoakademicki / praktyczny)
KARTA MODUŁU / KARTA PRZEDMIOTU Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. Kod modułu Nazwa modułu Nazwa modułu w języku angielskim uje od roku akademickiego 2012/13 2013/14
Wybrane zagadnienia teorii liczb
Wybrane zagadnienia teorii liczb Podzielność liczb NWW, NWD, Algorytm Euklidesa Arytmetyka modularna Potęgowanie modularne Małe twierdzenie Fermata Liczby pierwsze Kryptosystem RSA Podzielność liczb Relacja