Špeciálna domáca úloha

Moderátor: FeroG

<<

FeroG

Príspevky: 1290

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

Poslať Ned Mar 15, 2009 5:28 pm

Špeciálna domáca úloha

Na prvej pisomke bol v zadani program na generovanie permutacii Permutacie.java. Odstrante v tomto programe pole pouzite bez zasadneho zhorsenia casovej zlozitosti (t.j. ziadne extra cykly v metode generujPermutacie).

Toto je bonusova uloha za 4 body pre prvych 3 uspesnych riesitelov.

Poznamka: pole pouzite ma byt uplne odstranene. Teda celkova pamat pouzita programom by mala byt o tych pole.length booleanov mensia ...
<<

FeroG

Príspevky: 1290

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

Poslať Uto Mar 24, 2009 12:49 pm

Na cviceni 24.3.2009 bola definovana dalsia specialna domaca uloha (4 body pre prvych 3 riesitelov):

Napiste metodu, ktora pre dany graf (Graph) spocita a vrati pocet komponentov suvislosti:

public static int pocetKomponentov(Graph g)

Metoda parametrom zadany graf nemoze nijako modifikovat (s vynimkou pridavania Properties pre vrcholy). Pre suvisly graf je pocet komponentov suvislosti 1, pre prazdny graf 0.
<<

FeroG

Príspevky: 1290

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

Poslať Štv Apr 02, 2009 1:29 pm

Uloha o permutaciach bola uzavreta, kedze uz dosli 3 riesenia. Poprosim niektoreho z uspesnych riesitelov, aby sa na fore podelil o ideu a najpodstatnejsi fragment zdrojoveho kodu svojho riesenia.
<<

FeroG

Príspevky: 1290

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

Poslať Štv Apr 02, 2009 10:57 pm

Aj uloha o pocte suvislych komponentov bola uzavreta. Opat poprosim uspesnych riesitelov, aby sa podelili o myslienky a aj zdrojovy kod riesenia.

V ponuke je dalsia z beznych domacich uloh. V pripade zaujmu sa mozu vygenerovat dalsie (ci uz standardne alebo specialne).
<<

hybA

Príspevky: 6

Registrovaný: Sob Sep 20, 2008 8:31 pm

Poslať Sob Apr 04, 2009 8:31 pm

FeroG píše:Aj uloha o pocte suvislych komponentov bola uzavreta. Opat poprosim uspesnych riesitelov, aby sa podelili o myslienky a aj zdrojovy kod riesenia.

V ponuke je dalsia z beznych domacich uloh. V pripade zaujmu sa mozu vygenerovat dalsie (ci uz standardne alebo specialne).


Mysielka:
1. pridat kazdemu vrcholu nazov komponentu s rozdielnou hodnotou ( *.setValue(...) )
2. prechadzat vrcholy pomocou hran (target/source) a porovnavat hodnoty, ak sa lisia zmenit im hodnotu na rovnaku. Tym docielim ze kazdy vrchol v jednom komponente bude mat rovnaku hodnotu a zaroven rozdielny komponent bude mat rozdielne hodnoty
3. staci zistit kolko je rozdielny hodnot v grafe
  Kód:
static void pocetKompo(){

      for(Edge e: g.getEdges()){     // nastavim kazdemu komponentu rovnaku value "komponentu"

         int pom = e.getTarget().getIntValue("komponent");

         e.getTarget().setValue("komponent", e.getSource().getValue("komponent"));

         for(Edge ee: g.getEdges()){  // skontroluje vsetky vrcholy s povodnym value "komponentu" a ak sa nejake zhoduju prestavy ich na novu hodnou

            if(ee.getTarget().getIntValue("komponent") == pom)

               ee.getTarget().setValue("komponent",e.getSource().getValue("komponent") );

            if(ee.getSource().getIntValue("komponent") == pom)

               ee.getSource().setValue("komponent", e.getSource().getValue("komponent"));

         }

      }

      for(Edge e: g.getEdges()) //pridam komponenty do set kedze ta rovnake prvky nepridava 2x tak velkost set je pocet komponentov

         komponenty.add(e.getSource().getIntValue("komponent"));

      System.out.println("pocet komponentov: "+komponenty.size());

   }


Ohladom dalsich specialnych uloh, ja mam o ne urcite zaujem.
<<

FeroG

Príspevky: 1290

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

Poslať Pia Apr 10, 2009 2:04 pm

Dakujem "hybA"-ovi za predstavenie svojho riesenia. Poprosim aj dalsich riesitelov o predstavenie svojich rieseni.

Späť na PAZ1b

Kto je on-line

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

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