[C] Szyfr afiniczny

0

Witam,

Mam pewien problem. Napisałem funkcję, która koduje tekst za pomocą szyfru afinicznego i teraz piszę sobie dekoder. Znalazłem na wikipedii sposób w jaki dekodowany jest tekst (http://pl.wikipedia.org/wiki/Szyfr_afiniczny) ale nie wiem co oznacza linia : (7^-1) mod 26 = 15....tzn wiem, że to 7 to jest kluczowa wartość ale chodzi mi o czysto matematyczny wynik...dlaczego akurat to wyrażenie ma wartość 15 ?

Za wszelką pomoc z góry dziękuję.

0

hmm, ciekawe, sam chętnie przeczytam jakaś mądrą odpowiedź bo ja byłem pewien że (7^-1) mod 26 = 1/7
ponieważ:
7^-1 jest 1/7, a 1/7 mod 26 jako że ani jedna 26 nie mieści się w 1/7 jest 1/7

0

Wyrażenie (7-1) to nie jest po prostu odwrotność siódemki... Poczytaj na necie więcej o "modular multiplicative inverse". Ogólnie chodzi o to aby znaleźć taką liczbę, która po przemnożeniu przez argument "a" (w Twoim przypadku - przez 7) i wyciagnięciu z tego wyniku mod 26, dało liczbę 1. Czyli: (7*x)mod26 ma dać liczbę 1. I chodzi tu o najmniejszą możliwą liczbę. Dla x=15 to wyrażenie właśnie daje 1. Dlatego 7-1 wynosi 15.

0

Czyli chodzi o taką liczbę X która spełnia kongruencję:
X*7 przystaje do 1 modulo 26
Nie bardzo rozumiem tylko po co ktoś komplikował zapis.

1 użytkowników online, w tym zalogowanych: 0, gości: 1