4. sada domácich zadaní

Moderátor: FeroG

<<

PekarcikPatrik

Príspevky: 12

Registrovaný: Str Sep 25, 2013 4:59 pm

Poslať Sob Mar 08, 2014 11:01 pm

4. sada domácich zadaní

Je mozne na rieseni uloh vyuzit vynimky? alebo to radsej urobit inak?
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Ned Mar 09, 2014 12:05 am

Re: 4. sada domácich zadaní

PekarcikPatrik píše:Je mozne na rieseni uloh vyuzit vynimky? alebo to radsej urobit inak?

A ktora uloha si to vyzaduje?
<<

PekarcikPatrik

Príspevky: 12

Registrovaný: Str Sep 25, 2013 4:59 pm

Poslať Ned Mar 09, 2014 12:21 am

Re: 4. sada domácich zadaní

FeroG píše:A ktora uloha si to vyzaduje?

Pouzil som to v ulohe "Úplný strom" kde vdaka vynimke viem zanedbat vela if-ov, Otazka je ako narocny je beh Vynimky po jej odchytenie
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Ned Mar 09, 2014 12:38 am

Re: 4. sada domácich zadaní

PekarcikPatrik píše:Pouzil som to v ulohe "Úplný strom" kde vdaka vynimke viem zanedbat vela if-ov, Otazka je ako narocny je beh Vynimky po jej odchytenie

Odporucanie z PAZ1a: Vynimky nemaju byt zneuzivane na veci, ktore ide vyriesit inak, pretoze ... a je na to vela dovodov. Zdroje potrebne na odchytavanie vynimiek su jedna vec. Okrem toho je tu problem s "logikou pouzitia". Vynimka ma indikovat vynimocnu situaciu, nie sprostredkovat vysledok. Vratenie vysledku totiz nie je vynimocnou situaciou (aspon by teda nemalo byt).

http://java-performance.info/throwing-a ... very-slow/
http://stackoverflow.com/questions/2990 ... exceptions
<<

PekarcikPatrik

Príspevky: 12

Registrovaný: Str Sep 25, 2013 4:59 pm

Poslať Ned Mar 09, 2014 1:01 am

Re: 4. sada domácich zadaní

FeroG píše:Odporucanie z PAZ1a: Vynimky nemaju byt zneuzivane na veci, ktore ide vyriesit inak, pretoze ... a je na to vela dovodov. Zdroje potrebne na odchytavanie vynimiek su jedna vec. Okrem toho je tu problem s "logikou pouzitia". Vynimka ma indikovat vynimocnu situaciu, nie sprostredkovat vysledok. Vratenie vysledku totiz nie je vynimocnou situaciou (aspon by teda nemalo byt).

http://java-performance.info/throwing-a ... very-slow/
http://stackoverflow.com/questions/2990 ... exceptions

Dakujem, po prezreti druheho linku som dostal motivaciu casovo otestovat verziu cez vynimky a verziu bez nich
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Ned Mar 09, 2014 12:52 pm

Re: 4. sada domácich zadaní

PekarcikPatrik píše:Dakujem, po prezreti druheho linku som dostal motivaciu casovo otestovat verziu cez vynimky a verziu bez nich

Kedze som mal moznost v Moodle vidiet tvoj kod, uz teraz viem povedat, ze realne casove rozdiely neuvidis ziadne. Totiz vynimku hadzes celkovo len raz, t.j. len raz robis drahsiu cinnost. Z hladiska casu je drahe hadzanie vynimiek (toto ani nikto neoptimalizuje, kedze sa to ma diat vynimocne). Pri tvojom rieseni je skor problem s "principom" pouzitia vynimiek a naslednou porozumitelnostou kodu nez s efektivnostou.
<<

PekarcikPatrik

Príspevky: 12

Registrovaný: Str Sep 25, 2013 4:59 pm

Poslať Ned Mar 09, 2014 8:20 pm

Re: 4. sada domácich zadaní

FeroG píše:Kedze som mal moznost v Moodle vidiet tvoj kod, uz teraz viem povedat, ze realne casove rozdiely neuvidis ziadne. Totiz vynimku hadzes celkovo len raz, t.j. len raz robis drahsiu cinnost. Z hladiska casu je drahe hadzanie vynimiek (toto ani nikto neoptimalizuje, kedze sa to ma diat vynimocne). Pri tvojom rieseni je skor problem s "principom" pouzitia vynimiek a naslednou porozumitelnostou kodu nez s efektivnostou.

Urobil som upravu kodu aby siel bez vynimiek (princip presne ten isty) a vysledok?
Dal som pocitacu urobit metodu 100 000 000 krát (testoval som vzdy na 2 vstupoch, 1 uplny, 1 neuplny)
verzia bez vynimky: 4654 ms
verzia s vynimkou: 69274 ms
  Kód:
