od Quimby » 22. 6. 2018 00:40
První příklad(prolog):
Nalezněte lexikograficky předchozí permutaci:(Pokud není tak false)
Kód: Vybrat vše
prev([1,2,6,3,4,5,7],V).
V = [1,2,5,7,6,4,3]
Druhý příklad(prolog):
Dostaneme list atomů a list binárních operátorů. Máme postupně vydat všechny termy obsahující všechny atomy (pořadí zleva doprava), operátory se mohou opakovat.
Kód: Vybrat vše
gen([a,b,c],[xor],V).
V = a xor (b xor c).
V =(a xor b) xor c.
gen([a,b,c],[xor,and],V).
V = a xor (b xor c).
V = a xor (b and c).
V = a and (b xor c).
V = a and (b and c)...
Třetí příklad(haskell):
Ohodnotit vrcholy obecného n-arní stromu v pořadí v jakém jsou vrcholy uzavírány, takže post-fixově. Měla se napsat datová struktura pro strom, typová hlavička fce a pak tu funkci implementovat:
Kód: Vybrat vše
data Strom a = Nil | Strom a [Strom a]
label::Strom a -> Strom (a,Int)
Čtvrtý příklad(haskell):
Implementovat horní celou část čísla = kladná zaokrouhluje nahoru, záporná dolů. Mělo by to běžet v čase logn a samozřejmě bez použítí ceil/floor a podobných fcí.
Velký příklad:
Na vstupu jsou kostičky domina(dvojice symbolů) a máme je uspořádat do co nejmenšícho počtu řetězců. V řetězci na sebe musí navazovat:
Kód: Vybrat vše
Vstup: [(8,8),(1,2),(2,3),(3,4), (7,8)]
Reseni: [[(1,2),(2,3),(3,4)],[(7,8),(8,8)]]
Můžeme si vybrat jazyk, musíme navrhnout reprezentaci vstupu,výstupu a samozřejmě algoritmus. Měli jsme najít polynomiální řešení.
[b]První příklad(prolog):[/b]
Nalezněte lexikograficky předchozí permutaci:(Pokud není tak false)
[code]
prev([1,2,6,3,4,5,7],V).
V = [1,2,5,7,6,4,3] [/code]
[b]Druhý příklad(prolog):[/b]
Dostaneme list atomů a list binárních operátorů. Máme postupně vydat všechny termy obsahující všechny atomy (pořadí zleva doprava), operátory se mohou opakovat.
[code]
gen([a,b,c],[xor],V).
V = a xor (b xor c).
V =(a xor b) xor c.
gen([a,b,c],[xor,and],V).
V = a xor (b xor c).
V = a xor (b and c).
V = a and (b xor c).
V = a and (b and c)...
[/code]
[b]Třetí příklad(haskell):[/b]
Ohodnotit vrcholy obecného n-arní stromu v pořadí v jakém jsou vrcholy uzavírány, takže post-fixově. Měla se napsat datová struktura pro strom, typová hlavička fce a pak tu funkci implementovat:
[code]
data Strom a = Nil | Strom a [Strom a]
label::Strom a -> Strom (a,Int)
[/code]
[b]Čtvrtý příklad(haskell):[/b]
Implementovat horní celou část čísla = kladná zaokrouhluje nahoru, záporná dolů. Mělo by to běžet v čase logn a samozřejmě bez použítí ceil/floor a podobných fcí.
[b]Velký příklad:[/b]
Na vstupu jsou kostičky domina(dvojice symbolů) a máme je uspořádat do co nejmenšícho počtu řetězců. V řetězci na sebe musí navazovat:
[code]
Vstup: [(8,8),(1,2),(2,3),(3,4), (7,8)]
Reseni: [[(1,2),(2,3),(3,4)],[(7,8),(8,8)]]
[/code]
Můžeme si vybrat jazyk, musíme navrhnout reprezentaci vstupu,výstupu a samozřejmě algoritmus. Měli jsme najít polynomiální řešení.