Cvičenia
Úloha 1
Vytvorte si pracovné prostredie Jupyter Notebook v službe KubeFlow a pripravte ho na odovzdávanie úloh.
- Prihláste sa na ml.cloud.tuke.sk.
- Vytvorte notebook
avp26a overte, že sa viete pripojiť k terminálu. - Nastavte SSH kľúč a prístup do školského Git repozitára na servri KEMT GI...
View all of Príprava webového pracovného prostredia
Prečítajte si:
Úloha 1
V súbore list_ops.py implementujte bez použitia hotových ekvivalentov
funkcie append, concat, filter, length, map, foldl, foldr a
reverse.
Výsledok musí byť nový zoznam (alebo hodnota pri length a fold*) a vstupné
zozn...
View all of Operácie so zoznamami
Implementujte word_count(text), ktorá vráti slovník s počtom výskytov slov
v texte. Počítanie je bez ohľadu na veľkosť písmen; slová oddeľuje interpunkcia
a biele znaky, apostrof vo vnútri kontrakcie zostáva súčasťou slova a čísla sa
počítajú ako slová.
Funkcia má vrátiť slovník, nie vypisovať t...
Implementujte find(search_list, value) pre vzostupne zoradený zoznam.
Algoritmus má opakovane deliť interval kandidátov na polovice a vrátiť index
nájdenej hodnoty. Ak hodnota chýba, vyvolajte ValueError("value not in array").
Podrobný opis: Binárne vyhľadávanie.
View all of Binárne vyhľadávanie
Vytvorte triedu BinarySearchTree, ktorá ukladá čísla do uzlov s atribútmi
data, left a right. Implementujte vkladanie podľa pravidiel BST a
generátor inorder priechodu, ktorý vráti hodnoty vzostupne.
Nezabudnite spracovať duplicitné hodnoty a chýbajúcich potomkov reprezentovať
hodnotou No...
View all of Binárny vyhľadávací strom
Implementujte jednoduchý Huffmanov kompresor pre text: tabuľku početností,
stavbu stromu pomocou heapq, generovanie prefixových kódov, kódovanie,
dekódovanie a výpočet kompresného pomeru.
Prázdny strom reprezentujte None, list znakom a vnútorný uzol dvojicou
(left, right). Ľavá vetva má kód...
View all of Huffmanovo kódovanie
Napíšte encode(data) a decode(data) pre bezstratové kódovanie objektov
bytes. Každú skupinu rovnakých po sebe idúcich bajtov zapíšte ako
počet:bajt; dekódovanie musí zápis obrátiť.
Spracujte prázdne vstupy aj všetkých 256 hodnôt bajtu vrátane dvojbodky.
Overte vlastnosť decode(encode(data...
View all of Run-length encoding (RLE)
Implementujte maximum_value(maximum_weight, items) pre problém 0/1 batoha.
Každý predmet (slovník s kľúčmi weight a value) môžete vybrať najviac
raz. Vráťte najväčšiu hodnotu bez prekročenia kapacity.
Navrhnite stav a prechody dynamického programovania a otestujte prázdny batoh, príliš ťažké...
View all of Knapsack – problém batoha
Vytvorte program, ktorý spočíta prvočísla v zadanom intervale a prácu rozdelí medzi viac procesov alebo vlákien. Výsledok musí byť rovnaký ako pri sekvenčnom výpočte.
Rozdeľte interval na nezávislé časti, spracujte ich paralelne a výsledky bezpečne spojte. Porovnajte čas behu so sekvenčným riešení...
View all of Paralelné počítanie prvočísiel
Navrhnite službu založenú na asyncio, ktorá prijíma úlohy, spracúva ich bez
blokovania ostatných klientov a vracia výsledky. Použite asynchrónne funkcie,
frontu úloh a korektné ukončenie workerov; ošetrite aj chyby úloh.
Precvičíte si event loop, async/await, asyncio.Queue a súbežné čakani...
View all of Asynchrónna služba na spracovanie úloh