webForumDet fria alternativet

Matematik: Beräkna invers i Z

Matematik

2 svar · 664 visningar · startad av Gein

Medlem sedan sep. 20005 700 inlägg
Frågan#1

Kan någon vara vänlig att förklara hur jag beräknar t.ex inversen av 237 i Z_503. Jag vet att man ska ta hjälp av det faktum att 503 är ett primtal men inte riktigt hur. Förmodligen med hjälp av Fermats teorem, dvs att att om p inte delar y så kongruerar y^(p-1) med 1 modulo p.

Vidare så vet jag även att inversen x^-1 av ett tal x i Z_n ska vara sådan att x*x^-1 kongruerar med 1 modulo n.

Medlem sedan apr. 20002 487 inlägg
#2

Enklast är att använda Euklides utökade algoritm.

Du vill beräkna inversen av x i Z_p (alltid möjligt om x inte är 0 i Z_p). Hitta tal a, b (med algoritmen) sådana att

ax + bp = 1.

Då blir a modulo p en invers till x i Z_p.

Din idé att använda Fermats sats funkar (den säger ju oss att 237^502 är inversen till 237 mod 503), men det är jobbigt att beräkna 237^502 modulo 503, i alla fall för hand. Men det är inte omöjligt, man beräknar förslagsvis först 237^2, 237^4, etc (alltså, man kvadrerar bara) och sen pusslar man ihop vad 237^502 = 237^256 * 237^128 * 237^64 * 237^32 * 237^16 * 237^4 * 237^2 blir.

Medlem sedan sep. 20005 700 inlägg
#3

Tackar! Jag fick sitta och fundera ett bra tag innan jag hängde med i Euklides utökade algoritm men nuså! :)

258 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)