Uzol koren = new Uzol(5, new Uzol(2, null, null), new Uzol(9, new Uzol(8, null, null), new Uzol(10, null, null)));
Uzol koren2 = new Uzol(5, new Uzol(2, new Uzol(1, null, null), new Uzol(3, null, null)), new Uzol(9, new Uzol(8, null, null), new Uzol(10, null, null)));
int i;
long l;
l = System.currentTimeMillis();
for (i = 1; i < 100000000; i++) {
   koren.jeUplny();
   koren2.jeUplny();
}
l = System.currentTimeMillis() - l;
System.out.println("testovanie: " + l + " ms");

Poucenie :) Výnimky su naozaj skarede :D
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Ned Mar 09, 2014 8:30 pm

Re: 4. sada domácich zadaní

Ono vzdy je zaujimava otazka ako interpretovat cisla. Napr. aky pomer by si dostal, ak by si mal vacsie stromy? Trebars, co keby si mal 10000-prvkovy uplny strom a celkom vpravo by si dovesil este jeden uzol, aby sa stal neuplny?
<<

PekarcikPatrik

Príspevky: 12

Registrovaný: Str Sep 25, 2013 4:59 pm

Poslať Ned Mar 09, 2014 8:45 pm

Re: 4. sada domácich zadaní

FeroG píše:Ono vzdy je zaujimava otazka ako interpretovat cisla. Napr. aky pomer by si dostal, ak by si mal vacsie stromy? Trebars, co keby si mal 10000-prvkovy uplny strom a celkom vpravo by si dovesil este jeden uzol, aby sa stal neuplny?

Jasne treba brat do uvahy strom na ktorom sa to testuje ale pri tejto interpretacii som vyuzil hlavne podobnost uplneho a neuplneho stromu, a jediny rozdiel je v tom ako sa po zisteni odpovede, "privezie" odpoved uzivatelovi
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Ned Mar 09, 2014 8:54 pm

Re: 4. sada domácich zadaní

Upresnim, kam som tymto smeroval. Urcil si, ze algoritmus s vynimkou bude zhruba 12 krat pomalsi ako algoritmus bez vynimky, alebo ze vyhodenie 100 000 000 vynimiek trva zhruba 65 sekund?
<<

rodakj

Príspevky: 16

Registrovaný: Sob Okt 12, 2013 11:34 pm

Poslať Pon Mar 10, 2014 4:28 pm

Re: 4. sada domácich zadaní

Je povolené mať pomocné metódy (resp. len jednu) , napríklad v triede Osoba?
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Pon Mar 10, 2014 7:06 pm

Re: 4. sada domácich zadaní

rodakj píše:Je povolené mať pomocné metódy (resp. len jednu) , napríklad v triede Osoba?

Pomocne metody je mozne vyuzit podla vlastneho uvazenia. Ci uz pri rieseni prvej ulohy alebo dalsich. I ked musim sa priznat, ze pri tej prvej ulohe sa mi zda najmenej potrebna (a pri tych dalsich takmer nevyhnutnost).
<<

matejp

Príspevky: 7

Registrovaný: Pia Sep 13, 2013 11:50 pm

Poslať Pia Mar 14, 2014 2:55 am

Re: 4. sada domácich zadaní

Mal by som dodatočnú otázku k metóde "vytvorBVS" a tiež sa týka výnimiek. Ak je množina hodnôt prázdna je lepšie vyhodiť výnimku alebo jednoducho (ne)vykonať nič ?
<<

FeroG

Príspevky: 1290

Registrovaný: Uto Máj 29, 2007 11:25 am

Poslať Pia Mar 14, 2014 10:21 am

Re: 4. sada domácich zadaní

matejp píše: Ak je množina hodnôt prázdna je lepšie vyhodiť výnimku alebo jednoducho (ne)vykonať nič ?

Ved ked je mnozina prazdna, treba vytvorit BVS, ktory uchovava prazdnu mnozinu. Korenom takehoto stromu je null.
<<

pripomienka

Príspevky: 206

Registrovaný: Pon Jan 08, 2007 10:28 am

Poslať Pia Mar 14, 2014 8:38 pm

Re: 4. sada domácich zadaní

Nemyslíte si, že toto zadanie je ohodnotené málo bodmi? Vzhľadom napr. na bodové ohodnotenie metódy vlozPredMaximum z minulého zadania, kde boli až 4 body. Myslím že toto zadanie by si zaslúžilo viac bodov, keď teda zaberá aj viac času, resp. "námahy" :D
Ďalší

Späť na PAZ1b

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software.
Slovenský preklad.