od domestomas » 6. 6. 2019 15:54
Na první část 90 minut, zadání 4 úloh - 2 na prolog a 2 na Haskel. Měli jsme si vybrat pouze 3 z těch úloh a nakódit je. Za každou úlohu bylo 5 bodů a bylo potřeba získat alespoň 4 body z každého jazyka. Říkali, že programy nemusejí seběhnout a i tak za ně může být plný počet, když budou sémanticky správně. Pro obě části jsme mohli používat dodanou offline dokumentaci v pdf. Pro první část jsme měli seznam predikátů a funkci prologu a Haskelu, jiné než vyjmenované jsme nesměli používat. Pro druhou část už jsem mohli používat všechny kromě assert a retract. Byly k dispozici pouze počítače s Windows a protože to některým vadilo, mohli jsme na druhou část i do unixové laboratoře. Příště prý už budeme od začátku tam (je tam dual boot, takže si člověk může vybrat systém). Nesměli jsme programovat na vlastních noteboocích.
Část 1 (90 min):
Prolog:
1) Máte zadán neorientovaný ohodnocený graf a číslo K. Rozdělte ho na komponenty spojené hranami váhy menší než K. Reprezentaci grafu jsme si měli zvolit sami.
2) Máte danou množinu - vypište všechny její rozklady
Haskel:
3) Máte potenciálně nekonečný seznam reálných čísel a konstantu K. Vraťte seznam aritmetických průměrů všech po sobě jdoucích K-tic (okénkové průměry).
4) Na vstupu je inorder výpis stromu (nevím, jaký byl formát), vymyslete si datovou strukturu na strom a zrekonstruujte ho podle výpisu.
Část 2 (85 minut):
Překladový slovník
Jsou zadány dva texty ve dvou jazycích, přičemž druhý text je překladem toho prvního. Můžete předpokládat, že oba texty mají stejný počet vět, přičemž i-tá věta druhého je překladem i-té věty prvního textu.
Problém: Navrhněte (netriviální) heuristiku pro nalezení co nejlepšího přiřazení mezi jednotlivými slovy obou jazyků, které by souhlasilo se zadanými překlady vět.
Uvědomte si, že
věta a její překlad mohou být obecně různě dlouhé
jedno slovo může být přeloženo více způsoby, a naopak různá slova mohou být přeložena stejně
Ve vašem řešení nezapomeňte popsat reprezentaci vstupu a výstupu, s níž budete pracovat.
Na první část 90 minut, zadání 4 úloh - 2 na prolog a 2 na Haskel. Měli jsme si vybrat pouze 3 z těch úloh a nakódit je. Za každou úlohu bylo 5 bodů a bylo potřeba získat alespoň 4 body z každého jazyka. Říkali, že programy nemusejí seběhnout a i tak za ně může být plný počet, když budou sémanticky správně. Pro obě části jsme mohli používat dodanou offline dokumentaci v pdf. Pro první část jsme měli seznam predikátů a funkci prologu a Haskelu, jiné než vyjmenované jsme nesměli používat. Pro druhou část už jsem mohli používat všechny kromě assert a retract. Byly k dispozici pouze počítače s Windows a protože to některým vadilo, mohli jsme na druhou část i do unixové laboratoře. Příště prý už budeme od začátku tam (je tam dual boot, takže si člověk může vybrat systém). Nesměli jsme programovat na vlastních noteboocích.
[b]Část 1 (90 min):[/b]
Prolog:
1) Máte zadán neorientovaný ohodnocený graf a číslo K. Rozdělte ho na komponenty spojené hranami váhy menší než K. Reprezentaci grafu jsme si měli zvolit sami.
2) Máte danou množinu - vypište všechny její rozklady
Haskel:
3) Máte potenciálně nekonečný seznam reálných čísel a konstantu K. Vraťte seznam aritmetických průměrů všech po sobě jdoucích K-tic (okénkové průměry).
4) Na vstupu je inorder výpis stromu (nevím, jaký byl formát), vymyslete si datovou strukturu na strom a zrekonstruujte ho podle výpisu.
[b]Část 2 (85 minut):[/b]
Překladový slovník
Jsou zadány dva texty ve dvou jazycích, přičemž druhý text je překladem toho prvního. Můžete předpokládat, že oba texty mají stejný počet vět, přičemž i-tá věta druhého je překladem i-té věty prvního textu.
Problém: Navrhněte (netriviální) heuristiku pro nalezení co nejlepšího přiřazení mezi jednotlivými slovy obou jazyků, které by souhlasilo se zadanými překlady vět.
Uvědomte si, že
věta a její překlad mohou být obecně různě dlouhé
jedno slovo může být přeloženo více způsoby, a naopak různá slova mohou být přeložena stejně
Ve vašem řešení nezapomeňte popsat reprezentaci vstupu a výstupu, s níž budete pracovat.