Algoritmus pro inverzi nad Zp
Úloha číslo: 2588
Je správně následující návod?
Dotaz: "Zajímalo by mě, jak lze v Matlabu počítat v konečných tělesech.
Například, lze nějakým pěkným způsobem násobit nebo invertovat matice, jejichž koeficienty jsou z konečného tělesa, řekněme z tělesa zbytkových tříd modulo prvočíslo?"
Odpověď: "Kdysi jsem to potřeboval. Násobení není žádný problém. Vypočítej normální součin a výsledek vem modulo prvočíslo. To se snadno dokáže. Myslím, že jsem zkoušel podobný postup pro inverzi. Algoritmus (jestli se správně pamatuju) vypadal takto:
 1. Spočítej inverzi;
 2. Vynásob inverzi determinantem původní matice;
 3. Výsledek přepočítej modulo prvočíslo.
 
Přišel jsem na tento algoritmus intuicí a nikdy jsem ho nezkusil dokázat, ale fungoval skvěle."
- Řešení- V druhém kroku je vypočtena \(\det(\mathbf A)\mathbf A^{-1}\), tedy adjungovaná matice nad \(\mathbb R\). - Faktorizací podle \(p\) se ve třetím kroku získá adjungovaná matice nad \(\mathbb Z_p\). - V případě, že \(\det(\mathbf A)\ne 1\), v našem případě \(\det(\mathbf A)\not\equiv 1 \pmod p\), jsou inverzní a adjungovaná matice různé. - Abychom dostali inverzní matici nad \(\mathbb Z_p\) je třeba adjungovanou matici ještě vydělit determinantem. - Algoritmus mohl fungovat skvěle leda tak nad \(\mathbb Z_2\) 



