1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10



Podobné dokumenty
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

Úvod do teorie grafů

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.

Prohledávání do šířky = algoritmus vlny

07 Základní pojmy teorie grafů

5 Rekurze a zásobník. Rekurzivní volání metody

Algoritmizace prostorových úloh

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Datové typy a struktury

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

NPRG030 Programování I, 2018/19 1 / :03:07

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

Algoritmy II. Otázky k průběžnému testu znalostí

Binární vyhledávací stromy II

maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést

ALGORITMY A DATOVÉ STRUKTURY

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání

Algoritmy a datové struktury

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky

Matice sousednosti NG

Stromy, haldy, prioritní fronty

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

Základní datové struktury III: Stromy, haldy

ADT STROM Lukáš Foldýna

bfs, dfs, fronta, zásobník, prioritní fronta, halda

bfs, dfs, fronta, zásobník, prioritní fronta, halda

Základy umělé inteligence

Dynamické datové struktury III.

II. Úlohy na vložené cykly a podprogramy

Programování 3. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Da D to t v o é v ty t py IB111: Datové typy

Návrh Designu: Radek Mařík

součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

MATA Př 3. Číselné soustavy. Desítková soustava (dekadická) základ 10, číslice 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

bin arn ı vyhled av an ı a bst Karel Hor ak, Petr Ryˇsav y 23. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

a) b) c) Radek Mařík

Předmět: Algoritmizace praktické aplikace

2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky

Dynamické datové struktury I.

Vzdálenost uzlů v neorientovaném grafu

Prioritní fronta, halda

10 Podgrafy, isomorfismus grafů

Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.

Programy na PODMÍNĚNÝ příkaz IF a CASE

Jan Březina. 7. března 2017

Drsná matematika III 10. demonstrovaná cvičení Kostry grafů

ORIENTOVANÉ GRAFY, REPREZENTACE GRAFŮ

PROGRAMOVÁNÍ. Cílem předmětu Programování je seznámit posluchače se způsoby, jak algoritmizovat základní programátorské techniky.

TGH05 - aplikace DFS, průchod do šířky

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Radek Mařík

AVL stromy. pro každý uzel u stromu platí, že rozdíl mezi výškou jeho levého a pravého podstromu je nejvýše 1 stromy jsou samovyvažující

1 Teorie grafů. Základní informace

matice([[1,1,0,0,0],[1,1,1,0,0],[0,1,1,0,0],[0,0,0,1,1],[0,0,0,1,1]],1). matice([[1,1,1],[1,1,0],[1,0,1]],2).

Maturitní téma: Programovací jazyk JAVA

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2017

Programování v C++ 1, 16. cvičení

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

Základy informatiky. 07 Teorie grafů. Kačmařík/Szturcová/Děrgel/Rapant

Implementace aritmetického stromu pomocí směrníků

prohled av an ı graf u Karel Hor ak, Petr Ryˇsav y 16. bˇrezna 2016 Katedra poˇ c ıtaˇ c u, FEL, ˇ CVUT

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

Použití dalších heuristik

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

Implementace binárního stromu směrníky

STACK

Cvičení z Lineární algebry 1

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

ALG 04. Zásobník Fronta Operace Enqueue, Dequeue, Front, Empty... Cyklická implementace fronty. Průchod stromem do šířky

Rekurzivní algoritmy

Anotace. Spojové seznamy, haldy. AVL-stromy, A-B stromy. Martin Pergel,

Základní pojmy teorie grafů [Graph theory]

řádově různě rostoucí rostou řádově stejně rychle dvě funkce faktor izomorfismus neorientovaných grafů souvislý graf souvislost komponenta

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.

Lineární datové struktury

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2015

Matematika I A ukázkový test 1 pro 2014/2015

1 Nejkratší cesta grafem

Rekurze a zásobník. Jak se vypočítá rekurzivní program? volání metody. vyšší adresy. main(){... fa(); //push ret1... } ret1

TGH05 - aplikace DFS, průchod do šířky

Jarníkův algoritmus. Obsah. Popis

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Příklad 1/23. Pro rostoucí spojité fukce f(x), g(x) platí f(x) Ω(g(x)). Z toho plyne, že: a) f(x) Ο(g(x)) b) f(x) Θ(g(x)) d) g(x) Ω(f(x))

