首页 > 代码库 > Chinese remainder theorem 中国剩余定理
Chinese remainder theorem 中国剩余定理
中国剩余定理:
x ≡ a1 (% m1)
x ≡ a2 (% m2)
.
.
.
x ≡ an (% mn)
m1,m2...mn 互质。
我们求里面的x,就会用到中国剩余定理。
首先将 x 看成 s ,则
s ≡ a1 (% m1) 1式
s + m1 * y = a1
另 M = m1 * m2 * m3 * m4 * ... * mn
Mi = M / mi
因为 m1,m2...mn 互质
所以 (Mi, mi) = 1
所以 可以表示成 Mi * x + mi * y = 1 2式
所以 Mi * x = 1 (% mi)
也就是说 x 为 mi 下 Mi 的逆
将 2式 扩大 a1 倍得到 Mi * x * a1 + mi * y * a1 = 1; 3式
因为 y * a1 是 % mi 的次数 ,可以写成 y
所以 3式 <=> Mi * x * a1 + mi * y = 1;
观察 1式 与 3式 得
s = Mi * xi * a1 (xi 为 Mi 在%mi 意义下的逆元)
由于有n个式子,那么
S=∑ai * Mi *xi(其中x为Mi逆元,求逆元我们可以用之前学的扩展欧几里得)
将结果mod M,得到最小解
Chinese remainder theorem 中国剩余定理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。