中国剩余定理的证明
2015-10-30 11:27
113 查看
例如这样的式子
其中m1……mn互质,我们求里面的x,就会用到中国剩余定理。
为了方便后面表示,我们把s看成x,那么:
我们先选择其中的第一个式子来看,s % m1 = a1
那么我们可以把这个式子转换为s + m1*y = a1 ①
我们令M = m1*m2*……*mn,M1 = M / m1
由于m1与m2……mn互质,那么M1与m1是互质的
那么我们可以得到如下方程
M1 * x + m1 * y = 1 ②
那么M1 * x % m1 = 1,那么x为M1的逆元
我们把②式扩大a1倍
得到M1 * x * a1 + m1 * a1 * y = a1
由于a1*y只是模m1的次数,那么我们可以看成一个整体y,那么得到下式
M1 * x * a1 + m1 * y = a1 ③
①式与③式对比,得到s = M1*x*a1
由于有n个式子,那么
S=∑aiMixiS=∑aiMixis=∑Mi*xi*ai(其中x为Mi逆元,求逆元我们可以用之前学的扩展欧几里得)
将结果mod M,得到最小解
其中m1……mn互质,我们求里面的x,就会用到中国剩余定理。
为了方便后面表示,我们把s看成x,那么:
我们先选择其中的第一个式子来看,s % m1 = a1
那么我们可以把这个式子转换为s + m1*y = a1 ①
我们令M = m1*m2*……*mn,M1 = M / m1
由于m1与m2……mn互质,那么M1与m1是互质的
那么我们可以得到如下方程
M1 * x + m1 * y = 1 ②
那么M1 * x % m1 = 1,那么x为M1的逆元
我们把②式扩大a1倍
得到M1 * x * a1 + m1 * a1 * y = a1
由于a1*y只是模m1的次数,那么我们可以看成一个整体y,那么得到下式
M1 * x * a1 + m1 * y = a1 ③
①式与③式对比,得到s = M1*x*a1
由于有n个式子,那么
S=∑aiMixiS=∑aiMixis=∑Mi*xi*ai(其中x为Mi逆元,求逆元我们可以用之前学的扩展欧几里得)
将结果mod M,得到最小解
相关文章推荐
- MFC菜单
- How to add multiple filters to UIImage GPUImage?
- Linux命令行上执行操作,不退回命令行的解决方法
- seajs中引用jquery插件
- c++利用libcurl获取http网页的 response headers 等信息
- iOS AsyncSocket 与 Java Netty 的简单socket使用
- 伟大的太空星球移民计划
- 关于区分真机和模拟器的预编译宏
- VMware 11 + Mac os x 10.10 + Appium环境搭建
- android四大组件之一Service详解(带实例及运行结果)
- 数据结构—二叉树的创建 遍历 输出
- java基础学习笔记(4)
- 显示隐藏菜单
- Unity 3D中的内存管理
- 触摸精灵 关于三剑豪手游的练级(练到10级) 制作 请大家帮忙一下!!谢谢大家了
- 利用二进制猜测生日是哪一天(小算法解析)
- oc - runtime运行机制
- Intersecting Lines(数学)
- 编译原理之lex,yacc学习
- Android SDK/ADT 历史版本下载地址