對於 x%mod[1]=a[1]
x%mod[2]=a[2]
x%mod[3]=a[3]
...mod[i] 之間不一定互質,求解最小x。
對於 mod[i] 之間不一定互質的情況,需要將剩餘定理修改一點。
對於第乙個方程 x[0]%mod[0]=a[0] ,可知 x[0] 的最小解即為 a[0] 。對於第二個方程x[1]%mod[1]=a[1] ,假設 x[1]=x[0]+mod[0]*k ,這樣 x[1] 可以既滿足第乙個方程也滿足第二個方程,得到 (x[0]+mod[0]*k)%mod[1]=a[1]。此方程可由擴充套件歐幾里得的思想化為 x[0]+mod[0]*k+mod[1]*y=a[1]
mod[0]*k+mod[1]*y=a[1]-x[0]
可解得最小k,然後求得 mod[0]*k ,即可得到 x[1] 。
如此,相當於將第乙個方程和第二個方程合成了乙個新的方程 x[1]%lcm(mod[0],mod[1])=s(s的值並沒有用),可以繼續計算下去,算到最後乙個方程時,答案即為最後乙個 x[i] 。
**:
int china(int m,int a,int n)//m為除數,a為餘數,n為方程個數
{ int ans=a[0];
int lcm=m[0];
for(int i=1;i
中國剩餘定理 模數互質
from functools import reduce import sympy defcrt n,a sum 0 prod reduce lambda a,b a b,n reduce function,n 將資料集合n 可以是列表,也可以是元組等 的前兩個資料做function函式運算,然後將...
中國剩餘定理 模版(互質版)
1079 中國剩餘定理 基準時間限制 1 秒 空間限制 131072 kb 分值 0 乙個正整數k,給出k mod 一些質數的結果,求符合條件的最小的k。例如,k 2 1,k 3 2,k 5 3。符合條件的最小的k 23。input 第1行 1個數n表示後面輸入的質數及模的數量。2 n 10 第2 ...
中國剩餘定理 擴充套件中國剩餘定理
中國剩餘定理 對於求解一元不定方程組 的一種演算法叫做中國剩餘定理。又名孫子定理。其中m1,m2,m3.mk 為兩兩互質的整數,求x的最小非負整數解 令m mi 1 i n m是所有mi的最小公倍數 ti為同餘方程 ti m mi 1 mod mi 的最小非負整數解 則有乙個解 x ai m mi ...