1. sada domácich úloh

Moderátor: FeroG

<<

FeroG

Príspevky: 1290

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

Poslať Ned Feb 28, 2010 7:33 pm

1. sada domácich úloh

1. sada spoločných domácich úloh bola zverejnená.
<<

FeroG

Príspevky: 1290

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

Poslať Sob Mar 06, 2010 11:24 pm

Kedze uz zacali chodit nejake riesenia (a mne zatial ziadne 100% dobre nedoslo), mala informacia, aby ste zbytocne nestracali body. V 2. ulohe je velmi dolezite, aby zaslane riesenie fungovalo aj pre velke polia (napr. 100000 prvkove) - t.j. ani pre velke polia by to nemalo skoncit so StackOverflowException. V opacnom pripade riesenie moze ziskat najviac 1.5 boda. Odporucam si preto spomenut na cvicenia, kde tento problem bol diskutovany.
<<

zt

Príspevky: 199

Registrovaný: Uto Feb 26, 2008 8:26 pm

Poslať Ned Mar 07, 2010 8:04 pm

neviem do akej miery sa moze diskutovat o este neuzavretych domacich zadaniach ale dufam, ze tym, co napisem, nic zle nespravim, mne napadla taka idea ze tu metodu nachadzaSa pouzijem zas v tej istej metode ako pri fraktaloch napr., ale v zadani sa pise ze okrem tej metody mame pouzit este pomocnu rekurzivnu metodu, tak neviem ci som spravne pochopila zadanie
<<

FeroG

Príspevky: 1290

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

Poslať Ned Mar 07, 2010 8:49 pm

V pripade PAZ1b je tazke najst hranicu, kedy je diskusia OK a kedy uz nie (v pripade PAZ1b je najdolezitejsia myslienka). Ak by sa ale diskusia na fore dostala mimo povoleny rozsah, ako moderator prispevok vymazem.

Metodu nachadzaSa ide riesit aj bez dalsej pomocnej rekurzivnej metody. Jedine mozne riesenie, kedy to ide takto spravit, so sebou nesie kopirovanie pola alebo jeho casti, co je extremne draha operacia a treba sa jej vyhnut. Pripominam, ze na prednaske, ani na cviceniach nikdy ku kopirovaniu poli nedochadzalo pri tomto type uloh.
<<

Aries

Príspevky: 379

Registrovaný: Pia Jan 30, 2009 1:26 pm

Bydlisko: 127.0.0.1

Poslať Ned Mar 07, 2010 9:34 pm

Uh... Ako to ze sa mi podarilo naprogramovat metodu tak, ze nepotrebovala nic pomocne? Vsetko bolo vo vnutri, (ne)pritomnost prvku v poli to detekovalo spravne, zvladalo to milionprvkove pole (aj viac, problem nastal az v pripade, ze som prekrocil maximalnu moznu velkost pola), nic som nekopiroval ani nepresuval, nepouzil som cykly ani ziadne ine metody z Javy... Bud som nieco nepochopil v zadani, ale citam ho uz tretikrat a fakt tam nie je co nechapat :)
Ked bude po 9.3, hodim sem aj zdrojak, nech sa to objasni.

//Ok, vyriesene, nedodrzal som zadane vstupne parametre; nejak som si neuvodomil, ze v zadani vyzera hlavicka metody inak :)
Vasnivy pestovatel binarnych stromov a opravar Turingovych strojov na polovicny uvazok.
"Problem citatov najdenych na internete je taky, ze si nikdy nemozete byt isti ich autenticitou" Abraham Lincoln
<<

zt

Príspevky: 199

Registrovaný: Uto Feb 26, 2008 8:26 pm

Poslať Uto Mar 09, 2010 10:24 pm

mozem poslat ulohu dorana do osmej napriklad alebo musim dnes dopolnoci?
<<

FeroG

Príspevky: 1290

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

Poslať Uto Mar 09, 2010 10:27 pm

Podla podmienok zadania je deadline dnes o 23:59, casovy manazment si trebalo zvolit tak, aby sa to dovtedy stihlo. Nemozem hovorit za vsetkych cviciacich, ale predpokladam, ze "preziju", ak im dojde riesenie aj zajtra rano.
<<

