中国剩余定理

若m1,m2,m3,m4.....mr是两两互质的正整数,则同与方程

x = a1 ( mod m1)

x = a2 ( mod m2)

x = a3 ( mod m3)

..............................

x = ar ( mod mr)

有模M = m1*m2*m3*.....mr的位移解,即为中国剩余定理

在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为“中国剩余定理”。具体解法分三步:

1. 找出三个数:从3和5的公倍数中找出被7除余1的最小数15,从3和7的公倍数中找出被5除余1 的最小数21,最后从5和7的公倍数中找出除3余1的最小数70。
2. 用15乘以2(2为最终结果除以7的余数),用21乘以3(3为最终结果除以5的余数),同理,用70乘以2(2为最终结果除以3的余数),然后把三个乘积相加(15*2+21*3+70*2)得到和233。
3. 用233除以3,5,7三个数的最小公倍数105,得到余数23,即2335=23。这个余数23就是符合条件的最小数。

假设 n1 = 2 (mod 3) ,n2 = 3 (mod 5) n3 = 2 (mod 7)

n1 = 3*k1 + 2
n2 = 5*k2 + 3
n3 = 7*k3 + 2

先从n1开始,n1 = 2 (mod 3) 能不能 n1+n2 = 2 (mod 3),进而使得n1+n2+n3的和仍然满足n1+n2 + 能 = 2 (mod 3),如果都成立,那么他就是解
这就牵涉到一个最基本数学定理,如果有a%b=c,则有(a+kb)%b=c(k为非零整数),换句话说,如果一个除法运算的余数为c,那么被除数与k倍的除数相加(或相减)的和(差)再与除数相除,余数不变。这个是很好证明的。
这就说明 n1 = 2 (mod 3) n2,n3是3的倍数
同理 n2,n3
1. n1除以3余2,且是5和7的公倍数。
2. n2除以5余3,且是3和7的公倍数。
3. n3除以7余2,且是3和5的公倍数。

因为n1是7和5的公倍数 式子可以写成 35*a1 = 2 (mod 3) 用扩展欧几里德解出 a1 进而算出n1 = 3*a1 + 2
因为n2是3和7的公倍数 式子可以写成 21*a2 = 3 (mod 5) 用扩展欧几里德解出 a2 进而算出n2 = 5*a2 + 3
因为n3是3和5的公倍数 式子可以写成 15*a = 2 (mod 7) 用扩展欧几里德解出 a3 进而算出n3 = 7*a1 + 2
然后 n1+ n2+ n3就是他的解,但是这只是一个解,不是最终的最小解怎么办呢
因为n1 = 3*a1 + 2 如果先让他最小 ,n1要减去3的倍数才能保持式子结果不变a%b=c,则有(a-kb)%b=c,但是n1又是3和5的公倍数
所以n1 每次要减去3,5,7的公倍数才行同理n2,n3都是
所以最终解就是  ( n1+ n2+ n3 ) mod 3,5,7的公倍数

中国剩余定理的一种大整数表示
若运算的数据范围不超过99*98*97*95 = 89403930 由于中国剩余定理小于89403930的数均可有他的模99,98,97,95的最小正剩余唯一表示
例如 123684 = mod (99,98,97,95) = (33,8,9,89) 可以对这些四元组进行操作来实现运算目的
定理:
若a,b是正整数,那么有(2^a-1,2^b-1) = 2^(a,b)-1
正整数2*a-1,2*b-1是互素的,当且仅当a,b是互素的


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值