zkouska 22.1.2007

Manicka
Matfyz(ák|ačka) level I
Příspěvky: 26
Registrován: 28. 6. 2006 18:20

zkouska 22.1.2007

Příspěvek od Manicka »

Tak dneska bylo:
Haskell
1.

Kód: Vybrat vše

Sestavte funkci, ktera ke vstupujici (nekonecne) posloupnosti realnych cisel a prirozenemu cislu N vyda posloupnosti "klouzavych prumeru s intevalem N". Klouzavy prumer s intervalem N je prumer poslednich prvku.
2.

Kód: Vybrat vše

Mocninna rada je reprezentovana (nekonecnou posloupnosti) posloupnosti jejich koeficientu. Vytvorte funkce, ktere spocitaji
a) Soucet dvou mocninnych rad
b) Soucin dvou mocninnych rad
c) K-tou derivaci mocninne rady
Prolog
1.

Kód: Vybrat vše

Ke kazdemu obecnemu (korenovemu) stromu existuje kanonicka reprezentace pomoci binarniho stromu, v niz
  levy syn znamena prvorozeny syn v puvodnim strome a
  pravy syn znamena mladsi bratr v puvodnim strome
sestavte predikat(y) pro transformaci z obecneho na binarni a zpet.
2.

Kód: Vybrat vše

Definujet predikat odpov (r1,r2) dvou promennych, ktery pro kazde dva seznamy (cisel a specialnich znaku *, ?) r1 a r2 uspeje pokud existuji "substituce jednoho cisla za kazdy zolik ? a substituce posloupnosti (treba prazdne) cisel za znak * takove, ze po provedeni techto substituci dostanete stejne seznamy."
Napr:
  odpov ( [1,5,*,7,?,1] , [*,7,7,5,1] ).
  odpov ( [1,*,5,7,?,1] , [?,?,7,5,1] ).
Muzete predpokladat, ze v jednom seznamu je maximalne jedna hvezdicka.
Tak to je vse, ted jsem se vratila akorat z pisemky a ustni probihaji od dneska az do stredy takze zadnou statistiku uspesnosti bohuzel neposkytnu...
Uživatelský avatar
Lada
Donátor
Donátor
Příspěvky: 165
Registrován: 9. 1. 2005 10:17
Typ studia: Informatika Bc.
Bydliště: Slaný / zácpa na Evropské

Příspěvek od Lada »

ja byl na ustnim dneska jako treti - prede mnou 1,1 ja za 3 (podle me je Kryl celkem tvrdy na to ze ne uplne vyznamna chyba (to co clovek opravi po chvili ladeni) znamena ze to nemate dobre, ale na druhou stranu celkove hodnoceni je docela mirne - ja osobne mel zhruba 2,5 prikladu dobre a vysledek byl mezi 2 a 3... Takze moje rada je pozor na hloupe chyby (treba splest si + a - s * a / v prvnim prikladu :)
Hail to you, champion:o)
jeza
Matfyz(ák|ačka) level I
Příspěvky: 4
Registrován: 13. 1. 2007 13:06

Vysledky pondeli

Příspěvek od jeza »

Byl jsem jednim z poslednich (10.) a vysledky prede mnou byly takoveto:
3x 1
3x 3
3x 4

Ja doplnil 1 a predpokladam, ze i ti dva, co sli po mne, sli za 1.
Tak preju hodne zdaru.
Pz
Matfyz(ák|ačka) level I
Příspěvky: 20
Registrován: 24. 1. 2006 12:20
Typ studia: Informatika Bc.

Ke zkousce

Příspěvek od Pz »

Tak na ustni to u me trvalo asi dve minuty, 30 sekund na priklad a bral do ruky index.

Co mu stacilo:

1. Klouzave prumery - urcite pomocnou fci (nebo lambda), ktera dostane dvakrat seznam (puvodni a puvodni bez prvnich n clenu), soucasnou sumu a dane N a bude nove soucty pocitat pomoci tech predchozich.
Co jsem slysel, nelibi se mu, kdyz to clovek pokazde pocita znovu.

2.
a) Soucet je snad trivka ( add (x:xs) (y:ys) = (x+y) : ( add xs ys ) )

b) Soucin jsem udelal dvema zpusoby - ten lepsi mi dokonce sam doktor pochvalil (z tech 30 sekund stravil asi 25 louskanim tohoto).

c) Derivaci jsem udelal taky dvakrat - jednak jako der_n x n = der ( der x n - 1), jednak primo - to uz nekomentoval, ale myslim, ze ho to potesilo.

3. Aniz bych to vedel, udelal jsem temer stejne reseni, jako je na http://prgs.xf.cz/, to zmatchoval a sel dal.

4. Tady stacilo par predikatu:

odpov([], []).
odpov([X|XS], [Y|YS]) :- odpov(XS, YS).

odpov([?|XS], [_|YS]) :- odpov(XS, YS).
plus zrcadlove

odpov([*|XS], [Y|YS]) :- odpov(XS, YS) ; odpov([*|XS], YS); odpov(XS, [Y|YS]).
opet plus zrcadlove.