FeroG

Príspevky: 1290

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

Poslať Pia Mar 12, 2010 11:50 pm

Uloha na namalovanie fraktalu bola zjavne jednoducha. V B skupine uloha o O-notaciach nerobila problem (akurat som nadobudol dojem, ze nic okrem matematickej indukcie sa na matematickych predmetoch neuci). Neviem, ako to dopadlo v inych skupinach (v A-cku riesenia odovzdavalo velmi malo ludi).

Najzaujimavejsia bola druha uloha. Podelite sa o riesenie druhej ulohy a zdovodnenie idey riesenia?
<<

PainMaster

Príspevky: 689

Registrovaný: Uto Okt 06, 2009 12:50 pm

Bydlisko: 3.Kanal,4.Chodba

Poslať Uto Mar 16, 2010 12:40 pm

//2.priklad, 1. zadanie du...
  Kód:
public class Nachadzasa {

///pomocna metoda "je"...
  Kód:
   public  static boolean je(int[]  pole, int hodnota,int zaciatok,int koniec) {

//ak je kontrolovane "podpole" jednoprvkove tak zistime, ci tato jedna hodnota nieje cirou nahodou nase hladane cislo...(ano/nie)..co je neaky ten zaklad rekurzie..
  Kód:
      if (zaciatok == koniec)
         if(pole[zaciatok]==hodnota)
            return true;
         else return false;

//ak teda to nieje jednoprvkove podpole, rozdelim na polovicu(hlavna myslienka zrychlenia) a zistim ci sa nachadza v prvej polovici hodnota alebo v druhej-ak ano vrati true..
  Kód:
      if (zaciatok < koniec){
         int stred = (zaciatok + koniec) / 2;
         if((je(pole,hodnota,zaciatok,stred))||(je(pole,hodnota,stred+1,koniec)))
            return true;
         else return false;
      }
      else return false;
   }
   public boolean nachadzaSa(int[]  pole, int hodnota){

//zavolame rekurzivnu metodu "je" kde je parametrom
zaciatok a koniec v poli kde chceme prvok hladat...

  Kód:
      return je(pole,hodnota,0,pole.length-1);
   }
}

//Pripadne nejasnosti alebo napady ako zlepsit a zefektivnit riesenie su u mna vitane...

P'M.
Naposledy upravil PainMaster dňa Uto Mar 16, 2010 9:31 pm, celkovo upravené 2
We weren't born to follow
You gotta stand up for what you believe!

Ps: Za gramatiku ma neopravovat! Dakujem!
<<

Aries

Príspevky: 379

Registrovaný: Pia Jan 30, 2009 1:26 pm

Bydlisko: 127.0.0.1

Poslať Uto Mar 16, 2010 6:39 pm

Aaaach, toto sa neda vylustit, nemohol by si to postnut do tagu [code]?
Vasnivy pestovatel binarnych stromov a opravar Turingovych strojov na polovicny uvazok.
"Problem citatov najdenych na internete je taky, ze si nikdy nemozete byt isti ich autenticitou" Abraham Lincoln
<<

FeroG

Príspevky: 1290

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

Poslať Uto Mar 16, 2010 7:38 pm

Jedno z najzaujimavejsich (originalnych) rieseni, ktore som dostal, bolo toto:
  Kód:
public class Rekurzia {

   private static boolean pomocna(int[] pole, int odIdx, int hodnota) {
      if (odIdx == 0)
         return (pole[0] == hodnota) || pomocna(pole, 1, hodnota);
      if (pole.length <= odIdx)
         return false;
      if (pole[odIdx] == hodnota)
         return true;
      return pomocna(pole, 2 * odIdx + 1, hodnota)
            || pomocna(pole, 2 * odIdx, hodnota);
   }

   public static boolean nachadzaSa(int[] pole, int hodnota) {
      if (pole.length == 0)
         return false;
      return pomocna(pole, 0, hodnota);
   }
}


Funguje? Ak funguje prečo funguje? Aká je maximálna hĺbka rekurzívneho vnorenia? Sú pokryté všetky indexy?

Späť na PAZ1b

Kto je on-line

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

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