Úvod do teoretické informatiky(2017/2018) cvičení 11 1
|
|
- Drahomíra Sedláčková
- před 6 lety
- Počet zobrazení:
Transkript
1 Úvod do teoretické informatiky(2017/2018) cvičení 11 1 Cvičení 11 Příklad 1: Vezměme si následující Algoritmus 1. Vstupem tohoto algoritmu může být libovolné přirozené číslo n. Algoritmus 1: 1 PrintSeq(n): 2 begin 3 print n 4 while n > 1do 5 if n mod 2 = 0then 6 n := n/2 7 else 8 n := 3 n+1 9 end 10 print n 11 end 12 end a) Nakreslete graf řídícího toku tohoto algoritmu. b) Popište výpočet, který tento algoritmus provede, pokud jako vstup dostane číslo 5. Vypište posloupnost jednotlivých konfigurací při tomto výpočtu. c) Kolik kroků provede tento algoritmus, když jako vstup dostane číslo 7? Co bude výstupem? Poznámka: Předpokládejte, že hodnoty proměnné n mohou být libovolná(neomezeně velká) přirozená čísla. Řešení: a) GrafřídícíhotokujeuvedennaObrázku1. b) Výpočet vypadá následovně
2 2 Úvod do teoretické informatiky(2017/2018) cvičení 11 0 print n PSfrag replacements 6 [n 1] 1 [n > 1] print n 2 [n mod 2 = 0] [n mod 2 0] 3 4 n := n/2 n := 3n+1 5 Obrázek 1: Graf řídícího toku Krok Stav n
3 Úvod do teoretické informatiky(2017/2018) cvičení 11 3 c) Výstupembudeposloupnost 7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1. Celkový počet kroků se určí následovně: Cyklem se projde celkem 16 krát. Při každém průchoducyklemseprovedou 4kroky.Nazačátkuseprovedemimocyklusjedenkroka koncitakéjedenkrok.celkemsetedyprovede = 66kroků. Příklad 2: a) Navrhněte a popište pseudokódem algoritmus pro řešení následujícího problému: Vstup: Přirozené číslo n. Otázka: Je n prvočíslo? Nakreslete graf řídícího toku vámi navrženého algoritmu. Odsimulujtečinnosttohotoalgoritmuproněkterévstupy(např.n = 0,n = 1, n = 2, n = 3, n = 4, n = 15, n = 16,apod.).Určete,kolikkrokůvášalgoritmusprotyto vstupy provede. b) Navrhněte a popište pseudokódem algoritmus pro řešení následujícího problému(jedná se o problém rozkladu přirozeného čísla na prvočísla): Vstup:Přirozenéčíslo n,kde n > 1. Výstup:Prvočísla p 1,p 2,...,p k taková,že p 1 p 2... p k = n. Poznámka: Algoritmus může vzniknout vhodnou modifikací a rozšířením algoritmu navrženého v předchozím bodě nebo případně můžete tento algoritmus použít jako podprogram. Řešení: a) Přímočaré řešení je Algoritmus 2, o něco efektivnější řešení je Algoritmus 3. Algoritmus 2: Testování prvočíselnosti verze 1 1 Prime(n): 2 begin 3 if n 1then 4 return False 5 for i := 2to n 1do 6 if n mod i = 0then 7 return False 8 end 9 return True 10 end b) Například to jde udělat pomocí Algoritmu 4.
4 4 Úvod do teoretické informatiky(2017/2018) cvičení 11 Algoritmus 3: Testování prvočíselnosti verze 2 1 Prime(n): 2 begin 3 if n 1then 4 return False 5 elseif n = 2then 6 return True 7 elseif n mod 2 = 0then 8 return False 9 else 10 i := 3 11 while i i ndo 12 if n mod i = 0then 13 return False 14 end 15 i := i+2 16 end 17 return True 18 end 19 end Algoritmus 4: Rozklad na prvočísla 1 Prime-Factorization(n): 2 begin 3 i := 2 4 while i ndo 5 while n mod i = 0do 6 print i 7 n := n/i 8 end 9 i := i+1 10 end 11 end
5 Úvod do teoretické informatiky(2017/2018) cvičení 11 5 Příklad 3: Níže uvedený Algoritmus 5 by měl řešit následující problém: Vstup: Přirozené číslo n. Výstup: Hodnota n!(tj. faktoriál čísla n). Připomeňme, že funkce faktoriál je definována následovně: 0! = 1, n! = (n 1)! npro n 1. Pro jednoduchost předpokládejte, že hodnotami proměnných mohou být libovolná(neomezeně velká) přirozená čísla. Algoritmus 5: Výpočet faktoriálu 1 Factorial(n): 2 begin 3 x := 1 4 for i := 2to ndo 5 x := x i 6 end 7 return x 8 end a) Nakreslete graf řídícího toku tohoto algoritmu. b) Popište výpočet, který tento algoritmus provede, pokud jako vstup dostane číslo 5. Vypište posloupnost jednotlivých konfigurací při tomto výpočtu. c) Nyníjecílemukázat,žedanýalgoritmusjekorektní,tj.prokaždývstupsepokonečném počtu kroků zastaví a vydá správný výsledek. V případě Algoritmu 5 je výhodné analýzu korektnosti rozdělit na dvě části na analýzu případu,kdy n = 0,anaanalýzupřípadů,kdy n 1. Ukažte, že algoritmus korektně pracuje pro vstup, kde n = 0. Zde stačí odsimulovat výpočet daného algoritmu pro tento vstup(a zkontrolovat, že se zastaví a jeho výstup odpovídá očekávanému výsledku). Dáletedypředpokládejte,žeprohodnotunavstupuplatí n 1(tj.následujícíbodyřešte s tímto dodatečným předpokladem): Zformulujte hypotézy ohledně toho, jaké invarianty platí v jednotlivých místech v kódu(tj. v jednotlivých vrcholech grafu řídícího toku). Snažte se navrhnout takové invarianty, aby se pomocí nich dala zdůvodnit korektnost výše uvedeného algoritmu. Ověřte, že invarianty navržené v předchozím bodě opravdu platí. S využitím těchto invariantů zdůvodněte, že platí, že pokud výpočet algoritmu skončí, tak algoritmus vrátí správný výsledek.
6 6 Úvod do teoretické informatiky(2017/2018) cvičení 11 0 x := 1 PSfrag replacements 1 i := 2 [i > n] 2 result := x [i n] x := x i i := i+1 4 Řešení: Obrázek 2: Graf řídícího toku funkce Factorial Ukažte, že pro libovolný vstup platí, že výpočet výše uvedeného algoritmu skončí po konečném počtu kroků. a) GrafřídícíhotokujenaObrázku2. b) Výpočet bude vypadat takto: Krok Stav n i x result 0 0 5??? 1 1 5? 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
7 Úvod do teoretické informatiky(2017/2018) cvičení 11 7 c) Případ,kdy n = 0,jetriviální algoritmusvracívýsledek 1,cožjevpořádku. Dálesetedypředpokládá,že n 1. Invarianty, které platí v jednotlivých stavech: Stav 0: Stav 1: x = 1 Stav 2: 2 i n+1, x = (i 1)! Stav 3: 2 i n, x = (i 1)! Stav 4: 2 i n, x = i! Stav 5: i = n+1, x = n! Stav 6: i = n+1, x = n! To,žesealgoritmuszastaví,plyneztoho,žeseskaždouiteracícyklusnižujehodnota (n+1) i.tatohodnotanikdyneklesnepodnulu,takžesenemůžesnižovatdonekonečna. Poznámka formální důkaz by mohl vypadat tak, že se řídícím stavům přiřadí následující vektory: Stav 0: (4) Stav 1: (3) Stav 2: (2,n+1 i,2) Stav 3: (2,n+1 i,1) Stav 4: (2,n+1 i,0) Stav 5: (1) Stav 6: (0) Snadno se ověří, že se s každým krokem jde do konfigurace, které je přiřazen lexikograficky menší vektor. Příklad 4: Níže uvedený Algoritmus 6 by měl sloužit k nalezení prvku v setříděném poli. Jedná se o jednu možnou variantu algoritmu pro binární vyhledávání(metodou půlení intervalu). Z hlediska této úlohy není podstatné, jakého konkrétního typu jsou prvky tohoto pole, pro jednoduchost můžeme předpokládat, že jsou to celá čísla. Prvky pole jsou indexovány od nuly,tj.pokudpole Amá nprvků,jednáseoprvky A[0],A[1],...,A[n 1]. Algoritmus by měl řešit následující problém: Vstup:Hledanáhodnota x,pole Aonprvcích(kde n 0),jehožprvkyjsou setříděny od nejmenšího po největší, tj. pro všechna přirozená čísla i a j taková,že 0 i < j < n,platí A[i] A[j]. Výstup: Přirozené číslo i udávající index prvního výskytu hodnoty x v poli A nebospeciálníhodnotanotfoundvpřípadě,kdysehodnota xvpoli A nenachází. Poznámka: Pro jednoduchost předpokládejte, že hodnoty proměnných mohou být libovolně velká celá čísla.
8 8 Úvod do teoretické informatiky(2017/2018) cvičení 11 Algoritmus 6: Binární vyhledávání 1 BSearch(x,A,n): 2 begin 3 l := 0 4 r := n 5 while l < rdo 6 k := (l+r)/2 7 if A[k] < xthen 8 l := k+1 9 else 10 r := k 11 end 12 end 13 if l < nand A[l] = xthen 14 return l 15 end 16 return NotFound 17 end a) Nakreslete graf řídícího toku tohoto algoritmu. b)vypište posloupnostkonfigurací ve výpočtu, kde vstupemjsou hodnoty x = 6, A = [1,3,3,4,6,6,8,9,10,10,12,13]a n = 12. c) Řekněme, že bychom v algoritmu provedli následující změny(vždy jen jednu z těchto změn). Pro každou z těchto změn najděte příklad vstupu, při kterém algoritmus(s touto změnou) nepracuje korektně(např. se nezastaví, přistupuje k prvkům pole mimo povolený rozsah, vrací chybný výstup, apod.). (a) Nařádku5změnitpodmínku l < rna l r. (b)nařádku8změnitpřiřazení l := k+1na l := k. (c) Nařádku10změnitpřiřazení r := kna r := k 1. (d)nařádku10změnitpřiřazení r := kna r := k+1. (e) Nařádku6změnitpřiřazení k := (l+r)/2 na k := (l+r)/2 (resp.na k := (l+r+1)/2 ). d) Navrhněte vhodné invarianty, které podle vás platí v jednotlivých vrcholech grafu řídícího toku. Nápověda:Předprovedenímtestu l < rnařádku5byměloplatitnásledující: 0 l r < n, prokaždé itakové,že 0 i < l,je A[i] < x, prokaždé itakové,že r i < n,je A[i] x. e) Ověřte, že invarianty navržené v předchozím bodě opravdu platí.
9 PSfrag replacements Úvod do teoretické informatiky(2017/2018) cvičení l := 0 1 r := n 2 [l < r] [l r] [l < n] 7 [l n] 3 k := (l+r)/2 [A[l] = x] 8 [A[l] x] l := k+1 4 r := k 9 10 [A[k] < x] [A[k] x] 5 6 result := l result := NotFound 11 Obrázek 3: Graf řídícího toku funkce BSearch f) Zjistěte, zda se algoritmus pro každý vstup zastaví. Pokud ano, dokažte to, pokud ne, uveďte příklad vstupu, pro který se výpočet algoritmu nikdy nezastaví. g) Na základě předchozí analýzy buď zdůvodněte, že je výše uvedený algoritmus korektní, nebo uveďte příklad vstupu, pro který se nechová korektně. h) Řekněme, že bychom měli implementaci tohoto algoritmu, kde by pro hodnoty proměnných n, l, rakbylapoužita32-bitováceláčíslaseznaménkem(tj.čísla,jejichžhodnotymohou býtvrozsahu 2 31,...,2 31 1)aiveškeréaritmetickéoperacestěmitoproměnnýmiby byly prováděny na tomto datovém typu. Bude algoritmus, tak jak byl popsán, správně fungovatprovšechnyvstupy,kde n < 2 31? Řešení: a) GrafřídícíhotokujenaObrázku3. b)výpočetvypadánásledovně(vevšechkonfiguracíchjea = [1,3,3,4,6,6,8,9,10,10,12,13], n = 12ax = 6,takžetytohodnotyjsoupropřehlednostztabulkyvypuštěny):
10 10 Úvod do teoretické informatiky(2017/2018) cvičení 11 Krok Stav l r k result 0 0???? 1 1 0??? ?? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? c) (a) Nařádku5změnitpodmínku l < rna l r: x = 2, A = [0,1], n = 2 budepřistupovatkprvku A[2] x = 1, A = [0,1], n = 2 nezastavíse (b)nařádku8změnitpřiřazení l := k+1na l := k. x = 2, A = [0,1], n = 2 nezastavíse x = 1, A = [0,1], n = 2 nezastavíse (c) Nařádku10změnitpřiřazení r := kna r := k 1. x = 1, A = [0,1], n = 2 vrátínotfoundmísto 1 (d)nařádku10změnitpřiřazení r := kna r := k+1. x = 1, A = [0,1], n = 2 nezastavíse (e) Nařádku6změnitpřiřazení k := (l+r)/2 na k := (l+r)/2 (resp.na k := (l+r+1)/2 ). x = 1, A = [0,1], n = 2 nezastavíse x = 0, A = [0,1], n = 2 nezastavíse d)vnásledujícímpopisunabývajíproměnné l, r, kaijakohodnotyceláčísla,tj.hodnoty z množiny Z. Při použití kvantifikátorů se vždy kvantifikuje přes množinu Z, pro přehlednosttoaleneníuvedeno,abybylzápisstručnější.invarianty n 0a i j(0 i < j < n A[i] A[j]),kteréplatívevšechstavech,jsourovněžujednotlivýchstavůpro přehlednost vypuštěny.
11 Úvod do teoretické informatiky(2017/2018) cvičení Invarianty, které platí v jednotlivých stavech: Stav 0: Stav 1: l = 0 Stav 2: 0 l r n, i(0 i < l A[i] < x), i(r i < n A[i] x) Stav 3: 0 l < r n, i(0 i < l A[i] < x), i(r i < n A[i] x) Stav 4: 0 l < r n, i(0 i < l A[i] < x), i(r i < n A[i] x), k = (l+r)/2 Z l < rak= (l+r)/2 navícvyplývá l k < r.(stačísiuvědomit,žepokud k = (l+r)/2,tak 2k l+r < 2k+2.Protože l < r,tak r l > 0. Protože 2k l+r,platí 2k < (l+r)+(r l) = 2r,zčehožvyplývá,že k < r. Podobnězl+r < 2k+2plyne 2l = (l+r) (r l) < 2k+2,atedy l < k+1,což platíprávětehdy,když l k.) Stav 5: 0 l < r n, i(0 i k A[i] < x), i(r i < n A[i] x), k = (l+r)/2, l k < r Stav 6: 0 l < r n, i(0 i < l A[i] < x), i(k i < n A[i] x), k = (l+r)/2, l k < r Stav 7: 0 l n, l = r, i(0 i < l A[i] < x), i(l i < n A[i] x) Stav 8: 0 l < n, i(0 i < l A[i] < x), i(l i < n A[i] x) Stav 9: 0 l < n, A[l] = x, i(0 i < l A[i] < x), i(l < i < n A[i] x) Stav 10: Platí jedna z následujících dvou možností: l = n, i(0 i < n A[i] < x), 0 l < n, i(0 i < l A[i] < x), i(l i < n A[i] > x) Tyto dvě možnosti se dají zhrnout do jediného případu: 0 l n, i(0 i < l A[i] < x), i(l i < n A[i] > x) Stav 11: Platí jedna z následujících dvou možností: result = l, 0 l < n, A[l] = x, i(0 i < l A[i] < x), i(l < i < n A[i] x) result =NotFound, 0 l n, i(0 i < l A[i] < x), i(l i < n A[i] > x) e) Stačí probrat všechny hrany a pro každou z nich zkontrolovat, že pokud platí příslušný invariant před provedením dané instrukce, pak bude odpovídající invariant platit i po jejím provedení. f)to,žesealgoritmuszastaví,plyneztoho,žeseskaždouiteracícyklusnižujehodnota r l.protožeplatíinvariant l r,tatohodnotanikdyneklesnepodnulu,takžesenemůže snižovat donekonečna. To,žesehodnota r lskutečněskaždouiteracícyklusnižuje,jevidětztoho,žepřikaždé iteraci cyklu musí nastat jeden ze dvou případů: Provedesepřiřazení l := k + 1:Vzhledemktomu,žepředtímtopřiřazenímplatí l k,tímtopřiřazenímsezvětšíhodnotaproměnnél.hodnotaproměnnérsevtomto případěnemění,takžehodnota r lsesníží. Provedesepřiřazení r := k:vzhledemktomu,žepředtímtopřiřazenímplatí k < r,tímtopřiřazenímsesnížíhodnotaproměnné r.hodnotaproměnné lsevtomto případěnemění,takžehodnota r lsesníží.
12 12 Úvod do teoretické informatiky(2017/2018) cvičení 11 Formální důkaz toho, že se algoritmus zastaví by mohl vypadat tak, že se konfiguracím přiřadí následující vektory na základě řídícího stavu a ověří se, že při provedení každé instrukce se z aktuální konfigurace přejde do konfigurace, které je přiřazen lexikograficky menší vektor. Stav 0: (6) Stav 1: (5) Stav 2: (4,r l,3) Stav 3: (4,r l,2) Stav 4: (4,r l,1) Stav 5: (4,r l,0) Stav 6: (4,r l,0) Stav 7: (3) Stav 8: (2) Stav 9: (1) Stav 10: (1) Stav 11: (0) g) Z předchozí analýzy vyplývá, že se algoritmus pro každý vstup zastaví a vrátí očekávaný výsledek. Pokud tedy není ve vyše uvedené analýze nějaká chyba, tak by měl být algoritmus korektní. h) Označme MaxInt maximální hodnotu, kterou mohou nabývat proměnné daného celočíselnéhotypu.vpřípadě32-bitovýchcelýchčíselseznaménkembudemaxint = = Z výše popsaných invariantů vyplývá, že proměnné l, r a k nabývají během výpočtu hodnotyzintervaluod 0do n(včetně).pokudtedy 0 n MaxInt,takiprohodnoty těchtotříproměnnýchbudeplatit,žejsouvždyvintervalu 0,1,...,MaxInt. Mohlobysetedyzdát,žejevševpořádku.Veskutečnostijealeproblémsvýpočtemhodnotyvýrazunapravéstraněvpřiřazení k := (l+r)/2,kdesehodnota l+rdotohoto intervalu nemusí vejít. Co se v takovém případě stane, závisí na sémantice daného programovacího jazyka, detailech implementace apod. V některých jazycích(např. C, C++) je chování v případě přetečení znamékového celého čísla nedefinované, v jiných(např. Java) sevýpočetprovedevmodulárníaritmeticemodulo 2 32,apod.Přitomtochovánísenapříkladprohodnoty l = a r = chybněspočítá l+r = 3ak = 1. Nejen,žepakneplatíinvariant l k < r,alepřistupujesepakkprvku A[ 1],tedymimo povolený rozsah indexů. Příklad 5: Navrhněte algoritmus pro řešení následujícího problému. Jedná se o problém přiřadit vrcholům grafu barvy z dané množiny barev tak, aby žádné dva sousední vrcholy nebyly obarvenystejnoubarvou.barvyjsouoznačenyčísly 1,2,...,k,kde kjecelkovýpočetbarev, kterémámekdispozici.pokudmámedángraf G = (V,E),kde Vjemnožinajehovrcholů a E množina jeho hran, obarvením grafu G pomocí k barev budeme rozumět libovolnou takovoufunkci f : V {1,2,...,k},kdeprokaždouhranu {u,v} E(kde u,v V)platí f(u) f(v). Poznámky: Vstup:Neorientovanýgraf G = (V,E)apřirozenéčíslo k. Výstup: Nějaké obarvení grafu G pomocí k barev nebo informace, že žádné takové obarvení neexistuje.
13 Úvod do teoretické informatiky(2017/2018) cvičení Předpokládejte,ževrcholygrafu Gjsouoznačenyčísly 1,2,...,n(kde njecelkový početvrcholů),ažegraf Gjezadánnavstupuveformě,kdyjedánototočíslo na seznam hran, kde je každá hrana reprezentována jako dvojice čísel udávajících čísla vrcholů spojených touto hranou. Může být rozumné celé řešení rozložit na několik podprogramů(funkcí, procedur, metod,...), řešících jednotlivé podúlohy. U podprogramů řešících jednoduché dílčí podúlohy, kde je jasné, jak by se daný podprogram dal implementovat, není třeba detailně (např. pomocí pseudokódu) popisovat činnost tohoto podprogramu, ale stačí stručně slovně popsat, co má tento podprogram dělat(není třeba popisovat, jak to bude dělat). Oproti tomu klíčové části algoritmu by měly být popsány přesně a podrobně, nejlépe pomocí pseudokódu, tak, aby jejich případná implementace v nějakém programovacím jazyce spočívala jen v rutinním přepsání tohoto pseudokódu do daného programovacího jazyka. Při řešení může být výhodné použít rekurzi. Alespoň neformálně pak zdůvodněte, proč je vámi navržený algoritmus korektní, tj. čím jezaručeno,žeseprokaždývstupzastavípokonečnémpočtukrokůaževydásprávný výsledek. Řešení: Příkladem přímočarého(ale nepříliš efektivního) řešení je Algoritmus 7. V tomto algoritmu se předpokládá, že n, k, f a neighbours jsou globální proměnné s následujícím významem(všechny ostatní proměnné jsou lokální): n početvrcholůgrafu k početbarev,kteréjsoukdispozici f pole reprezentující aktuální přiřazení barev vrcholům. Barvy jsou reprezentovány čísly 1,2,...,k.Číslo 0znamená,žedanémuvrcholunenízatímpřiřazenažádnábarva. neighbours polepřiřazujícíkaždémuvrcholumnožinujehosousedů,tj.i neighbours[i] právětehdy,kdyžvrcholy iai jsouspojenyhranou. Pole f a neighbours jsou indexována od jedné. Procedura Read-Input načte graf a číslo k, procedura Print-Solution pak vypisuje nalezené obarvení grafu. Jedná se o řešení hrubou silou, které systematicky vyzkouší všechna možná obarvení. Pokud tedy existuje alespoň obarvení daného grafu k barvami, tento algoritmus nějaké takové obarvení najde.
14 14 Úvod do teoretické informatiky(2017/2018) cvičení 11 Algoritmus 7: Barvení grafu 1 Main(): 2 begin 3 Read-Input() 4 for i := 1to ndo 5 f[i] := 0 6 end 7 if Search(1) then 8 Print-Solution(f) 9 else 10 print No solution 11 end 12 end 13 Search(i): 14 begin 15 if i > nthen 16 return True 17 end 18 for c := 1to kdo 19 if i neighbours[i] : f[i ] cthen 20 f[i] := c 21 ifsearch(i+1)then 22 return True 23 end 24 f[i] := 0 25 end 26 end 27 return False 28 end
Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39
Algoritmy Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna 2018 1/ 39 Algoritmy Příklad: Popis algoritmu pomocí pseudokódu: Algoritmus 1: Algoritmus pro nalezení největšího prvku v poli 1 Find-Max(A,n):
Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012
Obecná informatika Přednášející Putovních přednášek Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Podzim 2012 Přednášející Putovních přednášek (MFF UK) Obecná informatika Podzim 2012 1 / 18
Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem
Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel
IB108 Sada 1, Příklad 1 Vypracovali: Tomáš Krajča (255676), Martin Milata (256615)
IB108 Sada 1, Příklad 1 ( ) Složitost třídícího algoritmu 1/-Sort je v O n log O (n.71 ). Necht n = j i (velikost pole, které je vstupním parametrem funkce 1/-Sort). Lehce spočítáme, že velikost pole předávaná
V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2
Euklidův algoritmus Doprovodný materiál pro cvičení Programování I. NPRM044 Autor: Markéta Popelová Datum: 31.10.2010 Euklidův algoritmus verze 1.0 Zadání: Určete největšího společného dělitele dvou zadaných
Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr
Seminář z IVT Algoritmizace Slovanské gymnázium Olomouc Tomáš Kühr Algoritmizace - o čem to je? Zatím jsme se zabývali především tím, jak určitý postup zapsat v konkrétním programovacím jazyce (např. C#)
Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
Principy indukce a rekursivní algoritmy
Principy indukce a rekursivní algoritmy Jiří Velebil: A7B01MCS 19. září 2011: Indukce 1/20 Příklad Místností rozměru n budeme rozumět šachovnici rozměru 2 n 2 n, ze které je jedno (libovolné) pole vyjmuto.
NP-úplnost problému SAT
Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x
PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2
PI JE JEDNODUCHÝ IMPERATIVNÍ PROGRAMOVACÍ JAZYK OBSAHUJE PODPORU ANOTACÍ NEOBSAHUJE NĚKTERÉ TYPICKÉ KONSTRUKTY PROGRAMOVACÍCH JAZYKŮ JAKO JSOU REFERENCE, UKAZATELE, GLOBÁLNÍ PROMĚNNÉ PODOBÁ SE JAZYKU C
Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek
Hranová konzistence Arc consistency AC Nejprve se zabýváme binárními CSP podmínka odpovídá hraně v grafu podmínek Hrana (V i, V j ) je hranově konzistentní, právě když pro každou hodnotu x z aktuální domény
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.
Přiřazovací příkaz V := E, V jednoduchá nebo indexovaná proměnná, E výraz, jehož typ je kompatibilní podle přiřazení s typem proměnné V. 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.
Paralelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Dijkstrův algoritmus
Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované
Standardní algoritmy vyhledávací.
Standardní algoritmy vyhledávací. Vyhledávací algoritmy v C++ nám umožňují vyhledávat prvky v datových kontejnerech podle různých kritérií. Také se podíváme na vyhledávání metodou půlením intervalu (binární
Složitost Filip Hlásek
Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,
NPRG030 Programování I, 2018/19 1 / :03:07
NPRG030 Programování I, 2018/19 1 / 20 3. 12. 2018 09:03:07 Vnitřní třídění Zadání: Uspořádejte pole délky N podle hodnot prvků Měřítko efektivity: * počet porovnání * počet přesunů NPRG030 Programování
Týden 14. Přednáška. Teoretická informatika průběh výuky v semestru 1. PSPACE, NPSPACE, PSPACE-úplnost
Teoretická informatika průběh výuky v semestru 1 Týden 14 Přednáška PSPACE, NPSPACE, PSPACE-úplnost Uvědomili jsme si nejprve, že např. pro zjištění toho, zda Bílý má nějakou strategii ve hře ŠACHY, která
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Vyhledávání 201 / 344 Osnova přednášky
1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1
1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1 1. Prvocisla: Kratky ukazkovy priklad na demonstraci baliku WEB. Nasledujici program slouzi pouze jako ukazka nekterych moznosti a sluzeb,
3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3
Obsah Obsah 1 Program přednášek 1 2 Podmínky zápočtu 2 3 Co je algoritmus? 2 3.1 Trocha historie............................ 2 3.2 Definice algoritmu.......................... 3 3.3 Vlastnosti algoritmu.........................
Poslední nenulová číslice faktoriálu
Poslední nenulová číslice faktoriálu Kateřina Bambušková BAM015, I206 Abstrakt V tomto článku je popsán a vyřešen problém s určením poslední nenulové číslice faktoriálu přirozeného čísla N. Celý princip
Algoritmizace a programování
Algoritmizace a programování Vyhledávání, vkládání, odstraňování Vyhledání hodnoty v nesetříděném poli Vyhledání hodnoty v setříděném poli Odstranění hodnoty z pole Vkládání hodnoty do pole Verze pro akademický
Přijímací zkouška na navazující magisterské studium 2015
Přijímací zkouška na navazující magisterské studium 2015 Studijní program: Studijní obory: Matematika MMUI Varianta A Řešení příkladů pečlivě odůvodněte. Příklad 1 (25 bodů Navrhněte deterministický konečný
Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu
Vytěžování dat, cvičení 1: Úvod do Matlabu Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Fakulta elektrotechnická, ČVUT 1 / 24 Úvod do Matlabu Proč proboha Matlab? Matlab je SW pro
Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
8. Rekurze. doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 8 1 Základy algoritmizace 8. Rekurze doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Jiří Vokřínek,
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Dynamické programování
Dynamické programování prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)
Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.
1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 5 6 7 8 9 30 31 3 Zdůvodněte, proč funkce f(n) = n log(n) 1 n 1/ roste rychleji než funkce g(n) = n. Zdůvodněte, proč funkce f(n) = n 3/ log(n) roste
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
Algoritmizace. 1. Úvod. Algoritmus
1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá
Rekurze. Pavel Töpfer, 2017 Programování 1-8 1
Rekurze V programování ve dvou hladinách: - rekurzivní algoritmus (řešení úlohy je definováno pomocí řešení podúloh stejného charakteru) - rekurzivní volání procedury nebo funkce (volá sama sebe přímo
Matematická indukce a správnost programů. Základy diskrétní matematiky, BI-ZDM ZS 2011/12, Lekce 13
Matematická indukce a správnost programů doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky FIT České vysoké učení technické v Praze c Josef Kolar, 2011 Základy diskrétní matematiky, BI-ZDM ZS
Úvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
Rozklad problému na podproblémy
Rozklad problému na podproblémy Postupný návrh programu rozkladem problému na podproblémy zadaný problém rozložíme na podproblémy pro řešení podproblémů zavedeme abstraktní příkazy s pomocí abstraktních
Binární soubory (datové, typované)
Binární soubory (datové, typované) - na rozdíl od textových souborů data uložena binárně (ve vnitřním tvaru jako v proměnných programu) není čitelné pro člověka - všechny záznamy téhož typu (může být i
IB111 Úvod do programování skrze Python
Vyhledávání, řazení, složitost IB111 Úvod do programování skrze Python 2012 Otrávené studny 8 studen, jedna z nich je otrávená laboratorní rozbor dokáže rozpoznat přítomnost jedu ve vodě je drahý (je časově
Implementace LL(1) překladů
Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)
- 7.1 - Kapitola 7: Návrh relačních databází Nástrahy návrhu relačních databází Dekompozice (rozklad) Normalizace použitím funkčních závislostí Nástrahy relačního návrhu Návrh relačních databází vyžaduje
Funkce, intuitivní chápání složitosti
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Funkce, intuitivní
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento
Digitální učební materiál
Digitální učební materiál Číslo projektu: CZ.1.07/1.5.00/34.0548 Název školy: Gymnázium, Trutnov, Jiráskovo náměstí 325 Název materiálu: VY_32_INOVACE_145_IVT Autor: Ing. Pavel Bezděk Tematický okruh:
Algoritmus pro hledání nejkratší cesty orientovaným grafem
1.1 Úvod Algoritmus pro hledání nejkratší cesty orientovaným grafem Naprogramoval jsem v Matlabu funkci, která dokáže určit nejkratší cestu v orientovaném grafu mezi libovolnými dvěma vrcholy. Nastudoval
Rekurzivní algoritmy
Rekurzivní algoritmy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA) ZS
Úvod do programování
Úvod do programování Základní literatura Töpfer, P.: Algoritmy a programovací techniky, Prometheus, Praha učebnice algoritmů, nikoli jazyka pokrývá velkou část probíraných algoritmů Satrapa, P.: Pascal
Řídicí struktury. alg3 1
Řídicí struktury Řídicí struktura je programová konstrukce, která se skládá z dílčích příkazů a předepisuje pro ně způsob provedení Tři druhy řídicích struktur: posloupnost, předepisující postupné provedení
Úvod do teoretické informatiky
Úvod do teoretické informatiky Zdeněk Sawa Katedra informatiky, FEI, Vysoká škola báňská Technická universita Ostrava 17. listopadu 15, Ostrava-Poruba 708 33 Česká republika 11. února 2018 Z. Sawa (VŠB-TUO)
Stručný návod k programu Octave
Stručný návod k programu Octave Octave je interaktivní program vhodný pro technické výpočty. Je nápadně podobný programu MATLAB, na rozdíl od něho je zcela zadarmo. Jeho domovská vebová stránka je http://www.octave.org/,
Časová a prostorová složitost algoritmů
.. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová
Rekurze. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.
Rekurze doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 12. září 2016 Jiří Dvorský (VŠB TUO) Rekurze 161 / 344 Osnova přednášky
1 2 3 4 5 6 součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:
Úloha č.: max. bodů: skut. bodů: 1 2 3 4 5 6 součet cvičení celkem 20 12 20 20 14 14 100 známka UPOZORNĚNÍ : a) Písemná zkouška obsahuje 6 úloh, jejichž řešení musí být vepsáno do připraveného formuláře.
Výroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a
Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018
Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018 doc. Mgr. Jiří Dvorský, Ph.D. Verze zadání 6. dubna 2018 První verze Obecné pokyny 1. Celkem jsou k dispozici tři zadání příkladů. 2.
Programování: základní konstrukce, příklady, aplikace. IB111 Programování a algoritmizace
Programování: základní konstrukce, příklady, aplikace IB111 Programování a algoritmizace 2011 Připomenutí z minule, ze cvičení proměnné, výrazy, operace řízení výpočtu: if, for, while funkce příklady:
Základy algoritmizace
Algoritmus Toto je sice na první pohled pravdivá, ale při bližším prozkoumání nepřesná definice. Například některé matematické postupy by této definici vyhovovaly, ale nejsou algoritmy. Přesné znění definice
59. ročník Matematické olympiády 2009/2010
59. ročník Matematické olympiády 2009/2010 Úlohy ústředního kola kategorie P 1. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Řešení každé úlohy pište na samostatný list papíru. Při soutěži
Programovani v Maplu Procedura
Programovani v Maplu Procedura Priklad: procedura, ktera scita 2 cisla: a + 2*b soucet := proc (a, b) local c; # lokalni promenna - existuje a meni se jenom uvnitr procedury c:=a+b; # globalni promenna
- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku
Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová
53. ročník Matematické olympiády 2003/2004
5. ročník Matematické olympiády 00/004 Úlohy celostátního kola kategorie P. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Řešení každého příkladu musí obsahovat: Popis řešení, to znamená slovní
Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty.
Zpracoval: hypspave@fel.cvut.cz 7. Matematická indukce a rekurse. Řešení rekurentních (diferenčních) rovnic s konstantními koeficienty. (A7B01MCS) I. Matematická indukce a rekurse. Indukční principy patří
2. lekce Algoritmus, cyklus Miroslav Jílek
2. lekce Algoritmus, cyklus Miroslav Jílek 1/36 Algoritmus 2/36 Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů 3/36 Algoritmus je konečná posloupnost operací, která dává
66. ročník Matematické olympiády 2016/2017
66. ročník Matematické olympiády 2016/2017 Úlohy ústředního kola kategorie P 1. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Řešení každé úlohy pište na samostatný list papíru. Při soutěži
Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A
Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A Každá úloha je hodnocena maximálně 25 body. Všechny své odpovědi zdůvodněte! 1. Postavte na stůl do řady vedle
Basic256 - úvod do programování Příklady. ing. petr polách
Basic256 - úvod do programování Příklady ing. petr polách 1 Basic 256 input, print Př.: Vytvořte program pro součet dvou čísel: input "Zadej a: ", a input "Zadej b: ", b print a+b input "Zadej a: ", a
Grafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
Grafové algoritmy. Programovací techniky
Grafové algoritmy Programovací techniky Grafy Úvod - Terminologie Graf je datová struktura, skládá se z množiny vrcholů V a množiny hran mezi vrcholy E Počet vrcholů a hran musí být konečný a nesmí být
Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Dynamické programování Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Rozděl a panuj (divide-and-conquer) Rozděl (Divide): Rozděl problém na několik podproblémů tak, aby tyto podproblémy odpovídaly původnímu
10. Složitost a výkon
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 10 1 Základy algoritmizace 10. Složitost a výkon doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Jiří
2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5
Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou
63. ročník Matematické olympiády 2013/2014
6. ročník Matematické olympiády / Úlohy domácího kola kategorie P Úlohy P-I- a P-I- jsou praktické, vaším úkolem v nich je vytvořit a odladit efektivní program v jazyce Pascal, C nebo C++. Řešení těchto
1 Nejkratší cesta grafem
Bakalářské zkoušky (příklady otázek) podzim 2014 1 Nejkratší cesta grafem 1. Uvažujte graf s kladným ohodnocením hran (délka). Definujte formálně problém hledání nejkratší cesty mezi dvěma uzly tohoto
Stromy, haldy, prioritní fronty
Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík
ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ
ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2/2, Lekce Evropský sociální fond Praha & EU: Investujeme
Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7
Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí
Algoritmy a datové struktury
Algoritmy a datové struktury 1 / 34 Obsah přednášky Základní řídící struktury posloupnost příkazů podmínka cyklus s podmínkou na začátku cyklus s podmínkou na konci cyklus s pevným počtem opakování Jednoduchá
Automatizované řešení úloh s omezeními
Automatizované řešení úloh s omezeními Martin Kot Katedra informatiky, FEI, Vysoká škola báňská Technická universita Ostrava 17. listopadu 15, Ostrava-Poruba 708 33 Česká republika 25. října 2012 M. Kot
Obor: Informatika Únor 2006 Okruh: Základy matematiky Otázka: 1. Jméno: Bodů:...
Inf-M-1 Obor: Informatika Únor 2006 Okruh: Základy matematiky Otázka: 1. Uvažujte funkci f(x) =ln(x 2 x): Najděte její definiční obor, nulové body, vypočtěte jednostranné limity v krajních bodech definičních
Markov Chain Monte Carlo. Jan Kracík.
Markov Chain Monte Carlo Jan Kracík jan.kracik@vsb.cz Princip Monte Carlo integrace Cílem je (přibližný) výpočet integrálu I(g) = E f [g(x)] = g(x)f (x)dx. (1) Umíme-li generovat nezávislé vzorky x (1),
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento
Interpret jazyka IFJ2011
Dokumentace projektu Interpret jazyka IFJ2011 Tým číslo 093, varianta b/3/i: 20 % bodů: Cupák Michal (xcupak04) vedoucí týmu 20 % bodů: Číž Miloslav (xcizmi00) 20 % bodů: Černá Tereza (xcerna01) 20 % bodů:
Paralelní grafové algoritmy
Paralelní grafové algoritmy Značení Minimální kostra grafu Nejkratší cesta z jednoho uzlu Nejkratší cesta mezi všemi dvojicemi uzlů Použité značení Definition Bud G = (V, E) graf. Pro libovolný uzel u
B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
333LP - lgoritmy a programování - Zkouška z předmětu 333LP Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8]
Datové struktury 2: Rozptylovací tabulky
Datové struktury 2: Rozptylovací tabulky prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy
Cvičení 1. Úvod do teoretické informatiky(2014/2015) cvičení 1 1
Úvod do teoretické informatiky(2014/2015) cvičení 1 1 Cvičení 1 Příklad 1: Pro každý z následujících formálních zápisů množin uveďte(svými slovy), jaké prvky daná množina obsahuje: a) {1,3,5,7,...} b)
Michal Krátký. Úvod do programování. Cíl kurzu. Podmínky získání zápočtu III/III
Michal Krátký Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 tel.: +420 596 993 239 místnost: A1004 mail: michal.kratky@vsb.cz
Algoritmizace řazení Bubble Sort
Algoritmizace řazení Bubble Sort Cílem této kapitoly je seznámit studenta s třídícím algoritmem Bubble Sort, popíšeme zde tuto metodu a porovnáme s jinými algoritmy. Klíčové pojmy: Třídění, Bubble Sort,
Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b
Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -
PODPROGRAMY PROCEDURY A FUNKCE
PODPROGRAMY PROCEDURY A FUNKCE Programy bez podprogramů Příklady: a) Napište program, který na obrazovku nakreslí čáru složenou ze znaků pomlčka. program Cara; b) Napište program, který na obrazovku nakreslí
B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11
Jméno Příjmení Už. jméno Marek oháč bohacm11 Zkouškový test Otázka 1 Jaká je hodnota proměnné count po vykonání následujícího kódu: data=[4,4,5,5,6,6,6,7,7,7,7,8,8] count=0 for i in range(1,len(data)):
PROHLEDÁVÁNÍ GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze
PROHLEDÁVÁNÍ GRAFŮ Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze BI-GRA, LS 2010/2011, Lekce 4 Evropský sociální fond Praha & EU: Investujeme do
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
a jiné elektronické přístroje včetně mobilů. Pracujte samostatně. Povolen je 1 list A4 vlastnoručně psaných poznámek k předmětu...
Písemný test MA010 Grafy: 17.1. 2007, var A... 1). Vašim úkolem je sestrojit všechny neisomorfní jednoduché souvislé grafy na 6 vrcholech mající posloupnost stupňů 1,2,2,2,2,3. Zároveň zdůvodněte, proč
Funkce, podmíněný příkaz if-else, příkaz cyklu for
Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto
ŘÍKÁME, ŽE FUNKCE JE ČÁSTEČNĚ SPRÁVNÁ (PARTIALLY CORRECT), POKUD KDYŽ JE SPLNĚNA PRECONDITION
ŘÍKÁME, ŽE FUNKCE JE ČÁSTEČNĚ SPRÁVNÁ (PARTIALLY CORRECT), POKUD KDYŽ JE SPLNĚNA PRECONDITION FUNKCE PŘI JEJÍM ZAVOLÁNÍ, JEJÍ POSTCONDITION JE SPLNĚNA PŘI NÁVRATU Z FUNKCE (POKUD NASTANE) OBECNĚ FUNKCE
66. ročník Matematické olympiády 2016/2017
66. ročník Matematické olympiády 016/017 Úlohy krajského kola kategorie P Krajské kolo 66. ročníku MO kategorie P se koná v úterý 17. 1. 017 v dopoledních hodinách. Na řešení úloh máte 4 hodiny čistého
Základní datové struktury III: Stromy, haldy
Základní datové struktury III: Stromy, haldy prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní