#includeusingnamespace
std;
intmain()
return0;
}
中國剩餘定理的應用(運用的要求是n%m=r,其中m必須兩兩互質)
下面我們來看乙個例子:
韓信點兵問題:已知n%3=2,n%5=3,n%7=2,求n.
設x=n%3,y=n%5,z=n%7且3,5,7互質。
使5×7×a(5,7為3之外的剩餘兩個數)被3除餘1,有35×2=70,即a=2; 使3×7×b(3,7為5之外的剩餘兩個數)被5除餘1,用21×1=21,即b=1; 使3×5×c(5,3為7之外的剩餘兩個數)被7除餘1,用15×1=15,即c=1。
那麼n =(70×x+21×y+15×z)%lcm(3,5,7) = 23 這是n的最小解
而韓信已知士兵人數在2300~2400之間,所以只需要n+i×lcm(3,5,7)就得到了2333,此時i=22
同理我們便可解這個問題,
已知(n+d)%23=p; (n+d)%28=e; (n+d)%33=i
使33×28×a被23除餘1,用33×28×8=5544;
使23×33×b被28除餘1,用23×33×19=14421;
使23×28×c被33除餘1,用23×28×2=1288。
因此有(5544×p+14421×e+1288×i)% lcm(23,28,33) =n+d
又23、28、33互質,即lcm(23,28,33)= 21252;
所以有n=(5544×p+14421×e+1288×i-d)%21252
本題所求的是最小整數解,避免n為負,因此最後結果為n= [n+21252]% 21252 那麼最終求解n的表示式就是:
n=(5544*p+14421*e+1288*i-d+21252)%21252;
問題得解;
POJ 1006 中國剩餘定理
初見poj1006用的暴力破解寫的 寫完以後發現很搓。上網一查原來古人早就對此類問題有了解答規則。一 中國剩餘定理 一元線性同餘方程組問題最早可見於中國南北朝時期 公元5世紀 的數學著作 孫子算經 捲下第二十六題,叫做 物不知數 問題,原文如下 有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二...
poj 1006(中國剩餘定理)
中國剩餘定理 孫子算經 中有 物不知數 問題 今有物不知其數,三三數之餘二 五五數之餘三 七七數之餘二,問物幾何?答為 23 這個就是傳說中的 中國剩餘定理 其實題目的意思就是,n 3 2,n 5 3,n 7 2 問n是多少?那麼他是怎麼解決的呢?看下面 題目中涉及 3,5,7三個互質的數 令 5 ...
poj 1006 中國剩餘定理
根據單因子構件湊成法 能對於變化的餘數都能快速求解 思想 求出23,28,33三個互素 前提 的分別餘數為一的情況,就介紹式一的情況,其他兩式同理可得。式一 x滿足被28和33整除,除以23餘1,這就意味著在28和33的公倍數下找被23除餘1的數,經過計算器嘗試,28 33 k 23 1 k 6 x...