Zadání:
práce s maticemi (transpozice, součet, součin), obecně inty, libovolný formát zadání ve dvou souborech
háček:
neomezená velikost - v paměti je možno mít jen jeden řádek (sloupec)
Zápočtový test 17.2.
Nemohl by někdo nastínit svoje řešení? Já přišel jen na jedno neefektivní..
udelas si funkce getSloupec, getRadek, ktere ti ze souboru vyzobou co potrebujes - ty volas v tom cyklu ve kterem provadis prislusnou operaci .. proste delas ze to mas v pameti, ale misto abys indexoval matici, tak das jeden index do te get funkce a druhy index do toho, co ti vrati (lepe naplni).
kdyz to chces mit efektivnejsi, tak nebudes v tech get funkcich znovu otvirat a zavirat ten soubor, ale preseekujes na zacatek (coz uz je ale spis c-style)
hippies: a jaky predpoklad vstup? Ja jsem premyslel o klasickem:
1 2 3 4 5 6 7 8 9
a tam bude funkce getSloupec dost neefektivni, protoze jedno cteni radku ti da jen jednu pouzitelnou hodnotu; getRadek ti da naopak vsechny pouzitelne hodnoty najednou.
II varianta: ukladat matici jako posloupnost cisel oddelenych mezerami, popr. cisla, ktera budou zarovnana na dany pocet mist (pro kazde cislo pet bytu) - to by v zasade mohla byt docela dobra reprezentace
no pokud to bude v textove podobe, tak si moc nepomuzes, protoze kdyz tam budou ruzneciferny cisla, tak je proste musis precist.
Pokud by to bylo binarne, tak uz se tam da s tim seekovanim kouzlit (a nemusel bys to cislo interpretovat, takze by to bylo lepsi urcite).
Jak to bylo zadany nevim, ja tam nebyl;)
Kazdopadne to je zkouska z C++ a ne z algoritmizace, takze predpokladam, ze uvedeny reseni bylo dostacujici.
Ten binarni zapis jsem si ozkousel a slo by to s tim docela hezky.. ale u zkousky bych to v ramci setreni casu neudelal
Me zajimaly oba aspekty ulozky, jak algoritmicka tak i to, jak to udelat v C++ ;-)
Nedal jsem to o 15 minut :E
Nekde jsem se ztratil v nasobeni. Moje reseni je http://artax.karlin.mff.cuni.cz/~cecht2 ... ce.tar.bz2.
http://martinvseticka.eu/index.php?sekc ... e&page=172 - zkousel jsem si to napsat, cte to textovou reprezentaci matice takze je to diky tomu dost neefektivni