同餘關係:
同餘:如果a和b除以c的餘數相同,就說a和b關於模c同餘,記作a≡b(mod c)。
如果兩個數a和b的差能夠被m整除,那麼就說a和b對模數m同餘(關於m同餘)。
比如,28-13=15除以5正好除盡,我們就說28和13對於模數5同於,因為15是5的整
數倍。它的另外一層含義就是說:28和13除以5的餘數相同。a和b對m同餘,我們記
作a≡b(mod m)。比如,28與13對5同餘可以寫作28≡13(mod 5)。
同餘關係是一種等價關係。
1.自反性:乙個數永遠和自己本身同餘
2.對稱性:a和b同餘,b和a也就同餘
3.傳遞性:a和b同餘,b和c也同餘,可以推出a和c也是同餘的
同餘運算中還有一些稍微複雜的性質。比如,同於運算和整數加減法一樣滿足「等量+等
量,其和不變」。
性質1.
如果a≡b(mod m),x
≡y(mod m),則有a+x≡b+y(mod m)。
證明:對於a
≡b(mod m),總可以找到p,q,使得 a-mp=b-mq //等式1
同理對於x
≡y(mod m),總可以找到r,s,使得x-mr=y-mq//等式2
等式1+等式2,有(a+x)-m(p+r)=(b+y)-m(q+s) //可以看出餘數相等
則有 (a+x)≡(b+y)(mod m) //得證
同樣的方法可以證明另外一條性質
性質2:
如果a≡b(mod m),x≡y(mod m),則有ax≡by(mod m)。
證明:依舊先得到等式1與等式2,等式1*等式2,得到:
(a-mp)(x-mr)=(b-mq)(y-ms)
化簡,得 ax+m(mpr-ar-xp)=by+m(mqs-bs-yq) 即有
ax≡by(mod m) //得證
性質3:
如果ac
≡bc(mod m),且c和m互質,則有a≡b(mod m)(就是說同余式兩邊可
以同時除以乙個和模數互質的數)。
證明:對於ac≡bc(mod m),我們總可以找到p,q使得
ac-mp=bc-mq
移項有ac-bc=mp-mq
即有 c(a-b)=m(p-q)
這說明c(a-b)/m=(p-q) c(a-b)可以被m整除
又因為 c與m互質 所以(a-b)可以被m整除
得到a≡b(mod m)
性質4:若ac
≡bd,c
≡d(mod m),且(c,m)=1(c和m的最大公約數是1),得到a≡b(mod m)。
證明:因為(c,m)=1,且c≡d(mod m)所以(d.m)=1
因為c≡d(mod m)所以總可以找到p,q,使得c-mp=d-mq
兩邊同乘a,有ca-mpa=da-mqa
因為ac≡bd所以有 ba-mpa=da-mqa
所以有 bd≡da(mod m)
又因為(d.m)=1所以有b≡a(mod m)。
除此之外還有其他的同餘性質關係等式...
在acm做題目的過程中經常會遇到mod ******x... ,這是因為為了避免高精度的運
算。因為我們可以看得出在運算過程中算完再mod還是一遍算一邊mod,最後得到的結
果是一樣的,就是因為同餘 的關係。因為同餘關係只是關心餘數,不用去在乎除的時候
整數的部分。所以,在整個運算過程中每一步最大都不會超過m,從而避免了高精度的
運算。
入門訓練 Fibonacci數列 同餘定理
入門訓練 fibonacci數列 時間限制 1.0s 記憶體限制 256.0mb 問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,...
AC自動機演算法詳解(入門
首先簡要介紹一下ac自動機 aho corasick automation,該演算法在1975年產生於貝爾實驗室,是著名的多模匹配演算法之一。乙個常見的例子就是給出n個單詞,再給出一段包含m個字元的文章,讓你找出有多少個單詞在文章裡出現過。要搞懂ac自動機,先得有模式樹 字典樹 trie和kmp模式...
PHP句法規則詳解 入門學習
1.簡單句法規則 用花括號界定變數名,適用於php所有版本 複製 如下 a flower echo she received some as 無效 字母s會被當成有效的變數名組成元素,但是這裡的變數是 a echo she received some s 有效 echo she received s...