Dynamické datové struktury IV.

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2013/2014 Radim Farana. Obsah. Strom

1. Implementace funkce počet vrcholů. Předmět: Algoritmizace praktické aplikace (3ALGA)

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B. 1. úloha (4 body) Kolik existuje cest délky 4 v grafu K11? 2.

Vysvětlete funkci a popište parametry jednotlivých komponent počítače a periferních zařízení.

Dynamické programování

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Komprese dat (Komprimace dat)

Transkript:

Úlohy- 2.cvičení 1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) 759 10 b) 2578 10 2. Převeďte dané desetinné číslo do dvojkové soustavy (DEC -> BIN): a) 0,8125 10 b) 0,35 10 c) 0, 10 3. Převeďte dané číslo z dané soustavy do tří zbývajících: a) 11 0101 1110 2 b) 3057 8 c) D9C 16 Výsledky 1. a) 759 10 = 10 1111 0111 2 = 1367 8 = 2F7 16 b) 2578 10 = 1010 0001 0010 2 = 5022 8 = A12 16 2. a) 0,8125 10 = 0,1101 2 b) 0,35 10 = 0,01 2 3. a) 11 0101 1110 2 = 862 10 ( = 1536 8 = 35E 16 ) b) 3057 8 = 1583 10 ( = 62F 16 = 110 0010 1111 2 ) c) D9C 16 = 3484 10 ( = 6634 8 = 1101 1001 1100 2 )

Úlohy- 3.cvičení 1. Převeďte zadané číslo do binárního tvaru: 15,35 10 2. Zadaný polynom uzávorkujte podle Hornerova schématu: 3x 5 + 2x 4 + 4x 3 + x 2 + 5x + 1 Vypočítejte kolik operací násobení je zapotřebí k vypočtení hodnoty tohoto polynomu v zadaném bodě: a) před uzávorkováním b) po uzávorkování c) Kolik operací násobení bychom pořebovali k vypočtení hodnoty polynomu desátého stupně přímým dosazením? d) Kolik operací násobení bychom pořebovali k vypočtení hodnoty polynomu desátého stupně pomocí Hornerova schématu? 3. Odvoďte výpočetní složitost algoritmu Třídění přímým výběrem a) popište princip algoritmu b) zapište algoritmus pomocí metakódu c) spočítejte výpočetní složitost f(n) měřenou počtem porovnání d) najděte konstantu c a funkci g(n) takové, že f(n) <= c. g(n), tj. f(n) = O(g(n))

Výsledky 3.cvičení 1. 15,35 10 = 15 10 + 0,35 10 = 1111,01 2 2. ((((3x + 2)x + 4)x + 1)x + 5)x + 1 a) 15 násobení před uzávorkováním, 5 + 4 + 3 + 2 + 1 = 15 b) 5 násobení po uzávorkování c) 55 násobení přímým dosazením, n = 10, (n 2 +n)/2=(100+10)/2 = 55 d) 10 násobení pomocí Hornerova schématu 3. a) Postupně se prochází posloupnost (pole) a hodnoty a(j) pro j>1 se porovnávají s a(1). Pokud je a(j)<a(1), tak se další hodnoty porovnávají s a(j). Po průchodu celé posloupnosti až do konce se provede záměna nejmenší nalezené hodnoty s a(1). V dalším kroku se posloupnost znovu prochází, tentokrát od a(2). Na konci se provede záměna nejmenší nalezené hodnoty s a(2). Atd. b) viz. 1. cvičení nebo učebnice str. 114 c) počet porovnání: n+(n-1)+... +2 =(n+2)n/2 = (n 2 +2n)/2 = f(n) d) f(n) = O(n 2 ), c = 3/2 (například)

Úlohy- 4.cvičení 1. Napište algoritmus pro přidání informace x do zásobníku (LIFO) implementovaného jako pole. (n... počet obsazených prvků, Nmax... maximální možný počet prvků) 2. Napište algoritmus pro vyzvednutí informace z vrcholu zásobníku (LIFO) implementovaného jako pole. Informaci uložte do proměnné x. 3. Napište algoritmus pro přidání informace Nová data na konec fronty (FIFO) implementované jako spojový seznam. (zac, kon) 4. Napište algoritmus pro vyzvednutí informace ze začátku fronty implementované jako spojový seznam (FIFO). Informaci uložte do proměnné x. Uvolněte paměť pro další použití. 5. R = { }, A = { }, B = { } Uložte do binární tabulky množiny A a B, jež jsou podmnožinou množiny R. Pomocí binární tabulky stanovte jejich a) průnik b) sjednocení

