同餘詳解入門

2021-08-08 18:57:54 字數 1741 閱讀 8647

同餘關係:

同餘:如果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...