dovete studiare la Linear congruence theorem e la extended GCD algorithm, che appartengono alla Number Theory, al fine di comprendere la matematica dietro modulo arithmetic.
L'inverso di matrice K per esempio è (1/det (K)) * adjoint (K), in cui det (K) <> 0.
presumo che non si capisce come calcolare il 1/det(K) in aritmetica modulo e qui è dove le congruenze lineari e GCD vengono a giocare.
K ha det (K) = -121. Diciamo che il modulo m è 26. Vogliamo x * (- 121) = 1 (mod 26).
[a = b (mod m) significa che ab = N * m]
Possiamo facilmente trovare che per x = 3 quanto sopra congruenza è vero perché 26 divide (3 * (- 121) - 1) esattamente. Ovviamente, il modo corretto è utilizzare GCD al contrario per calcolare la x, ma non ho tempo per spiegare come farlo. Controllare l'algoritmo GCD esteso :)
Ora, inv (K) = 3 * ([3 -8], [-17 5]) (mod 26) = ([9 -24], [-51 15 ]) (mod 26) = ([9 2], [1 15]).
Aggiornamento: check out Basics of Computational Number Theory per vedere come calcolare inverse modulari con l'algoritmo di Euclide esteso. Si noti che -121 mod 26 = 9
, quindi per gcd(9, 26) = 1
otteniamo (-1, 3)
.
fonte
2009-06-06 19:22:51
Cheers! :) - –