Řešení 4.cvičení 1. Přidání informace x do (n+1)-ní složky zásobníku: Jestliže n = Nmax, pak tisk nelze přidat, plný zásobník, konec n := n+1 a[ ] := x 2. Vyzvednutí informace z vrcholu zásobníku a její uložení do proměnné x: Jestliže n = 0, pak tisk nelze vybrat, prázdný zásobník, konec x := a[ ] n := n-1 3. Přidání informace Nová data na konec fronty: new(p) p^.info := Nová data p^.dalsi := nil kon^.dalsi := p kon := p 4. Vyzvednutí informace ze začátku fronty a její uložení do proměnné x: Jestliže zac = nil, pak tiskni prázdný seznam, konec x := zac^.info p := zac^.dalsi dispose (zac) zac := p 5. R 0 1 2 3 4 5 6 7 8 9 10 A 1 1 0 1 0 0 1 1 0 1 0 B 1 0 1 0 0 1 0 1 0 0 1 A B 1 0 0 0 0 0 0 1 0 0 0 A B 1 1 1 1 0 1 1 1 0 1 1

Úlohy- 5.cvičení 1 2 3 4 5 6 1. Stanovte incidenční matici grafu. Hrany očíslujte zleva doprava a to nejprve hrany vycházející z uzlu 1, pak z uzlu 2, nakonec z uzlu 3. 2. Stanovte matici sousednosti grafu. 3. Kolik prvků bude mít pole, použijeme-li pro reprezentaci grafu v počítači pomocí pole matici sousednosti? a) Uložíme-li do pole všechny prvky matice sousednosti. b) Využijeme-li toho, že matice sousednosti je symetrická a na hlavní diagonále má samé nuly. 4. Najděte co nejvíc cyklů, které začínají a končí v uzlu 1. 5. Určete číslo nezávislosti α a uveďte alespoň jednu nezávislou komponentu, jejíž počet uzlů je roven α. 6. Nalezněte v grafu artikulaci nebo 2-artikulaci (takové dva uzly, po jejichž odstranění se graf rozpadne na dvě nebo více nesouvislých částí). 7. Nakreslete nový graf o 5 uzlech s 2-artikulací. Vyznačte ji.

