问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

孙子剩余定理代码C语言实现?

发布网友 发布时间:2022-05-01 18:28

我来回答

3个回答

热心网友 时间:2022-06-21 05:38

没听过这个理论,可能比较高端的吧

热心网友 时间:2022-06-21 05:39

《孙子算经》里面的"物不知数"说的是这样的一个题目:一堆东西不知道具体数目,3个一数剩2个,5个一数剩3个,7个一数剩2个,问一共有多少个。

书里面给了计算过程及答案:70*2 + 21*3 + 15*2 -105*2 = 23。

它的计算思路如下:

70是能被5或7整除的数字,但是除以3正好余1。

21是能被3或7整除的数字,但是除以5正好余1。

15是能被3或5整除的数字,但是除以7正好余1。

所以若有数N = 70 * N1 + 21 * N2 + 15 * N3(其中N,N1,N2,N3为正整数),则整数N是符合题目要求的结果(mod3为N1,mod5为N2, mod7为N3)。

我们把N1赋值2,N2赋值3,N3赋值2。

则: N = 70*2 + 21*3 + 15*2 = 233。

但是3,5,7的最小公倍数为105。

所以N + 105*M均为正解。

因此为了求得最小正整数解,我们需要用(N mod 105)也就是23了。

中国剩余定理(西方数学史中的叫法),就是上一题目的一般情况。

设m1,m2...mk是两两互素的正整数,即: *(mi, mj) = 1 (其中 i != j, i, j >= 1且 <=k).

则同余方程组:

x ≡ a1(mod m1)

x ≡ a2(mod m2)

... ...

x ≡ ak(mod mk)

存在唯一[m1,m2...mk]使方程成立.

解法同物不知数是一致的.我们可以稍微模仿一下.

唯一的难题就是如何把上面70, 15, 21的求法,对应到一般情况来.

假设: N1, N2, ... ,Nk.就是对应的权值, 满足如下条件:

N1 能够被 m2, m3..., mk整除,但是除以m1正好余1.

N2 能够被 m1, m3..., mk整除,但是除以m2正好余1.

... ...

Nk能够被m1, m2,...,mk-1整除,但是除以mk正好余1.

N1->Nk如果求出来了,那么假设:

x1 = N1*a1 + N2*a2 + ... + Nk*ak就是我们要求的x一个解, 同物不知数一样,我们把x1 mod (m1*m2*...*mk)的结果

就是x的最小整数解,若为负数,则再加上一个m1*m2*...*mk.因为加减整数倍个m1*m2*...*mk所得结果都是x的解.

所以问题只剩下一个,就是求N1, N2,...,Nk.

怎么求呢?我需要先化简一番:

设m = m1*m2*...*mk, L, J为任意整数.

因为Ni能被m1, m2,...,mi-1, mi+1,...,mk整除(其中i+1<k)

因此: Ni = m/mi *L

又因为Ni除以mi余1
因此: Ni = mi*J + 1
即: mi*J + 1 = m/mi *L ==> (-mi)*J + m/mi*L = 1
而m1-->mk这些数都是互质数,所以(-mi) 同 m/mi也是互质数.即:
*(mi, m/mi) = 1也就是说:
(m/mi)*L + (-mi)*J = *(m/mi, -mi)==>其中-mi和m/mi都是已知的,J和L未知
这就是经典扩展欧几里德定理的原型(由定理知J和L是唯一的, 因此,N1-->Nk有唯一解).
按照扩展欧几里德定理求解即可.
扩展欧几里德定理:
a和b都是不全为0的正整数,则:
a*x + b*y = *(a, b)
存在唯一的x, y使得上面等式成立。
(当然,容易得知,如果,a和b中有负数,那么也是成立的。)
本题中,m/mi相当于a, -mi相当于b, L相当于x, J相当于y。求出L, J就能求出Ni。
此时Ni求解完毕.
我们要求的x的最小整数解也就呼之欲出了.
————————————————
版权声明:本文为CSDN博主「hard_man」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hard_man/article/details/7732795

热心网友 时间:2022-06-21 05:39

榛子树定理代码则与实现。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
零基础怎么自学动漫插画,可报个绘画班或有目的地自学 小白如何学插画,一定要坚持多练 有限责任公司的清算流程及如何执行清算 有限责任公司清算程序是什么 有限公司自行清算流程 魅族m1在哪里区别连通版和移动版 请问魅蓝note的flyme系统,移动定制版和移动公开版是什么意思 魅蓝note flyme移动公开版和公开版有啥区别? 魅族公开版是什么意思? 梦见一个你喜欢的人变成了你的表哥是什么情况? 目前最深奥的数学领域是什么 t字头,z字头,c字头,g字头分别代表什么车 今有物不知其数,三三数之剩1,五五数之剩2,七七数之剩3,问物几何? 一道C语言OJ题目,求余式组,我用了拓展欧几里德算法和中国剩余定理,但是还是runtime error,求解 邮政信用卡账单日是每月12日怎么算还款日 苹果7登陆id是英文怎么办 cc足金LF什么意思 千足金c是什么意思 想问一部影片,是之前在QQ动态上有出现过,描述的画面是一个女学生躲 c3足金啥意思 求一张一个男人 在狂笑的 笑的很狂啊 越笑越狂的动态图 3d和田玉足金c是什么意思 ic足金是什么意思 老庙足金B和C是什么意思 川26个字母代表哪里?, 养老金信托对委托企业的意义 黄金c足金999.9是什么意思 c足金和千足金哪个含量高 黄金字母C开头是什么牌子 为什么一看见性感美女我小弟弟就爱硬? 多次和单次同余方程式一些问题 有一箱苹果,按个数平均分给6个或7个小朋友都正好分完,这箱苹果最少有多少个 一箱苹果按个数平均分给6个或8个小朋友,都正好分完,这箱苹果最少有多少个? 十二和二十的最小公倍数和最大公因数都是多少? 9和12的公倍数有哪些 57和9的最大公因数和最小公倍数 8、12和40的最小公倍数是多少? 数论包括哪些内容? 怎样修改财付通的支付密码? nba 2k18 按2继续是哪个键? nba 2k18 按2继续是哪个键 你拍一,我拍一,我们大家做游戏 nba2k18mc比赛中按2继续后直接终场?什么情况数据显示也是0分0助攻0篮板?求大神解答 腾讯财付通支付密码怎么改? 财付通 怎么改密码?支付密码 NBA2K18无法更新,卡在更新页面。 怎么改财付通支付密码?? ps有没有类似尼科滚动笔刷 财付通支付密码怎么改 NBA2K18更新出错怎么办 升级遇无法登陆BUG解决方法