Zadanie: Zistite ci je zadana stvorcova matica (najprv sa nacita jej rozmer, az potom sa nacitavaju prvky matice zo standardneho vstupu) nad podmnozinou celych cisel (tj. pouzivajte int) nasobkom unitarnej matice. Poznamky: Matica M nad celymi cislami je nasobkom unitarnej matice prave vtedy, ked M*M^T = k*I pre nejake prirodzene k. M^T je transpozicia matice M. To znamena, ze prvok na priesecniku i. riadku a j. stlpca v matici M bude na priesecniku j. riadku a i. stlpca v matici M^T. Inak povedane: prvky sa otocie okolo hlavnej diagonaly matice. Matica I je definovana nasledovne: Prvok na priesecniku i-teho riadku a j-teho stlpca je rovny 1 jedine ak i == j, inak je prvok rovny 0. Alternativne: prvky na hlavnej diagonale su 1, vsetky ostatne su 0. Sucin dvoch matic K = M*N je definovany nasledovne: Na i-tom riadku a j-tom stlpci matice K je prvok, ktory je vysledkom skalarneho sucinu vektorov reprezentovanych i-tym riadkom matice M a j-tym stlpcom matice N. Skalarny sucin a * b vektorov a = (a1, a2, ..., an), b = (b1, b2, ..., bn) je definovany ako a *b = a1*b1 + a2*b2 + ... + an*bn. Pre nasobenie matic staci pouzit naivny algoritmus zlozitosti n^3. Priklad transpozicie matice M (operacia M^T): | 1 2 3 | M = | 4 5 6 | | 7 8 9 | | 1 4 7 | M^T = | 2 5 8 | | 3 6 9 | Priklad sucinu matic: | 1 2 | | 5 6 | | (1*5 + 2*7) (1*6 + 2*8) | | 3 4 | * | 7 8 | = | (3*5 + 4*7) (3*6 + 4*8) | Priklad matice I k*I pre stvorcove matice 3 x 3: | 1 0 0 | | k 0 0 | I = | 0 1 0 |, k*I = | 0 k 0 | | 0 0 1 | | 0 0 k | Prikladom nasobku unitarnej matice su napr. matica I a matica M zadana nasledovne: | 0 2 | | 4 0 | M = | 2 0 |, M*M^T = | 0 4 | = 4*I