Kryl 26.6.2013

Abby at 2013-06-27 10:56:04

Prvá časť:
Haskell

  • Zadaná množina (rastúci zoznam unikátnych prvkov) a zobrazenie (zoznam dvojíc prvkov), úlohou bolo nájsť vzor a obraz množiny (a vrátiť opäť ako zoradený zoznam unikátnych prvkov).

  • Prevod obecného stromu na kanonickú reprezentáciu binárnym stromom (ľavý syn je prvorodený syn a pravý je mladší brat) a naspäť, pri prevode z binárneho na obecný môže vzniknúť les.

Prolog

  • Nájsť (bezprostredne) predchádzajúcu permutáciu v lexikografickom usporiadaní. (varianta na nasledujúcu permutáciu, stačí miesto rastúceho konca uvažovať klesajúci)

  • Delenie polynómov (reprezentáciu sme si mohli zvoliť).

Druhá časť:
Úloha s mobilom, každý mobil je buď jednoduchý - má iba záves a závažie alebo má záves, kĺb, dve ramená a na nich zavesené ďalšie mobily. Úlohou bolo vymyslieť vhodnú reprezentáciu mobilu v Haskelli a zistiť, či:

  • daný mobil je vyvážený, tzn. v každom kĺbe platí momentová veta (váha ľavého podmobilu * dĺžka ľavého ramena = váha pravého podmobilu * dĺžka pravého ramena), uvažujeme iba váhu závaží,

  • daný mobil je bezpečný, tzn. neexistuje také otočenie v niektorých kĺboch, že by do seba nejaké časti mobilu narazili.