Za hodne asi vdecim take tomu, ze spechal. Po onech dvou minutach mi venoval autogram s kouzelnym slovickem, teorii po me nechtel zadnou (a ja precetl celou Introduction to Haskell v anglictine...).

Vim akorat o dvou dalsich lidech, jeden za jedna, druhy za dva.

See ya, neprocko..or rather not 8)
Those who want, try to find the way. Those who do not want, try to find the reason.
Sakuri
Matfyz(ák|ačka) level I
Příspěvky: 36
Registrován: 8. 1. 2007 20:45

Příspěvek od Sakuri »

No ja sla hned v pondeli na ustni asi jako pata nebo tak. Prolog jsem mela cely dobre, coz me zachranilo. Klouzavy prumer mi nevzal, nevim presne proc - rozhodne se mu nelibilo to, ze to bylo neefektivni (proste scitani n clenu pokazde znova neni nejlepsi...), ale mumlal neco o spatne podmince, takze nevim, kvuli ceho to presne bylo, ale rozhodne mi ten priklad bral jako cely spatne. U soucinu jsem taky udelala hloupou chybu, takze mi ho nevzal, soucet a derivaci jsem mela dobre (derivaci dokonce pochvalil). Nakonec mi rekl, ze to je spis tri nez dve, ale ze se me jeste teda na neco zepta, ze kdyz mu to reknu na jedna, tak dostanu dve, ale bat se nemusim, hur nez tri to byt uz nemuze - tohle je super, kdyz vas nekdo takhle uklidni, protoze vite, ze ma smysl to risknout - nemate, co ztratit. Zeptal se na rozdilove seznamy - takze po peti minutach jsem to sama vzdala a nechala si napsat trojku.
U ustni je akorat neprijemne sledovat, jak prohlizi tu pisemku - zvlast, kdyz mate jeden a pul prikladu uplne blbe, to jsem pak jenom trnula, aby mi nekde v tom prologu nenasel chybu. Jinak Kryl byl v pohode a rozhodne jsem nemela pocit, ze by mel nejaky problem s tim, ze jsem holka. Pak me jeste uklidnil tim, ze mi rekl, ze zkousku jsem urcite udelala, a ze se jeste musi rozhodnout jak.
Celkove hodnoceni se mozna muze zdat drsne, ale zase to byly relativne lehke priklady, takze se da pochopit, ze mu vadily i sebemensi chybky. Jinak tri hodiny na pisemnou je hodne casu, zvlast pokud si clovek aspon trochu prosel priklady na forech a vedel aspon trochu do ceho jde. Ja jsem tomu venovala celkove asi ctyri odpoledne a stacilo to - sice jsem nepodala nijak oslnivy vykon, ale zkousku mam a to mi staci.
Takze doporuceni: projit si a zkusit naprogramovat nejaka ta stara zadani, cim vic toho stihnete, tim lip - je velka sance, ze se nejake ty priklady vyskytnou v pisemce. Nestresovat a nepanikarit- tri hodiny je dost a kdyz si prectete nekolikrat zadani, tak vetsinou zjistite, ze to nejak pujde. Kdyz nebudete vedet neco, o cem budete mit pocit, ze byste to meli vedet, zeptejte se - treba u nas se jeden clovek zeptal, co je mocninna rada, ze uz si to moc nepamatuje, kryl se sice zeptal, jestli si z neho dela srandu, ale pak ten vzorecek napsal na tabuli, takze pohoda. Pisemku, pokud budete mit cas, si pak jeste projdete - je pravda, co tu uz nekdo psal - i kdyz tam mate blbou chybu, u ktere je jasne, ze ji zvladnete opravit behem minuty, u ustni uz to nebudete mit prilezitost udelat - muzete mu śice rict reseni, ale to vam nepomuze (nebo aspon me to nepomohlo), co je psano je dano, a tak to kryl taky bere. No a nakonec - ja mela z tehle zkousky nejvetsi strach, protoze me dost lidi strasilo, jaka je to hruza a jak kryl nema rad zenske, ale nakonec mi to neprislo o nic horsi, nez ty ostatni zkousky a kryl byl fakt (v ramci svych moznosti;)) prijemny.
Manicka
Matfyz(ák|ačka) level I
Příspěvky: 26
Registrován: 28. 6. 2006 18:20

Příspěvek od Manicka »

