数学建模社区-数学中国

标题: 一个乘法逆元的计算方法 [打印本页]

作者: songls    时间: 2023-12-10 20:02
标题: 一个乘法逆元的计算方法
以下给出一个求乘法逆元的方法,主要是使用除数的积来求逆,供大家参考,如有不足,欢迎大家批评指正。
( }# w+ R' K' ^! S# q设 (a,n)=1  (ri,n)=1  (qi,n)=1  1≤i≤m/ v- `" a: p, H( c- j
  a*r1≡q1 (mod n)9 R  t5 @2 b. q. f
  q1*r2≡q2 (mod n)
9 ?; x* {$ a( }* Y  q2*r3≡q3 (mod n)
: g7 I$ _. A! r3 \+ z% ]   .& |) k  \$ o  {- ]
   .
% J3 S% D7 i8 N. o: O5 A0 N3 q  .9 |8 N2 _8 h# O, N+ Q$ }, `  F# p! r
  qm-1*rm≡qm (mod n)
: Y2 J+ X/ T7 @ 上述等式相乘,得:
" K1 _. j7 D' e- _0 K" N6 U  a*(r1*r2*...*rm-1)*(q1*q2*...*qm)≡r1*r2*...*rm-1*rm (mod n) =>: h& `) x5 E' i: Q6 S8 Q
  a*(q1*q2*...*qm)≡rm (mod n)
3 z9 k3 }5 d/ U8 g- y4 ?  如果对qi(1≤i≤m)进行如下的限定:6 P8 z4 @, u( I; ~) k# [( R
   a>|q1|>|q2|>...>|qi|>...>|qm-1|>|qm|
- r: H$ v/ v" M( Q* v& l0 j( S   则 qm=±1( w2 x# V2 }0 Z  h, t
  即 a与q1*q2*...*qm互逆
% ~5 C; n7 d+ H3 R  例 求28在299的逆; b3 z) @/ u, W# q+ F7 V; p& }7 ]3 O3 }3 z
     28*11≡9 (mod 299)
, q5 K2 R( [* U+ n! o5 y0 N     9*33≡-2  (mod 299)7 g  c% J% P7 j
     -2*-150≡1 (mod 299)3 _3 O/ f. F- _- t! ]. b
  逆为:    11*33*-150≡-32 (mod 299)
0 ^8 Y. a  k4 s     28*-22≡-1 (mod 299)" u! {3 v! w/ z( J. @0 `1 K1 _
  但该方法有个最大的问题,当(qi,n)>1时,该方法将无法继续往下计算逆。6 A( i  P5 N6 _5 e) a
下面给出其中一个算法:, U5 p# B6 d7 K  x0 B: o
  1    输入a,n  
1 M% l6 E8 O/ g9 X; Q+ v  2   resulte = 1   ; 保存逆的结果
! o2 x& M8 C$ G0 U3 D  3   r=n/a+1      ; 保证 r*a>n: i0 U& W8 q1 W
  4  q=r*a-n       ; 得到余数,该余数小于a
+ {- X/ V! v) N# G9 Y4 I  5  resulte=(resulte*r)%n   8 l7 r; z+ l4 a( [
  6  if q=1  then  print(逆为: resulte) return  resulte
- M3 K3 e% a4 W, F+ `  7  if q=0 or q=a then  print(存在因子: a)  return a ;
; }! S7 O+ u6 {, F% [5 K7 G  8  a=q6 g- E% K# v" Y2 {' c. z2 ^+ [5 ]
  9  goto 3
1 H+ [6 U/ X) k: \0 v
1 x& }# v& P2 }' ?8 @

一个求乘法逆元的方法.pdf

39.85 KB, 下载次数: 0, 下载积分: 体力 -2 点






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5