Řešení 5.cvičení 1. Incidenční matice H1 H2 H3 H4 H5 H6 H7 H8 H9 1 1 1 1 0 0 0 0 0 0 2 0 0 0 1 1 1 0 0 0 3 0 0 0 0 0 0 1 1 1 4 1 1 1 0 0 0 0 0 0 5 0 0 0 1 1 1 0 0 0 6 0 0 0 0 0 0 1 1 1 2. Matice sousednosti 3. 1 2 3 4 5 6 1 0 0 0 1 1 1 2 0 0 0 1 1 1 3 0 0 0 1 1 1 4 1 1 1 0 0 0 5 1 1 1 0 0 0 6 1 1 1 0 0 0 a) Počet prvků pole: 6 x 6 = 36 (obecně: n 2 ) b) Počet prvků pole: (36 6)/2 = 15 (obecně: (n 2 - n)/2 4. Cykly z uzlu 1: {1,6,3,4,1}, {1,5,2,4,1}, {1,5,3,6,1}, {1,6,2,4,1}, {1,4,3,6,1}, {1,4,2,5,1}, {1,6,3,5,1}, {1,4,2,6,1} 5. Číslo nezávislosti α = 3 nezávislá komponenta např.: {1, 2, 3} 6. Artikulace ani 2-artikulace neexistuje.

Teorie - 6. Cvičení Prohledávání binárního kořenového stromu do hloubky pomocí zásobníku Krok 1. Vlož adresu kořene do zásobníku Krok 2. Opakuj následující operace, dokud není zásobník prázdný. Vyzvedni ze zásobníku adresu U daného uzlu v. Zpracuj informaci na adrese U. Má-li uzel v pravého následníka, vlož ho do zásobníku. Má-li uzel levého následníka, vlož ho do zásobníku. Prohledávání binárního kořenového stromu do šířky pomocí fronty Krok 1. Vlož adresu kořene do fronty Krok 2. Opakuj následující operace, dokud není fronta prázdná. Vyzvedni adresu U daného uzlu v ze začátku fronty. Zpracuj informaci na adrese U. Má-li uzel v levého následníka, vlož ho na konec fronty. Má-li uzel pravého následníka, vlož ho na konec fronty.

Úlohy- 6.cvičení 1. Nakreslete strom o alespoň 7 uzlech, který je AVL vyvážený, ale není dokonale vyvážený. 2. Uvedený strom prohledejte do hloubky a vytiskněte obsahy uzlů užitím operace inorder. Uveďte algoritmus rekurzivní procedury s uvedenou operací. U B C A H X G 3. Uvedený strom prohledejte do hloubky a vytiskněte obsahy uzlů užitím operace postorder. Uveďte algoritmus rekurzivní procedury s uvedenou operací. M B L R U J K 4. Vyjádřete následující výrazy v prefixové a postfixové notaci. a) ((u+t)*((x+y)*z))/(w-s) b) (u*((x+y)*z))/(s-(w+t)) c) a/(b-(c*(x/(y+z)))) 5. Sestrojte binární kořenový strom, při jehož prohledávání do hloubky jsou v zásobníku (vrchol je vlevo) postupně hodnoty (7), (11, 3), (4, 5, 3), (5, 3) (3), (9, 12), (2, 16, 12), (16, 12), (12)

Řešení- 6.cvičení 1. Strom o alespoň 7 uzlech, je AVL vyvážený, není dokonale vyvážený. 2. Tisk užitím operace inorder: B A U G H C X Hledej_2(U) jestliže U <> nil, pak Hledej_2(U^.levy) tisk(u^.info) Hledej_2(U^.pravy) 3. Tisk užitím operace postorder: K R B U J L M Hledej_3(U) jestliže U <> nil, pak Hledej_3(U^.levy) Hledej_3(U^.pravy) tisk(u^.info) 4. Vyjádřete následující výrazy v prefixové a postfixové notaci. a) prefixová notace: / * + u t * + x y z w s postfixová notace: u t + x y + z * * w s / b) prefixová notace: / * u * + x y z s + w t postfixová notace: u x y + z * * s w t + / c) prefixová notace: / a b * c / x + y z postfixová notace: a b c x y z + / * /

Úlohy- 7.cvičení 1. Sestrojte binární kořenový strom, při jehož prohledávání do šířky jsou ve frontě (vkládá se vpravo) postupně hodnoty (5), (3, 9), (9, 4, 1), (4, 1, 2) (1, 2), (2, 7, 6), (7, 6), (6), (8) 2. Sestrojte Huffmanův strom pro zprávu danou následující tabulkou. Dále stanovte Huffmanovy kódy jednotlivých znaků a celkový počet L potřebných bitů. znak A B C D E F G H I četnost 5 2 3 2 4 7 9 10 1 3. K haldě umístěné v daném poli a) přidejte prvek s klíčem 2 a přebudujte haldu b) zrušte kořen a přebudujte haldu 3 5 6 12 8 19 13 17 14 16 10 20 P(1) P(2) P(3) P(4) P(5) P(6) P(7) P(8) P(9) P(10) P(11) P(12) P(13) 4. Ve vyhledávacím stromu a) nalezněte hodnoty klíčů 4, 10 b) postupně zrušte uzly s klíči 5, 6 c) nakonec přidejte uzly s klíči 3, 12 6 2 8 L 1 5 7 9 4 13

Řešení- 7.cvičení Huffmanův kód (není určen jednoznačně) znak A B C D E F G H I četnost 5 2 3 2 4 7 9 10 1 kód 101 1000 1100 10011 1101 111 00 01 10010 délka 3 4 4 5 4 3 2 2 5 L = 5*3 + 2*4 + 3*4 + 2*5 + 4*4 + 7*3 + 9*2 + 10*2 + 1*5 = 105 bitů