Úvod. Úvod do programování. Úvod. Hashovací tabulky
|
|
- Kateřina Říhová
- před 8 lety
- Počet zobrazení:
Transkript
1 do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava do programování, 2004/2005 Mnohé aplikace nepotřebují ke svému provozu celou škálu operací podporovaných v dynamických strukturách (např. stromech), ale vystačí jen s operacemi Insert, Search, Delete. Například kompilátory programovacích jazyků potřebují spravovat tabulky identifikátorů vpřekládaném programu a dá se předpokládat, že kompilátor nebude potřebovat operace výběru nejmenšího identifikátoru a podobné. Dalším příkladem může být disková cache (např. perzistentní datové struktury). c 2005 Michal Krátký, Jiří Dvorský do programování 1/31 c 2005 Michal Krátký, Jiří Dvorský do programování 2/31 nabízí nástroje jak vytvářet velice efektivní tabulky, kde složitost vyhledávání je, za několika rozumných předpokladů, rovna O(1). I když nejhorší případ je stále Θ(n). a hashovací tabulky jsou rozšířením standardních polí. používají přímo klíče jako indexy v poli, hashovací tabulky transformují prostor klíčů o velmi velké mohutnosti pomocí hashovací funkce do relativně malého prostoru indexů pole. Přímé adresování je jednoduchá technika, která dobře funguje, pokud univerzum klíčů U má malou mohutnost. Předpokládejme, že aplikace potřebuje ke své činnosti dynamicky se měnící množinu a klíče prvků množiny náleží do univerza U = {0, 1,...,m 1}, kde m není velké. Dále předpokládejme, že žádné dva prvky nemají shodné klíče. Pro reprezentaci takové množiny použijeme pole nebo přímo adresovatelnou tabulku T [0...m 1]. Každá pozice (slot) koresponduje s nějakým klíčem univerza U. c 2005 Michal Krátký, Jiří Dvorský do programování 3/31 c 2005 Michal Krátký, Jiří Dvorský do programování 4/31 Slot k ukazuje na prvek s klíčem k. Jestliže množina neobsahuje prvek s klíčem k, pak tento slot má hodnotu NULL. Všechny tyto operace jsou velice rychlé pracují v čase O(1). c 2005 Michal Krátký, Jiří Dvorský do programování 5/31 Hlavní problém s přímým adresováním je zřejmý: jestliže univerzum U je velké, udržování tabulky T velikosti U je nemožné ( U = 2 32 ). Množina všech aktuálně uložených klíčů K (K U) může být ovšem relativně malá vzhledem k množině U. Jestliže K U, hashovací tabulka spotřebuje mnohem méně místa než přímo adresovatelná tabulka. Pamět ové nároky mohou být redukovány na Θ( K ), při zachování původní složitosti vyhledání prvku, totiž O(1). c 2005 Michal Krátký, Jiří Dvorský do programování 6/31
2 - kolize V přímo adresovatelné tabulce je prvek s klíčem k uložen ve slotu k. V hashovací tabulce je uložen ve slotu h(k), kde h je hashovací funkce. h zobrazuje univerzum klíčů U na sloty hashovací tabulky T [0...m 1]: Dva klíče se mohou hashovací funkcí zobrazit na tentýž slot dojde ke kolizi. Existují účinné techniky jak kolize prvků řešit. h : U {0, 1,...,m 1} Říkáme, že prvek s klíčem k je hashován do slotu h(k), říkáme také, že h(k) je hashovací hodnota klíče k. Hlavním účelem hashovací funkce je transformace klíčů z univerza U do jednotlivých slotů. Místo původních U klíčů stačí udržovat jen m hodnot. c 2005 Michal Krátký, Jiří Dvorský do programování 7/31 c 2005 Michal Krátký, Jiří Dvorský do programování 8/31 Separátní řetězení Nejvýhodnější hashovací funkce úplně zabraňuje nebo alespoň minimalizuje počet kolizí. Můžeme použít funkce s náhodným chováním. Funkce h musí být deterministická pro každý klíč musí vždy spočítat stejnou hodnotu h(k). Jelikož U > m musí nevyhnutelně existovat dva kolidující klíče a úplné odstranění kolizí není možné. Kvalitním návrhem hashovací tabulky a hashovací funkce lze výrazně zmenšit počet kolizí. Řešení kolizí : separátní řetězení a otevřené adresování. V hashovací tabulce je v každém slotu ukazatel na seznam a prvky se stejnou hodnotou hashovací funkce se vkládají do příslušného seznamu. c 2005 Michal Krátký, Jiří Dvorský do programování 9/31 c 2005 Michal Krátký, Jiří Dvorský do programování 10/31 Časová složitost vkládání je v nejhorším případě O(1) za předpokladu, že vkládaný prvek není dosud v hashovací tabulce. Časová složitost vyhledávání a rušení prvku je úměrná délce seznamu ve slotu. Necht je dána hashovací tabulka T s m sloty ve které je uloženo n prvků. Číslo α = n m se nazývá faktor naplnění hashovací tabulky. Je zřejmé, že toto číslo udává zároveň iprůměrnou délku seznamu ve slotu. Při dalších úvahách budeme α považovat za konstantní a hodnoty m a n necháme růst k nekonečnu. V nejhorším případě se všech n klíčů se hashuje do jednoho slotu a vytváří tak seznam délky n. Složitost pro nejhorší případ je tedy Θ(n) plus čas nutný pro výpočet hashovací funkce. Situace je stejná jako bychom použili jednoduchý seznam. Složitost průměrného případu závisí na tom, jak hashovací funkce rozptýlí jednotlivé klíče do prostoru slotů. Předpokládejme, že libovolný klíč je hashován do všech slotů stejně pravděpodobně, nezávisle na tom kam se hashovaly ostatní klíče. Takové hashování nazýváme jednoduché uniformní hashování. c 2005 Michal Krátký, Jiří Dvorský do programování 11/31 c 2005 Michal Krátký, Jiří Dvorský do programování 12/31
3 Předpokládejme, že výpočet hodnoty hashovací funkce h pro klíč k jsme schopni provést v čase O(1) a čas nutný pro prohledání seznamu ve slotu T [h(k)] tabulky T je lineárně závislý na délce tohoto seznamu. Zbývá zjistit jaký je průměrný počet klíčů, které musíme porovnat s klíčem k abychom zjistili, jestli se klíč k v tabulce vyskytuje. Mohou nastat dva případy: bud budeme při hledání úspěšní nebo neúspěšní. Průměrná časová složitost neúspěšného vyhledání v hashovací tabulce se separátním zřetězením je Θ(1 + α), za předpokladu jednoduchého uniformního hashování. Průměrná časová složitost úspěšného vyhledání v hashovací tabulce se separátním zřetězením je Θ(1 + α), zapředpokladu jednoduchého uniformního hashování. Jinými slovy nám tento výpočet říká následující: jestliže velikost hashovací tabulky je úměrná počtu prvků v tabulce tj. n = O(m), potom α = n/m = O(m)/m = O(1). Proto vprůměru lze vyhledávání realizovat v konstantním čase. Při použití obousměrného seznamu lze v průměrném případě rušit prvky se složitostí O(1). c 2005 Michal Krátký, Jiří Dvorský do programování 13/31 c 2005 Michal Krátký, Jiří Dvorský do programování 14/31 Otevřené adresování Otevřené adresování Při použití otevřeného adresování jsou všechny prvky uloženy přímo v hashovací tabulce. Každý slot tabulky obsahuje bud nějaký prvek nebo je prázdný. Při hledání prvku v tabulce systematicky prohledáváme sloty tabulky dokud nenajdeme hledaný prvek nebo najdeme prázdný slot. α 1. Hlavní výhodou otevřeného adresování je úspora místa, poněvadž místo ukazatelů tato metoda vypočítává posloupnost slotů, které je nutno prozkoumat. Pamět nutnou k uložení ukazatelů v seznamech prvků můžeme věnovat na zvýšení počtu slotů hashovací tabulky, čímž dosáhneme zmenšení počtu kolizí a vyššího výkonu. Při vkládání prvku do hashovací tabulky provádíme takzvané pokusy dokud nenajdeme hledaný prvek nebo prázdný slot. Otázkou je jak volit posloupnost slotů, které budeme prozkoumávat. Místo fixní posloupnosti 0, 1,...,m 1, což by vedlo na složitost hledání Θ(n), vybereme takovou posloupnost slotů, která závisí na vkládaném klíči. Pro určení posloupnosti rozšíříme definici hashovací funkce tak, aby zahrnovala i pořadí pokusu: h : U {0, 1,...,m 1} {0, 1,...,m 1} c 2005 Michal Krátký, Jiří Dvorský do programování 15/31 c 2005 Michal Krátký, Jiří Dvorský do programování 16/31 Otevřené adresování Posloupnost pokusů Otevřené adresování Rušení prvků Pro každý klíč k obdržíme posloupnost pokusů (probe sequence) h(k, 0), h(k, 1),...,h(k, m 1), která je permutací množiny {0, 1,...,m 1}. To znamená, že každý slot v tabulce bude eventuálně použit pro uložení prvku s klíčem k. Algoritmus vyhledávání klíče k prochází stejnou posloupnost slotů jako algoritmus pro vložení klíče k. Vyhledávání skončí bud úspěšně klíč k je nalezen v některém z testovaných slotů. A naopak vyhledávání končí neúspěšně, pokud jsme narazili na prázdný slot. Smazání prvku je velice obtížné. Když smažeme prvek ze slotu i, nelze tento slot jednoduše označit za prázdný. Tímto bychom mohli narušit posloupnost pokusů pro jiný klíč, který testoval slot i azpůsobil v něm kolizi a tudíž musel pokračovat v pokusech až do nějakého jiného slotu j. Jednou možností jak řešit tento problém je označit slot speciálním příznakem deleted, který by vyhledávací procedura interpretovala jako obsazený slot a naopak vkládací procedura jako volný slot. Složitost vyhledávání pak ale nebude záviset jen na faktoru naplnění tabulky α. Proto, když se požaduje mazání prvků z hashovací tabulky, volí se obvykle metoda separátního řetězení. c 2005 Michal Krátký, Jiří Dvorský do programování 17/31 c 2005 Michal Krátký, Jiří Dvorský do programování 18/31
4 Otevřené adresování Otevřené adresování Lineární pokusy V dalších analýzách činnosti hashovacích tabulek předpokládáme tzv. uniformní hashování, které tvrdí, že pro každý klíč jsou všechny permutace {0, 1,...,m 1} posloupnosti pokusů stejně pravděpodobné. Zobecnění jednoduchého uniformního hashování generující se stejnou pravděpodobností jedno číslo. Tři nejpoužívanější techniky pro generování posloupnosti pokusů: metodu lineárních pokusů (linear probing), metodu kvadratických pokusů (quadratic probing) a dvojité hashování (double hashing). Žádná z těchto metod nesplňuje přesně požadavky kladené na uniformní hashování (generují méně než m 2 posloupností pokusů, místo m! různých posloupností). Dvojité hashování je schopno vygenerovat nejvíce různých posloupností. c 2005 Michal Krátký, Jiří Dvorský do programování 19/31 Mějme dánu jednoduchou hashovací funkci h : U {0, 1,...,m 1}. Metoda lineárních pokusů používá rozšířenou hashovací funkci: h(k, i) =(h (k)+i) mod m pro i = 0, 1,...,m 1. Pro klíč k se nejprve prozkoumá slot T [h (k)]. Dále se zkoumá slot T [h (k)+1]. Postupujeme až ke slotu T [m 1]. V tomto okamžiku se indexy přetočí a pokračujeme sloty T [0], T [1] až nakonec prozkoumáme slot T [h (k) 1]. Můžeme vygenerovat jen m pokusných sekvencí. Metoda lineárních pokusů je snadno implementovatelná, ale vyvolává problém s tzv. primárním shlukováním prvků, které mají tendenci se shlukovat v řetězcích. c 2005 Michal Krátký, Jiří Dvorský do programování 20/31 Otevřené adresování Metoda kvadratických pokusů Metoda kvadratických pokusů používá hashovací funkci tvaru h(k, i) =(h (k)+c 1 i + c2 2 i) mod m kde h je pomocná Metoda kvadratických pokusů, c 1 0 a c 2 0 jsou pomocné konstanty a i = 0, 1,...,m 1. Prvně je otestován slot T [h (k)]; další sloty jsou testovány v pořadí určeném funkcí h. Vzhledem k jejímu kvadratickému charakteru nenastává zde tak silné shlukování jako v případě lineárních pokusů, ale jen tzv. sekundární shlukování (secondary clustering), které se podstatně méně projevuje na počtu potřebných pokusů k nalezení hledaného prvku. Otevřené adresování Dvojité hashování Dvojité hashování je patrně nejlepší metodou pro určení sekvence pokusů při otevřeném adresování, protože permutace slotů poskytované touto metodou mají nejblíže k náhodně voleným permutacím. Dvojité hashování používá hashovací funkci tvaru: h(k, i) =(h 1 (k)+ih 2 (k)) mod m kde h 1 a h 2 jsou pomocné hashovací funkce. Na počátku je testován slot T [h 1 (k)]; následující pokusy jsou určeny posunem o h 2 (k) pozic modulo m. Je jasné, že dvojité hashování umožňuje větší rozptyl pro výběr sekvencí pokusů, protože na klíči k závisí nejen počáteční pozice, ale i velikost kroku o který se v tabulce posunujeme. c 2005 Michal Krátký, Jiří Dvorský do programování 21/31 c 2005 Michal Krátký, Jiří Dvorský do programování 22/31 Otevřené adresování Dvojité hashování Otevřené adresování Dvojité hashování Je dána hashovací tabulka velikosti 13, hashovací funkce h 1 (k) = k mod 13 a h 2 (k) = 1 + (k mod 11). Protože 14 1 mod 13 a 14 3 mod 11, klíč 14 bude vložen do prázdného slotu 9, po prozkoumání obsazených slotů 1 a 5. Velikost tabulky m se většinou volí prvočíselná a funkce h 2 se navrhuje tak, aby vždy vracela kladné číslo menší než m. Například se dají použít tyto funkce: h 1 (k) =k mod m h 2 (k) =1 +(k mod m ) kde m je oněco menší než m (např. m 1, m 2). Dvojité hashování představuje zlepšení, protože je schopno generovat Θ(n 2 ) posloupností pokusů místo Θ(m). Je to dáno tím, že hodnoty h 1 (k) a h 2 (k) z nichž se tvoří výsledná hodnota hashovací funkce se mohou měnit nezávisle na sobě. c 2005 Michal Krátký, Jiří Dvorský do programování 23/31 c 2005 Michal Krátký, Jiří Dvorský do programování 24/31
5 Analýza otevřeného adresování Analýza otevřeného adresování Při analýze se budeme snažit vyjádřit počet pokusů při neúspěšném a úspěšném hledání jako funkci faktoru naplnění α, s tím že hodnoty n a m jdou k nekonečnu. Při použití otevřeného adresování může v každém slotu být nejvýše jeden prvek, proto n m a z toho plyne že α 1. Mějme dánu hashovací tabulku s otevřenou adresací s faktorem naplnění α = n/m < 1. Očekávaný počet pokusů při neúspěšném hledání je nejvýše 1/(1 α) za předpokladu uniformního hashování. Jestliže je α konstantní, věta tvrdí, že neúspěšné hledání lze provést v čase O(1). Například, jestliže hashovací tabulka je zaplněna z poloviny (α = 0, 5), očekávaný počet pokusů při neúspěšném hledání bude nejvýše 1/(1 0, 5) =2. Vložení prvku do hashovací tabulky s otevřenou adresací při faktoru naplnění α průměrně vyžaduje nejvýše 1/(1 α) pokusů zapředpokladu uniformního hashování. c 2005 Michal Krátký, Jiří Dvorský do programování 25/31 c 2005 Michal Krátký, Jiří Dvorský do programování 26/31 Analýza otevřeného adresování V hashovací tabulce s faktorem naplnění α<1, očekávaný počet pokusů při úspěšném hledání je nejvýše 1 α ln 1 1 α + 1 α za předpokladu uniformního hashování azapředpokladu, že každý klíč se bude vyhledávat se stejnou pravděpodobností. Jestliže je tedy například hashovací tabulka z poloviny plná, očekávaný počet pokusů je menší než 3, 387. Dobře navržená hashovací funkce splňuje (přibližně) předpoklad uniformního hashování tj. každý klíč se hashuje se stejnou pravděpodobností do libovolného z m slotů. Formálně, předpokládejme, že klíče jsou vybírány z nějakého univerza U podle pravděpodobností distribuční funkce P. Potom P(k) značí pravděpodobnost výběru klíče k. Předpoklad uniformního hashování lze zapsat jako P(k) = 1 pro j = 0, 1,...,m 1 m k:h(k)=j c 2005 Michal Krátký, Jiří Dvorský do programování 27/31 c 2005 Michal Krátký, Jiří Dvorský do programování 28/31 V praxi se hashovací funkcehashovací funkce většinou navrhují heuristickým způsobem. Využívá se přitom částečná představa o funkci P. Představme si například, že vyvíjíme tabulku symbolů pro kompilátor. Klíče v tomto případě budou řetězce znaků reprezentující identifikátory v programu. Lze předpokládat, že identifikátory nebudou vybírány rovnoměrně z množiny všech možných identifikátorů (tj. z množiny všech n-znakových řetězců), ale budou se pravděpodobně shlukovat, jako třeba identifikátory Item a Items. Dobře navržená hashovací funkce by měla tyto dva případy rozlišit. Rozsah hodnot hashovací funkce musí být přirozené číslo v rozsahu 0,...,m 1, kde m je velikost hashovací tabulky. Z toho plyne, že nejobvyklejší tvar hashovací funkce je h(k) =f (k) mod m, kde funkce f (k) vypočítá z klíče k číselnou hodnotu. Volba hodnoty m záleží na počtu hodnot, které chceme v tabulce ukládat. Dále záleží na technice řešení kolizí, abychom dosáhli optimální hodnoty faktoru naplnění α, při které je potřeba minimální počet pokusů. Tím je určena přibližná hodnota m. c 2005 Michal Krátký, Jiří Dvorský do programování 29/31 c 2005 Michal Krátký, Jiří Dvorský do programování 30/31
6 Volba m = 2 p nám sice umožní velice jednoduše vypočítat zbytek po dělení, ale tato volba není příliš vhodné, nebot v tomto případě bereme v úvahu jen nejnižších p bitů čísla f (k). Je vhodnější, aby hodnota hashovací funkce závisela na všech bitech čísla f (k). Nejvhodnější se obecně jeví volit m jako prvočíslo. Předpokládáme, že klíč k je tvořen posloupností bytů k = k 1 k 2...k r ). Funkce f (k) můžeme zvolit jako součet nebo součin všech bytů v klíči. f (k) = r i=1 k i nebo f (k) =Π r i=1 k i. c 2005 Michal Krátký, Jiří Dvorský do programování 31/31
Základy algoritmizace. Hašování
Základy algoritmizace Hašování Problematika hašování Hašování - nástroj na jednoduchý způsob "zakódování vstupních dat. Vstupní data jsou zpracována hašovací funkcí jsou jistým způsobem komprimována. Relativně
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
Hašování. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.
Hašování doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. února 2019 Jiří Dvorský (VŠB TUO) Hašování 375 / 397 Osnova přednášky
ALS1 Přednáška 1. Pravěpodobnost, náhodná proměnná, očekávaná hodnota náhodné proměnné, harmonická čísla
ALS Přednáška Pravěpodobnost, náhodná proměnná, očekávaná hodnota náhodné proměnné, harmonická čísla Prostor elementárních jevů S je množina, jejíž prvky se nazývají elementární jev. Jev je podmnožina
Návrh designu: Radek Mařík
Návrh designu: Radek Mařík 1. Hashovací (=rozptylovací) funkce a) převádí adresu daného prvku na jemu příslušný klíč b) vrací pro každý klíč jedinečnou hodnotu c) pro daný klíč vypočte adresu d) vrací
Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)
13. Metody vyhledávání. Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce). Asociativní vyhledávání (sekvenční, binárním půlením, interpolační, binární vyhledávací
HASHING GENERAL Hashovací (=rozptylovací) funkce
Níže uvedené úlohy představují přehled otázek, které se vyskytly v tomto nebo v minulých semestrech ve cvičení nebo v minulých semestrech u zkoušky. Mezi otázkami semestrovými a zkouškovými není žádný
TÉMATICKÝ OKRUH TZD, DIS a TIS
TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 13. Otázka : Základní datové struktury (pole, zásobník, binární strom atd.), datové struktury vhodné pro fyzickou implementaci relačních dat v SŘBD (hašovací
Algoritmizace Hashing II. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Hashing II Jiří Vyskočil, Marko Genyg-Berezovskyj 010 Srůstající hashování (coalesced hashing) Znám předem počet prvků (odhad) Z důvodů efektivity nechci ukazatele (mezi prvky). Na jednu pozici tabulky
Třetí skupina zadání projektů do předmětu Algoritmy II, letní semestr 2017/2018
Třetí skupina zadání projektů do předmětu Algoritmy II, letní semestr 2017/2018 doc. Mgr. Jiří Dvorský, Ph.D. 24. dubna 2018 Verze zadání 24. dubna 2018 První verze 1 1 Hašovací tabulka V tomto zadání
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi
Binární vyhledávací stromy pokročilé partie
Binární vyhledávací stromy pokročilé partie KMI/ALS lekce Jan Konečný 30.9.204 Literatura Cormen Thomas H., Introduction to Algorithms, 2nd edition MIT Press, 200. ISBN 0-262-5396-8 6, 3, A Knuth Donald
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
Algoritmy II. Otázky k průběžnému testu znalostí
Algoritmy II Otázky k průběžnému testu znalostí Revize ze dne 19. února 2018 2 Lineární datové struktury 1 1. Vysvětlete co znamená, že zásobník představuje paměť typu LIFO. 2. Co je to vrchol zásobníku?
Binární vyhledávací stromy II
Binární vyhledávací stromy II doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 19. března 2019 Jiří Dvorský (VŠB TUO) Binární vyhledávací
Jak funguje asymetrické šifrování?
Jak funguje asymetrické šifrování? Petr Vodstrčil petr.vodstrcil@vsb.cz Katedra aplikované matematiky, Fakulta elektrotechniky a informatiky, Vysoká škola báňská Technická univerzita Ostrava Petr Vodstrčil
Složitosti základních operací B + stromu
Složitosti základních operací B + stromu Radim Bača VŠB Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky ŠKOMAM 2010-1- 28/1/2010 Složitosti základních operací B +
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
binární vyhledávání a bst Karel Horák, Petr Ryšavý 23. března 2016 Katedra počítačů, FEL, ČVUT Příklad 1 Naimplementujte binární vyhledávání. Upravte metodu BinarySearch::binarySearch. 1 Příklad 2 Mysĺım
HASHING GENERAL Hashovací (=rozptylovací) funkce
Níže uvedené úlohy představují přehled otázek, které se vyskytly v tomto nebo v minulých semestrech ve cvičení nebo v minulých semestrech u zkoušky. Mezi otázkami semestrovými a zkouškovými není žádný
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
Red Black strom (Red Black Tree) Úvod do programování. Rotace. Red Black strom. Rotace. Rotace
Ú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 Red Black strom je binární strom s jedním dvouhodnotovým příznakem
Vyhledávání, zejména rozptylování
Datové struktury a algoritmy Část 11 Vyhledávání, zejména rozptylování Petr Felkel 16.5.2016 Topics Vyhledávání Rozptylování (hashing) Rozptylovací funkce Řešení kolizí Zřetězené rozptylování Otevřené
Algoritmy výpočetní geometrie
Algoritmy výpočetní geometrie 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)
Spojová implementace lineárních datových struktur
Spojová implementace lineárních datových struktur doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB
Návrh Designu: Radek Mařík
1. 7. Najděte nejdelší rostoucí podposloupnost dané posloupnosti. Použijte metodu dynamického programování, napište tabulku průběžných délek částečných výsledků a tabulku předchůdců. a) 5 8 11 13 9 4 1
Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy
Volné stromy Úvod do programování Souvislý, acyklický, neorientovaný graf nazýváme volným stromem (free tree). Často vynecháváme adjektivum volný, a říkáme jen, že daný graf je strom. Michal Krátký 1,Jiří
Pravděpodobnostní algoritmy
Pravděpodobnostní algoritmy 17. a 18. přednáška z kryptografie Alena Gollová 1/31 Obsah 1 Diskrétní rozdělení náhodné veličiny Algoritmus Generate and Test 2 Alena Gollová 2/31 Diskrétní rozdělení náhodné
Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39
Základy algoritmizace Michal Krátký 1, Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Základy algoritmizace, 2006/2007 Základy algoritmizace c2005, 2007 Michal Krátký, Jiří Dvorský1/39
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.
Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy
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
Vyvažování a rotace v BVS, všude se předpokládá AVL strom
Vyvažování a rotace v BVS, všude se předpokládá AVL strom 1. Jednoduchá levá rotace v uzlu u má operační složitost a) závislou na výšce levého podstromu uzlu u b) mezi O(1) a Θ(n) c) závislou na hloubce
Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost
Amortizovaná složitost. Prioritní fronty, haldy binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost 1. Asymptotické odhady Asymptotická složitost je deklarována na základě
vyhledávací stromové struktury
vyhledávací algoritmy Brute Force Binary Search Interpolation Search indexové soubory Dense index, Sparse index transformační funkce Perfect Hash, Close Hash Table, Open Hash Table vyhledávací stromové
Rozptylovací tabulky
Rozptylovací tabulky Hash tables Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 1 / 31 Rozptylovací tabulka Hash table Rozptylovací tabulka = implementace množiny / asociativního pole
Dynamické programování UIN009 Efektivní algoritmy 1
Dynamické programování. 10.3.2005 UIN009 Efektivní algoritmy 1 Srovnání metody rozděl a panuj a dynamického programování Rozděl a panuj: top-down Dynamické programování: bottom-up Rozděl a panuj: překrývání
Testování prvočíselnosti
Dokumentace zápočtového programu z Programování II (NPRG031) Testování prvočíselnosti David Pěgřímek http://davpe.net Úvodem V různých oborech (například v kryptografii) je potřeba zjistit, zda je číslo
Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.
Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických
5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}.
5. Náhodná veličina Poznámka: Pro popis náhodného pokusu jsme zavedli pojem jevového pole S jako množiny všech možných výsledků a pravděpodobnost náhodných jevů P jako míru výskytů jednotlivých výsledků.
Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.
Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u
Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.
Generování pseudonáhodných čísel při simulaci Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky V simulačních modelech se velice často vyskytují náhodné proměnné. Proto se budeme zabývat otázkou, jak při simulaci
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
Složitost algoritmů. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava
Složitost algoritmů doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 27. prosince 2015 Jiří Dvorský (VŠB TUO) Složitost algoritmů
Náhodný pokus Náhodným pokusem (stručněji pokusem) rozumíme každé uskutečnění určitého systému podmínek resp. pravidel.
Základy teorie pravděpodobnosti Náhodný pokus Náhodným pokusem (stručněji pokusem) rozumíme každé uskutečnění určitého systému podmínek resp. pravidel. Poznámka: Výsledek pokusu není předem znám (výsledek
Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava luk76/la1
Lineární algebra 5. přednáška: Báze a řešitelnost soustav Dalibor Lukáš Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava email: dalibor.lukas@vsb.cz http://homel.vsb.cz/ luk76/la1 Text
Úvod do zpracování signálů
1 / 25 Úvod do zpracování signálů Karel Horák Rozvrh přednášky: 1. Spojitý a diskrétní signál. 2. Spektrum signálu. 3. Vzorkovací věta. 4. Konvoluce signálů. 5. Korelace signálů. 2 / 25 Úvod do zpracování
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í
Náplň. v.0.03 16.02.2014. - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění
Náplň v.0.03 16.02.2014 - Jednoduché příklady na práci s poli v C - Vlastnosti třídění - Způsoby (algoritmy) třídění Spojení dvou samostatně setříděných polí void Spoj(double apole1[], int adelka1, double
1. Databázové systémy (MP leden 2010)
1. Databázové systémy (MP leden 2010) Fyzickáimplementace zadáníaněkterářešení 1 1.Zkolikaajakýchčástíseskládáčasprovstupněvýstupníoperaci? Ze tří částí: Seektime ječas,nežsehlavadiskudostanenadsprávnou
vyhledávací stromové struktury
0.05.0 vyhledávací algoritmy Brute Force, Binary Search, Interpolation Search indexové soubory Dense index, Sparse index, Multilevel index transformační funkce Perfect Hash Close Hash Table Open Hash Table
Č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á
Základy algoritmizace. Pattern matching
Základy algoritmizace Pattern matching 1 Pattern matching Úloha nalézt v nějakém textu výskyty zadaných textových vzorků patří v počítačové praxi k nejfrekventovanějším. Algoritmy, které ji řeší se používají
Modely Herbrandovské interpretace
Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší
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
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),
2 Datové struktury. Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky
Pole Seznam Zásobník Fronty FIFO Haldy a prioritní fronty Stromy Hash tabulky Slovníky 25 Pole Datová struktura kolekce elementů (hodnot či proměnných), identifikovaných jedním nebo více indexy, ze kterých
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í,
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
Základy algoritmizace a programování
Základy algoritmizace a programování Složitost algoritmů. Třídění Přednáška 8 16. listopadu 2009 Který algoritmus je "lepší"? Různé algoritmy, které řeší stejnou úlohu zbytek = p % i; zbytek = p - p/i*i;
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
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
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]
Proudové šifry a posuvné registry s lineární zpětnou vazbou
Proudové šifry a posuvné registry s lineární zpětnou vazbou Andrew Kozlík KA MFF UK Proudové šifry Bloková šifra Šifruje velké bloky otevřeného textu. Bloky mají pevnou délku. Velké znamená, že je prakticky
Dynamické datové struktury III.
Dynamické datové struktury III. Halda. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované
[1] samoopravné kódy: terminologie, princip
[1] Úvod do kódování samoopravné kódy: terminologie, princip blokové lineární kódy Hammingův kód Samoopravné kódy, k čemu to je [2] Data jsou uložena (nebo posílána do linky) kodérem podle určitého pravidla
Prohledávání do šířky = algoritmus vlny
Prohledávání do šířky = algoritmus vlny - souběžně zkoušet všechny možné varianty pokračování výpočtu, dokud nenajdeme řešení úlohy průchod stromem všech možných cest výpočtu do šířky, po vrstvách (v každé
Intervalová data a výpočet některých statistik
Intervalová data a výpočet některých statistik Milan Hladík 1 Michal Černý 2 1 Katedra aplikované matematiky Matematicko-fyzikální fakulta Univerzita Karlova 2 Katedra ekonometrie Fakulta informatiky a
Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
Jiří Vyskočil, Marko Genyg-Berezovskyj 2010 Úvod stránky předmětu: https://cw.felk.cvut.cz/doku.php/courses/a4b33alg/start cíle předmětu Cílem je schopnost samostatné implementace různých variant základních
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.0141 Báze vektorových prostorů, transformace souřadnic Michal Botur Přednáška
Úvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška devátá Miroslav Kolařík Zpracováno dle učebního textu prof. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008 Obsah 1 Kombinatorika: princip inkluze a exkluze 2 Počítání
Statistická teorie učení
Statistická teorie učení Petr Havel Marek Myslivec přednáška z 9. týdne 1 Úvod Představme si situaci výrobce a zákazníka, který si u výrobce objednal algoritmus rozpoznávání. Zákazník dodal experimentální
Hashovací funkce. Andrew Kozlík KA MFF UK
Hashovací funkce Andrew Kozlík KA MFF UK Hashovací funkce Hashovací funkce je zobrazení h : {0, 1} {0, 1} n. Typicky n {128, 160, 192, 224, 256, 384, 512}. Obraz h(x) nazýváme otisk, hash nebo digest prvku
Numerická stabilita algoritmů
Numerická stabilita algoritmů Petr Tichý 9. října 2013 1 Numerická stabilita algoritmů Pravidla v konečné aritmetice Pro počítání v konečné aritmetice počítače platí určitá pravidla, která jsou důležitá
Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.
Determinanty Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Determinanty Definice determinantu Sarrusovo a křížové pravidlo Laplaceův rozvoj Vlastnosti determinantu Výpočet determinantů 2 Inverzní
Téma 22. Ondřej Nývlt
Téma 22 Ondřej Nývlt nyvlto1@fel.cvut.cz Náhodná veličina a náhodný vektor. Distribuční funkce, hustota a pravděpodobnostní funkce náhodné veličiny. Střední hodnota a rozptyl náhodné veličiny. Sdružené
Bayesovské metody. Mnohorozměrná analýza dat
Mnohorozměrná analýza dat Podmíněná pravděpodobnost Definice: Uvažujme náhodné jevy A a B takové, že P(B) > 0. Podmíněnou pravěpodobností jevu A za podmínky, že nastal jev B, nazýváme podíl P(A B) P(A
Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava
Vyhledávání v textu doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 9. března 209 Jiří Dvorský (VŠB TUO) Vyhledávání v textu 402
Pokročilé neparametrické metody. Klára Kubošová
Klára Kubošová Další typy stromů CHAID, PRIM, MARS CHAID - Chi-squared Automatic Interaction Detector G.V.Kass (1980) nebinární strom pro kategoriální proměnné. Jako kriteriální statistika pro větvení
Výroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2014/2015 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2014/2015 1 / 21 Výroková logika Horn-SAT Horn-SAT Jednotková
Rozhodnutí / Skutečnost platí neplatí Nezamítáme správně chyba 2. druhu Zamítáme chyba 1. druhu správně
Testování hypotéz Nechť,, je náhodný výběr z nějakého rozdělení s neznámými parametry. Máme dvě navzájem si odporující hypotézy o parametrech daného rozdělení: Nulová hypotéza parametry (případně jediný
Dynamické programování
ALG 11 Dynamické programování Úloha batohu neomezená Úloha batohu /1 Úloha batohu / Knapsack problem Máme N předmětů, každý s váhou Vi a cenou Ci (i = 1, 2,..., N) a batoh s kapacitou váhy K. Máme naložit
KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni
KTE/TEVS - Rychlá Fourierova transformace Pavel Karban Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni 10.11.011 Outline 1 Motivace FT Fourierova transformace
a) b) c) Radek Mařík
2012-03-20 Radek Mařík 1. Čísla ze zadané posloupnosti postupně vkládejte do prázdného binárního vyhledávacího stromu (BVS), který nevyvažujte. Jak bude vypadat takto vytvořený BVS? Poté postupně odstraňte
Soustavy lineárních rovnic a determinanty
Soustavy lineárních rovnic a determinanty Petr Hasil Přednáška z matematiky Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem na discipĺıny
POZOR klíč NENÍ index (adresa), ale podle klíče se hodnoty ukládají na indexy (adresy).
Hashovací tabulka = Hash table Hashovací tabulka (hash table, rozptýlená tabulka, hešovací tabulka) je datová struktura, která slouží k ukládání dvojic klíč-hodnota. kombinuje výhody vyhledávání pomocí
Základní datové struktury
Základní datové struktury Martin Trnečka Katedra informatiky, Přírodovědecká fakulta Univerzita Palackého v Olomouci 4. listopadu 2013 Martin Trnečka (UPOL) Algoritmická matematika 1 4. listopadu 2013
TÉMATICKÝ OKRUH Počítače, sítě a operační systémy
TÉMATICKÝ OKRUH Počítače, sítě a operační systémy Číslo otázky : 12. Otázka : Metody fyzické organizace dat Obsah : 1.Úvod 2.Vnější paměti 3.Sekvenční soubory 3.1 Setříděné sekvenční soubory 4.Zřetězené
Diskrétní matematika. DiM /01, zimní semestr 2016/2017
Diskrétní matematika Petr Kovář petr.kovar@vsb.cz Vysoká škola báňská Technická univerzita Ostrava DiM 470-2301/01, zimní semestr 2016/2017 O tomto souboru Tento soubor je zamýšlen především jako pomůcka
IB112 Základy matematiky
IB112 Základy matematiky Základy kombinatoriky a kombinatorická pravděpodobnost Jan Strejček Obsah IB112 Základy matematiky: Základy kombinatoriky a kombinatorická pravděpodobnost 2/57 Výběry prvků bez
PQ-stromy a rozpoznávání intervalových grafů v lineárním čase
-stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S
4. Trojúhelníkový rozklad p. 1/20
4. Trojúhelníkový rozklad 4. Trojúhelníkový rozklad p. 1/20 4. Trojúhelníkový rozklad p. 2/20 Trojúhelníkový rozklad 1. Permutační matice 2. Trojúhelníkové matice 3. Trojúhelníkový (LU) rozklad 4. Výpočet
populace soubor jednotek, o jejichž vlastnostech bychom chtěli vypovídat letní semestr Definice subjektech.
Populace a Šárka Hudecová Katedra pravděpodobnosti a matematické statistiky Matematicko-fyzikální fakulta Univerzity Karlovy letní semestr 2012 1 populace soubor jednotek, o jejichž vlastnostech bychom
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)):
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
Pravděpodobnost a její vlastnosti
Pravděpodobnost a její vlastnosti 1 Pravděpodobnost a její vlastnosti Náhodné jevy Náhodný jev je výsledek pokusu (tj. realizace určitého systému podmínek) a jeho charakteristickým rysem je, že může, ale
Dynamická vícerozměrná pole. Základy programování 2 Tomáš Kühr
Dynamická vícerozměrná pole Základy programování 2 Tomáš Kühr Statická pole připomenutí Příklad definice: int polea[2][3]; Nejjednodušší způsob vytvoření pole Pole je statické oba rozměry se zadávají konstantou
Interpolace Uvažujme třídu funkcí jedné proměnné ψ(x; a 0,..., a n ), kde a 0,..., a n jsou parametry, které popisují jednotlivé funkce této třídy. Mějme dány body x 0, x 1,..., x n, x i x k, i, k = 0,
Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout
Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní graf má stromovou šířku nejvýše k, a je-li tomu tak, také vrátí příslušný stromový rozklad. Poznamenejme, že je-li k součástí vstupu,
V kompletním grafu nenastává problém. Každý uzel je soused se zbytkem vrcholů a může s nimi kdykoliv komunikovat.
1 SMĚROVÁNÍ (ROUTING) V kompletním grafu nenastává problém. Každý uzel je soused se zbytkem vrcholů a může s nimi kdykoliv komunikovat. Problém nastává u ostatních grafů: Kritéria dobrého směrování: a)