码迷,mamicode.com
首页 > 其他好文 > 详细

模方程

时间:2014-11-01 00:56:12      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:sp   bs   ui   nbsp   hdu   c   元素   没有   扩展   

  对于 ax≡b( mod n ) 转化为 ax - ny = b , 当 d = gcd( a, n )  不是 d 的约数的时候不存在解,为何不存在解呢?

设 a = k1*d , n = k2*d .

那么式子可转化为 :  d * (k1*x - k2*y) = b , 若 b % d != 0 ,即( k1*x - k2*y )无整数解。

  否则,两边除以d , 得到 a‘x-n‘y = b‘  ,  即么 a‘x≡b‘(mod n‘)  ( 这里a‘和n‘ 已经是互素的 ),两边再乘上一个

a‘ 在 n‘ 下的逆 , 得到 x ≡ a‘^(-1) * b‘ ( mod n‘ ) ....   然后要转化为在 n 剩余系中的元素。

      令 a‘^(-1)*b‘ = p , 上述解相当于 x = p , p+n‘ , p+2*n‘ .......  对于模n来说,这无穷多个解里面有多少个等价类呢?

假定 p+i*n‘ 与 p+j*n‘ 同余,则 (p+i*n‘) - (p+j*n‘)  = (i-j) * n‘ 是 n 的倍数, 那么i-j必然是 d 的倍数 ( n‘ * d = n )。

即,在模n的剩余系当中 , ax≡b( mod n ) 的解有 d 个 ,为 p , p+n‘ ,p+2*n‘ ...... ,p+(d-1)*n‘ 。

[ p+d*n‘ 与 p 已经属于同一个等价类了]...

  看完这里...突然想到之前做了一条 hdu 3579...

  给出  n 个 ai , ri ... 都有 x≡ri ( mod ai )...求最小的x..

  这个是中国剩余定理的加强..它没有给出  ri 之间互素的性质..

  解法是两两解线性模方程..

  对于两个方程,易得   a1*x - a2*y = r2 - r1 ...

  设(r2-r1)= c , 通过扩展欧几里得解出 x 之后 , 先判 d=gcd( a1,a2 ) 是否是c的约数..

  各项除去d 得到   a1‘*x - a2‘ *y = c‘ ... 转换后得到  a1‘x = c‘ ( mod a2‘ )....

  根据上述的模方程我们可以知道 方程ax=b (mod n)的最小解 : x = ( x * ( b / d ) ) % n ...

  

模方程

标签:sp   bs   ui   nbsp   hdu   c   元素   没有   扩展   

原文地址:http://www.cnblogs.com/hlmark/p/4066256.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!