Loading web-font TeX/Main/Regular
Ask Your Question
1

Mocnění v modulární aritmetice

asked Jan 11 '15

updated Jan 13 '15

Miro Hrončok gravatar image

Jak prosím spočítat následující příklad z rozstřelu? 135^{135} \pmod{17}

Při použití malé Fermatovy věty to jsem schopen zredukovat to na: 135^{7} \pmod{17}, ale dál?

Obecně tedy otázka zní: Jak postupovat, pokud to po použití malé Fermatovy věty to nevyjde nějak "hezky"?

add a comment

3 Answers

Sort by » oldest newest most voted
3

answered Jan 12 '15

Jasmes gravatar image

updated Jan 12 '15

Muj obecny postup pro reseni a^x~mod~n

  1. a = a' ~(mod~n), pokud mi vyslo 1 nebo -1 mam hotovo.
  2. pokud gcd(a',n) == 1, upravim vyraz za pomoci a'^{\varphi(n)} = 1~(mod~n)
  3. Dostanu a'^{x'}~(mod~n)
  4. Ted mam 2 moznosti: Budto pouziji a) square-and-multiply nebo pokud n neni prvocislo tak b) CRT

Jak pouzit CRT?

Napisu si n=p_1^{\alpha_1}\cdots p_k^{\alpha_k}. Dale si spocitam

a'^{x'} = b_1 ~ (mod ~ p_1^{\alpha_1})

\vdots

a'^{x'} = b_k ~ (mod ~ p_k^{\alpha_k})

A pak zpetne dopocitam pomoci CRT, tak jak ji zname.

Proc pouzivat CRT, kdyz je to spousta prace navic?

  • Idealne dostanu gcd(a', p_i) = 1, takze budu moci pouzit Eulerovu vetu
  • Pro nektera p_i bude platit, ze p_i | a'
  • U square-and-multiply pracuji s mensim modulem

Dalsi moznost jak si ulehcit praci:

a^x = (a-n)^x ~(mod~n), neboli nez mocnit ohromna cisla je jednodussi si pekne umocnovat (-2)^x.

link
add a comment
0

answered Jan 13 '15

Matúš Vološin gravatar image

updated Jan 13 '15

V tomto prípade je to úplne jednoduché pretože 135 mod 17 = -1 mod 17 takže máme -1^135 mod 17 = -1 mod 17 = 16

link

Comments

Závorku!! -1^135 se sice čirou náhodou rovná (-1)^135, ale je lepší zvyknout si spíš na ten druhý zápis.

Josef Kokeš (Jan 13 '15)

jo jasne zavorka :) keby to bolo na papiery určite ju napíšem.

Matúš Vološin (Jan 13 '15)
add a comment
0

answered Jan 11 '15

Josef Kokeš gravatar image

updated Jan 11 '15

Začněte výpočtem, kolik je 135 mod 17, a jak by se ten výsledek ještě dal vyjádřit.

Kdyby vůbec nešlo použít nějaké zjednodušení (ale to není váš případ), tak x^y (mod z) se dá dost jednoduše spočítat pomocí algoritmu square-and-multiply. Zvlášť když je exponent dost malý nebo má hezký tvar.

link
add a comment

Your answer

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

Add answer

[hide preview]

Question tools

Follow
1 follower

Stats

Asked: Jan 11 '15

Seen: 267 times

Last updated: Jan 13 '15