Stránka 1 z 1

Špeciálna domáca úloha

PoslaťNapísal: Ned Mar 15, 2009 5:28 pm
od FeroG
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 ...

PoslaťNapísal: Uto Mar 24, 2009 12:49 pm
od FeroG
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.

PoslaťNapísal: Štv Apr 02, 2009 1:29 pm
od FeroG
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.

PoslaťNapísal: Štv Apr 02, 2009 10:57 pm
od FeroG
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).

PoslaťNapísal: Sob Apr 04, 2009 8:31 pm
od hybA
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.

PoslaťNapísal: Pia Apr 10, 2009 2:04 pm
od FeroG
Dakujem "hybA"-ovi za predstavenie svojho riesenia. Poprosim aj dalsich riesitelov o predstavenie svojich rieseni.