PROSTE RACHUNKI WYKONYWANE ZA POMOCĄ KOMPUTERA WPROWADZENIE DO ALGORYTMIKI

Slides:



Advertisements
Podobne prezentacje
Instrukcje - wprowadzenie
Advertisements

PROGRAMOWANIE STRUKTURALNE
ALGORYTM Co to jest algorytm?
algorytm znajdowania największego wspólnego dzielnika (NWD)
ZŁOŻONOŚĆ OBLICZENIOWA
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
ZBIÓR LICZB NATURALNYCH, DZIAŁANIA W ZBIORZE N
Liczby pierwsze.
ALGORYTMY.
Algorytmy i struktury danych
Algorytmika w drugim arkuszu maturalnym. Standardy wymagań I. WIADOMOŚCI I ROZUMIENIE I. WIADOMOŚCI I ROZUMIENIE II.KORZYSTANIE Z INFORMACJI II.KORZYSTANIE.
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Dr Anna Kwiatkowska Instytut Informatyki
Zapis informacji Dr Anna Kwiatkowska.
Algorytmy Marek Pudełko
Algorytmy i algorytmika Opracowanie: Maciej Karanowski
ALGORYTMY Opracowała: ELŻBIETA SARKOWICZ
Schemat Hornera Mgr inż. Michał Szucki.
ALGORYTMY.
„Są plusy dodatnie i plusy ujemne.”
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Algorytmy.
WYSZUKIWANIE I PORZĄDKOWANIE INFORMACJI WPROWADZENIE DO ALGORYTMIKI
Programowanie strukturalne i obiektowe
Algorytmy z przykładami w Turbo Pascal 7.0
RÓŻNORODNE ALGORYTMY OBLICZEŃ I ICH KOMPUTEROWE REALIZACJE
PORZĄDEK WŚRÓD INFORMACJI KLUCZEM DO SZYBKIEGO WYSZUKIWANIA
Prowadzący: Dr inż. Jerzy Szczygieł
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
ALGORYTMY POSZUKIWANIA I PORZĄDKOWANIA ELEMENTY JĘZYKA PROGRAMOWANIA
Algorytmy i struktury danych
ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW WSTĘP DO OBLICZEŃ NA GRAFACH
Algorytmy.
Liczby rzeczywiste ©M.
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Wykład 10 typ zbiorowy rekurencja.
Na wysokościach myślenia jest sfera,
Matematyka i system dwójkowy
Liczby Naturalne.
Algorytmika.
Wprowadzenie do programowania
Algorytmika Iteracje autor: Tadeusz Lachawiec.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
Obliczanie NWD- algorytm Euklidesa
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Algorytmy.
Algorytmy – wprowadzenie
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
METODY REPREZENTOWANIA IFORMACJI
Algorytmy. Co to jest algorytm? Przepis prowadzący do rozwiązania zadania.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Liczby naturalne i całkowite Spis treści Definicje Działania na liczbach Wielokrotności liczb naturalnych Cechy podzielności Przykłady potęg,potęgi o.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Algorytmy i algorytmika Opracowanie: Teresa Szczygieł
Algorytm to przepis prowadzący do osiągnięcia celu lub rozwiązania problemu, opisujący każdy krok. Algorytmika to dziedzina zajmująca się algorytmami (własnościami,
Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Kinga Cichoń.
PROSTE RACHUNKI WYKONYWANE ZA POMOCĄ KOMPUTERA WPROWADZENIE DO ALGORYTMIKI
RÓŻNORODNE ALGORYTMY OBLICZEŃ I ICH KOMPUTEROWE REALIZACJE
ZNAJDOWANIE NAJKRÓTSZYCH DRÓG oraz NAJNIŻSZYCH i NAJKRÓTSZYCH DRZEW WSTĘP DO OBLICZEŃ NA GRAFACH
PROSTE RACHUNKI WYKONYWANE ZA POMOCĄ KOMPUTERA WPROWADZENIE DO ALGORYTMIKI
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

PROSTE RACHUNKI WYKONYWANE ZA POMOCĄ KOMPUTERA WPROWADZENIE DO ALGORYTMIKI Maciej M. Sysło Uniwersytet Wrocławski Uniwersytet UMK w Toruniu syslo@ii.uni.wroc.pl informatyka +

Algorytm, algorytmika algorytm od Muhammad informatyka + Algorytm – opis rozwiązania krok po kroku postawionego problemu lub sposobu osiągnięcia jakiegoś celu Pierwszy algorytm – algorytm Euklidesa 300 p.n.e algorytm od Muhammad ibn Musa al-Chorezmi IX w. Algorytmika – dziedzina zajmująca się algorytmami i ich własnościami informatyka +

Algorytmy a informatyka Informatyka – jedna z definicji: dziedzina wiedzy i działalności zajmująca się algorytmami Czy zajmuje się też algorytmami kulinarnymi? Donald E. Knuth: Mówi się często, że człowiek dotąd nie zrozumie czegoś, zanim nie nauczy tego – kogoś innego. W rzeczywistości, człowiek nie zrozumie czegoś (algorytmu) naprawdę, zanim nie zdoła nauczyć tego – komputera. Ralf Gomory (IBM): Najlepszym sposobem przyspieszania komputerów jest obarczanie ich mniejszą liczbą działań (szybszymi algorytmami) Będziemy uczyć komputery, czyli programować je ! informatyka +

Algorytmiczne rozwiązywanie problemu Dla problemu – chcemy otrzymać rozwiązanie komputerowe, które jest: zrozumiałe dla każdego, kto zna problemu poprawne, czyli spełnia specyfikację (opis) problemu efektywne, czyli nie marnuje czasu i pamięci komputera Metoda rozwiązywania: analiza sytuacji problemowej sporządzenie specyfikacji: wykaz danych, wyników i relacji projekt rozwiązania komputerowa realizacja rozwiązania – implementacja testowanie poprawności rozwiązania dokumentacja i prezentacja rozwiązania informatyka +

Rozwiązywanie problemów z pomocą komputerów Objaśnienie dwóch terminów: Problem: problem, gdy nie podano nam, jak należy go rozwiązać, ale wiemy wystarczająco, by poradzić sobie z nim a więc, problem jest dla każdego nie tylko dla orłów Programowanie: komputery wykonują tylko programy cokolwiek uruchamiamy na komputerze: Google, dokument w Word, arkusz w Excel, naciśnięcie klawisza – jest programem każdy widoczny i niewidoczny efekt działania komputera to wynik działania jakiegoś programu Konkluzja: powinniśmy lepiej poznać programowanie komputerów informatyka +

Myślenie algorytmiczne Myślenie komputacyjne (ang Myślenie algorytmiczne Myślenie komputacyjne (ang. computational thinking) Reklama firmy IBM z 1924 roku Komputer to maszyna do myślenia !!! informatyka +

Problemy, algorytmy i ich komputerowe realizacje (implementacje) Plan: Obliczenia w komputerze – czy komputer może wszystko policzyć? trasę dla Premiera kryptogram RSA Liczby dziesiętne, binarne, … – system pozycyjny, zamiana liczb między systemami Obliczanie wartości wielomianu – Schemat Hornera Podnoszenie do potęgi – szybko! Algorytm Euklidesa – rekurencja, jako przedsmak informatyki informatyka +

Czy komputer może wszystko obliczyć , 1 Problem: Znajdź najkrótszą trasę dla Premiera przez wszystkie miasta wojewódzkie. Rozwiązanie: Premier zaczyna w Stolicy a inne miasta może odwiedzać w dowolnej kolejności. Tych możliwości jest: 15*14*13*12*11*…*2*1 = 15! (15 silnia) W 1990 roku było: 48*47*46*…*2*1 = 48! (48 silnia) Jak szybko można obliczyć 15!, a 48! Mając komputer, który wykonuje 1015 (1 petaflops) operacji na sekundę (superkomputer)? 15! = 1307674368000/1015 sek. = ok. 0.01 sek. 48! = 1,2413915592536072670862289047373*1061/1015 = Ile to jest lat? 25! = 15511210043330985984000000/1015 sek. = 15511210043 sek. = = 179528 dni = 491 lat informatyka +

Czy komputer może wszystko obliczyć, 2 Kryptografia: Szyfr RSA, jeden z najpopularniejszych obecnie, bazuje na podnoszeniu do dużej potęgi dużych liczb, np. 123456789098765432123456789098765432112345678998765 43211234567890123456789098765432112345678909876543211234567890987654321 Jak można szybko obliczać takie potęgi? Demo: informatyka +

System dziesiętny, system pozycyjny Liczba dziesiętna: 357 ma wartość (dziesiętną): 357 = 3*100 + 5*10 + 7*1 = 3*102 + 5*101 + 7*100 a zatem liczba: dn-1 dn-2 … d1 d0 która ma n cyfr ma wartość: dn-1*10n-1 + dn-2*10n-2 + … + d1*101 + d0*100 10 – podstawa systemu {0, 1, 2, 3, …, 8, 9} – cyfry 2, 8, 16 – podstawy systemów używanych w komputerach podstawa cyfry 2 0, 1 system binarny 8 0, 1, 2, 3, 4, 5, 6, 7 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 60 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, … informatyka +

System binarny informatyka + Liczba binarna: 10101 = (10101)2 ma wartość (dziesiętną): 1*24 + 0*23 + 1*22 + 0*21 + 1*20 = 24 + 22 + 1 = 16 + 4 + 1 = 21 a zatem liczba binarna: (bn-1 bn-2 … b1 b0)2 która ma n cyfr ma wartość: a = bn-1*2n-1 + bn-2*2n-2 + … + b1*21 + b0*20 (*) Jak szybko obliczać wartość dziesiętną binarnego rozwinięcia? We wzorze (*) zastępujemy 2 przez x i otrzymujemy: a = bn-1*xn-1 + bn-2*xn-2 + … + b1*x1 + b0*x0 Jest to wielomian zmiennej x o współczynnikach 0 lub 1, czyli: Pytanie: Jak szybko obliczać wartość wielomianu? Najbardziej znaczący bit Najmniej znaczący bit Binarne rozwinięcie liczby a informatyka +

Obliczanie wartości wielomianu Obliczanie wartości wielomianu jest bardzo ważną operacją w komputerze, bo wartość każdej funkcji jest liczona jako wartość wielomianu, np. cos x = 1 – 0.49670x2 + 0.03705x4. Wielomian stopnia 2: w(x) = ax2 + bx + c = a*x*x + b*x + c 3 mnożenia 2 dodawania w(x) = ax2 + bx + c = (a*x + b)*x + c 2 mnożenia 2 dodawania Wielomian stopnia 3: w(x) = ax3 + bx2 + cx + d = ((a*x + b)*x + c)*x + d 3 mnoż. 3 dod. Wielomian stopnia n: wn(x) = a0*xn + a1*xn-1 + … + an-1*x + an = = (a0*xn-1 + a1*xn-2 + … + an-1)*x + an = … = = ((…((a0*x + a1)*x + a2)*x + … + an-2)*x + an-1)*x + an informatyka +

Obliczanie wartości wielomianu specyfikacja, algorytm Specyfikacja problemu – dokładny opis problemu Obliczanie wartości wielomianu specyfikacja, algorytm Problem Wielomian – Obliczanie wartości wielomianu Dane: n – nieujemna liczba całkowita a0, a1, a2, ..., an – n + 1 współczynników wielomianu z – wartość argumentu – obliczamy wn(z). Wynik: wn(z) – czyli wartość wielomianu wn(x) w punkcie x = z Algorytm do obliczania wartości wielomianu: wn(z) = ((…((a0*z + a1)*z + a2)*z + … + an-2)*z + an-1)*z + an Schemat Hornera: y := a0 y := y*z + a1 y := y*z + a2 ….. y := y*z + an-1 y := y*z + an n mnożeń i n dodawań Nie ma szybszego algorytmu!!! y := a0 y := y*z + ai dla i = 1, 2, …, n informatyka +

Schemat blokowy algorytmu Hornera Instrukcja warunkowa: rozgałęzienia algorytmu i := 0; y := a0 Początkowe wartości Czy i = n Czyli, czy wyczerpano wszystkie współczynniki Instrukcja iteracyjna Tak Nie Ada Augusta, córka Byrona, uznawana powszechnie za pierwszą programistkę komputerów, przełomowe znaczenie maszyny analitycznej Ch. Babbage’a, pierwowzoru dzisiejszych komputerów, upatrywała właśnie „w możliwości wielokrotnego wykonywania przez nią danego ciągu instrukcji, z liczbą powtórzeń z góry zadaną lub zależną od wyników obliczeń”, a więc w iteracji. Wyprowadź wartość y Koniec algorytmu i := i + 1 y := y*z + ai informatyka +

Pełny schemat blokowy algorytmu Hornera informatyka +

Algorytm Hornera w postaci programu (Pascal) program Horner; var i,n :integer; a,y,z :real; begin read(n); read(z); read(a); y:=a; for i:=1 to n do begin y:=y*z+a end; write(y) end. nazwa programu deklaracje, typy zmiennych blok programu – początek czytaj n, czytaj z czytaj pierwszy współczynnik początkowa wartość wyniku pętla od 1 do n czytaj kolejny współczynnik powiększenie wyniku iteracja – koniec pisz wynik blok programu – koniec informatyka +

Warsztaty Algorytm, język programowania, komputer Proces komputerowej realizacji algorytmu: Opis algorytmu Zapis w języku programowania (Pascal, C++) Przetłumaczenie na język zrozumiały przez komputer Wykonanie Testowanie informatyka +

Algorytm Hornera – współczynniki w tablicy (Pascal) Deklaracja tablicy Program Horner_tablica; var i,n :integer; y,z:real; a:array[0..100] of real {Co najwyzej 100 wspolczynnikow} begin read(n); for i:=0 to n do read(a[i]); writeln(' z y'); read(z); while z <> 0 do begin y:=a[0]; for i:=1 to n do y:=y*z+a[i]; write(' ',y:2:5); writeln; read(z) end end. Czytanie współczynników Instrukcja iteracyjna z warunkiem: Obliczanie wartości tego samego wielomianu tak długo, jak długo argument jest różny od zera, czyli z <> 0. informatyka +

Zastosowania Algorytmu Hornera Obliczanie wartości wielomianów. Obliczanie wartości dziesiętnej liczb danych w systemie o podstawie różnej od 10, np. liczb binarnych. Uwaga: jest to bardzo prosta metoda, np. dla obliczeń na kalkulatorze bez pamięci. Szybkie potęgowanie (w dalszej części) informatyka +

Otrzymywanie postaci binarnej liczb Szkolna metoda: dzielimy przez dwa tak długo, jak długo iloraz jest większy od zera – słupki: dzielenie iloraz reszta 187|2 93 1 93|2 46 1 46|2 23 0 23|2 11 1 11|2 5 1 5|2 2 1 2|2 1 0 1|2 0 1 Reprezentacja od końca reszt: 187 = (10111011)2 Bardzo prosty program Program Rozwiniecie_binarne; var a:integer; begin read(a); while a <> 0 do begin write(a mod 2,' '); a:=a div 2 end end. Ciekawe pytanie: jaka jest długość rozwinięcia binarnego liczby n? informatyka +

Podnoszenie do potęgi, 1 informatyka + Dane: m – liczba naturalna, x – liczba rzeczywista Wynik: y = xm Algorytmy: korzystają ze spostrzeżenia: jeśli m jest parzyste, to xm = (xm/2)2 jeśli m jest nieparzyste, to xm = (xm –1)x (m – 1 staje się parzyste). Faktycznie, korzysta się z postaci binarnej wykładnika m. Przykład: m = 22 Sposób 1. Rozłóż m na sumę potęg liczby 2 mamy: 22 = 2 + 4 + 16 A stąd: x22 = x2+4+16 = x2 *x4 *x16 Kolejne mnożenia: x2, x4 = (x2)2, x8 = (x4)2, x16 = (x8)2, y = x2 *x4 = x6, y = y*x16 6 mnożeń (kwadrat to jedno mnożenie) informatyka +

22 = 1*24 + 0*23 + 1*22 + 1*21 + 0*20 = (((2 + 0)2 + 1)2 + 1)2 +0 Podnoszenie do potęgi, 2 Znajdź rozwinięcie binarne liczby m; mamy: 22 = (10110)2 Przedstaw wykładnik w postaci schematu Hornera; mamy: 22 = 1*24 + 0*23 + 1*22 + 1*21 + 0*20 = (((2 + 0)2 + 1)2 + 1)2 +0 Z postaci wykładnika określ kolejność mnożeń: x(((2+0)2+1)2+1)2+0 = x(((2+0)2+1)2+1)2 = (x(((2+0)2+1)2+1)2 = (x(((2+0)2+1)2 x)2 = = (x(((2+0)2+1)2 x)2 = (x(((2+0)2x)2 x)2 = (x(((2+0)2x)2x)2 = (((x2)2x)2x)2 = x22 Kolejne mnożenia: x2, x4 = (x2)2, x5 = (x4)x, x10 = (x5)2, x10x = x11, (x11)2 = x22 Ten algorytm również wykonał 6 mnożeń, ale liczy inne iloczyny. Obie metody są bardzo efektywne i praktyczne – wykonują co najwyżej dwa razy więcej mnożeń niż wynosi długość liczby w postaci binarnej informatyka +

Algorytm Euklidesa, 1 informatyka + Uważany za pierwszy algorytm – powstał 300 p.n.e. Chociaż Chińczycy i Hindusi wcześniej tworzyli przepisy obliczeniowe. Przez długie lata był synonimem algorytmu i od niego zaczynały wszystkie książki akademicki. Ma bardzo wiele zastosowań praktycznych i teoretycznych: arytmetyka, czyli obliczenia na liczbach całkowitych kryptografia – RSA łamigłówki Przykład: Czy za pomocą naczyń 6 i 10 litrowych można napełnić pojemnik 15 litrami wody – wodę można dolewać lub pobierać z pojemnika tylko całymi naczyniami. informatyka +

Algorytm Euklidesa, 2 informatyka + Problem NWD(m,n) – Największy Wspólny Dzielnik Dane: m, n – liczby naturalne (można przyjąć, że m ≤ n) Wynik: NWD(m,n) – Największy wspólny dzielnik liczb m i n. Przykłady: NWD(42,14) = 14 NWD(24,16) = 8 NWD(13,21) = 1 13 i 21 są względnie pierwsze NWD(0,31) = 31 0 jest podzielne przez każdą liczbę Zasada, wykorzystana w algorytmie – Twierdzenie o ilorazie i reszcie n = q*m + r, gdzie 0 ≤ r < m q – iloraz, r – reszta. informatyka +

Algorytm Euklidesa, 3 informatyka + Wnioski: Jeśli r = 0, to m dzieli n, czyli NWD(m,n) = m Jeśli r ≠ 0, to mamy r = n – qm, czyli każda liczba, która dzieli n oraz m dzieli również r, w szczególności największa taka liczba. Stąd mamy: NWD(m,n) = NWD(r,m) Przykład: NWD(25,70) = NWD(20,25) = NWD(5,20) = NWD(0,5) = 5 NWD(25,70): 70 = 2*25 + 20 NWD(20,25) 25 = 1*20 + 5 NWD(5,20) 20 = 4*5 + 0 r = 0, więc NWD( , ) = 5 Generowane liczby maleją: 70, 25, 20, 5, 0 więc algorytm jest skończony informatyka +

Algorytm Euklidesa, 4 – dwie realizacje Realizacja z funkcją: program Euklides_funkcja; var m,n:integer; function NWD(m,n:integer):integer; var r:integer; begin while m>0 do begin r:=n mod m; n:=m; m:=r end; NWD:=n read(m,n); writeln(NWD(m,n)) end. program Euklides; var m,n,r:integer; begin read(m,n); while m>0 do begin r:=n mod m; n:=m; m:=r end; write(n) end. Funkcja Wywołanie funkcja informatyka +

Algorytm Euklidesa, 5 – realizacja rekurencyjna program Euklides_rekurencja; var m,n:integer; function NWD_rek(m,n:integer):integer; begin if m>n then NWD_rek:=NWD_rek(n,m) else if m = 0 then NWD_rek:=n else NWD_rek:=NWD_rek(n mod m,m) end; read(m,n); writeln(NWD_rek(m,n)) End. Funkcja rekurencyjna Wywołania rekurencyjne informatyka +

Algorytm Euklidesa, 6 – zagadki Przykład 1. Czy za pomocą naczyń 6 i 10 litrowych można napełnić pojemnik 15 litrami wody – wodę można dolewać lub pobierać z pojemnika tylko całymi naczyniami. Jeśli istnieje rozwiązanie, to istnieją takie x i y, że 6x + 10y = 15 Czy istnieją? Uzasadnij odpowiedź. Rozwiązanie 1. W tym przypadku nie istnieje rozwiązanie. Istnieje, gdy prawa strona jest wielokrotnością NWD(6,10). Przykład 2. W jednym pojemniku są klocki o wysokości p, a w drugim – o wysokości q. Czy zawsze można zbudować wieże z każdego rodzaju klocków, które mają tę samą wysokość? Jeśli jest to możliwe, to jaka jest najmniejsza wysokość takich wież? Rozwiązanie 2. Zawsze możliwe. Najmniejsza wysokość NWW(p,q). Pytanie 3. Jaki zachodzi związek między NWD(m,n) i NWW(m,n)? Mamy NWW(m,n) = (m*n)/NWD(m,n) informatyka +

Pokrewne zajęcia w Projekcie Informatyka + Wykład+Warsztaty (Wszechnica Poranna): Wprowadzenie do algorytmiki i programowania – wyszukiwanie i porządkowanie informacji Proste rachunki wykonywane za pomocą komputera. Techniki algorytmiczne – przybliżone (heurystyczne) i dokładne. Wykłady (Wszechnica Popołudniowa): Czy wszystko można policzyć na komputerze? Porządek wśród informacji kluczem do szybkiego wyszukiwania. Dlaczego możemy się czuć bezpieczni w sieci, czyli o szyfrowaniu informacji. Znajdowanie najkrótszych dróg, najniższych drzew, najlepszych małżeństw informatyka +

Pokrewne zajęcia w Projekcie Informatyka + Kursy (24 godz.) – Wszechnica na Kołach: Algorytmy poszukiwania i porządkowania. Elementy języka programowania Różnorodne algorytmy obliczeń i ich komputerowe realizacje Grafy, algorytmy grafowe i ich komputerowe realizacje  Kursy (24 godz.) – Kuźnia Informatycznych Talentów – KIT dla Orłów: Przegląd podstawowych algorytmów Struktury danych i ich wykorzystanie Zaawansowane algorytmy Tendencje – Wykłady  Algorytmy w Internecie, K. Diks Czy P = NP, czyli jak wygrać milion dolarów w Sudoku, J. Grytczuk Między przeszłością a przyszłość informatyki, M.M Sysło informatyka +