No ja jsem byla na ustnich vcera rano, jako treti.
U prvniho mi za chybu dal to scitani furt dokola, u druhyho se mu nelibilo moje nasobeni, ze pri nekonecnym seznamu, to nic nevyplivne, protoze to ceka na dno rekurze...:(
U tretiho jsem opominula prazdny obecny strom, ale jinak OK, a ctvrtej sice slozite resenej, ale v poradku.
Teorie : lazy patterns a lazy vyhodnocovani, prolog : akumulator, chtel abych mu to povidala jako neznalemu kamaradovi, ktery o tom nic nevi, proste jako laikovi, coz mi nastesti slo, takze vysledek za 1.
Pred teoretickejme otazkama mi rekl ze pod 2 nespadnu, takze urcite stoji za to zkusit ty otazky, protoze vam nic horsiho, nez na co je vase pisemka NEDA.
Neni to jako Jirovsky, ktery kdyz ste nevedeli otazku tak jste mohli spadnout z jednicky na ctyrku...
Ale jak to tady ctu, tak postupem dne je Kryl prisnejsi a prisnejsi, takze je urcite lepsi jit rano, asi kdybych sla odpoledne tak tu jednicku nemam...
No preju stesti vsem co jeste neprocko nemaj...:)
Uživatelský avatar
lavor
Matfyz(ák|ačka) level III
Příspěvky: 121
Registrován: 1. 2. 2005 20:39
Typ studia: Informatika Bc.
Bydliště: kolej 17.11., A1105
Kontaktovat uživatele:

Příspěvek od lavor »

pevne dufam ze kryl teraz naopak nezacne mat problem so zastupcami muzskeho pohlavia , kedze s holkami uz problem nema :lol:
Milujeme tých, čo nás odmietajú, odmietame tých, čo nás milujú.
Uživatelský avatar
Lukas Mach
Matfyz(ák|ačka) level III
Příspěvky: 261
Registrován: 28. 3. 2006 17:08
Typ studia: Informatika Bc.
Bydliště: Praha a Kladno
Kontaktovat uživatele:

Re: Ke zkousce

Příspěvek od Lukas Mach »

Pz píše:1. Klouzave prumery - urcite pomocnou fci (nebo lambda), ktera dostane dvakrat seznam (puvodni a puvodni bez prvnich n clenu), soucasnou sumu a dane N a bude nove soucty pocitat pomoci tech predchozich.
Co jsem slysel, nelibi se mu, kdyz to clovek pokazde pocita znovu.
Kdyz se to ale pocita tak, ze si clovek udrzuje posloupnost castecnych souctu a ty pak odcita, tak se tam prece ale kumuluje chyba... protoze Float ma v haskellu omezenou presnost. Pokud je to skutecne tak, tak to (v zavislosti na konkretni implementaci) bude od urciteho clenu bud vracet 0 (protoze (100000000000... - 100000000000...)/n == 0/n == 0) nebo tam bude vznikat nejaka odchylka.

BTW nevedel by nekdo, proc mi tahle vec (rozdil seznamu, nasledne vydeleny n-kem) nefunguje?

vydeleny_rozdil :: [Float] -> [Float] -> Integer -> [Float]
vydeleny_rozdil (a:as) (b:bs) n = (a-b)/n : (vydeleny_rozdil as bs n)

Evidentne tomu vadi, ze delim Float Integerem. Hlasi mi to:

ERROR file:.\prvni.hs:46 - Type error in application
*** Expression : (a - b) / n
*** Term : a - b
*** Type : Float
*** Does not match : Integer
For every epsilon, there is delta.
Where is my delta?
Uživatelský avatar
Lukas Mach
Matfyz(ák|ačka) level III
Příspěvky: 261
Registrován: 28. 3. 2006 17:08
Typ studia: Informatika Bc.
Bydliště: Praha a Kladno
Kontaktovat uživatele:

Příspěvek od Lukas Mach »

Pokud by nekoho zajimala jina reseni, tak 3. priklad mam takhle (funguje obema smery):

Kód: Vybrat vše

%  kanon(?X, ?Y)
%  Strom: t(a,[t(f,[t(g,[])]),t(c,[]),t(b,[t(d,[]),t(e,[])])])

kanon(X, Y) :- fold([X], Y).
fold([], nil).
fold([t(Node, Children)|Siblings], t(Son, Node, SiblingsK)) :- fold(Children, Son), fold(Siblings, SiblingsK).
For every epsilon, there is delta.
Where is my delta?
stinny
Matfyz(ák|ačka) level I
Příspěvky: 42
Registrován: 23. 1. 2007 15:23

Re: Ke zkousce

Příspěvek od stinny »

Lukas Mach píše:Evidentne tomu vadi, ze delim Float Integerem.
Tenhle problem jsem taky resil, muze za to typovy system Haskellu :-) Dvorak mi na to poradil, ze existuje _nejaka_ funkce, ktera prevadi Int na Float, ale uz jsem to nehledal, tak nevim.
Uživatelský avatar
Lukas Mach
Matfyz(ák|ačka) level III
Příspěvky: 261
Registrován: 28. 3. 2006 17:08
Typ studia: Informatika Bc.
Bydliště: Praha a Kladno
Kontaktovat uživatele:

Re: Ke zkousce

Příspěvek od Lukas Mach »

stinny píše:Tenhle problem jsem taky resil, muze za to typovy system Haskellu :-) Dvorak mi na to poradil, ze existuje _nejaka_ funkce, ktera prevadi Int na Float, ale uz jsem to nehledal, tak nevim.
Diky, staci mi, ze se to resi nejakou konverzni funkci... navic na papiru snad takovahle chyba nebude hrat roli.
For every epsilon, there is delta.
Where is my delta?
Odpovědět

Zpět na „2006“