MOD 運算

mod運算,即求余運算跃须,是在整數(shù)運算中求一個整數(shù) x 除以另一個整數(shù)y的余數(shù)的運算冒萄,且不考慮運算的商池摧。在計算機(jī)程序設(shè)計中都有MOD運算,其格式為: mod(nExp1,nExp2)红伦,即是兩個數(shù)值表達(dá)式作除法運算后的余數(shù)英古。

模p運算

給定一個正整數(shù)p,任意一個整數(shù)n昙读,一定存在等式
n = kp + r其中k召调、r是整數(shù),且 0 ≤ r < p蛮浑,稱呼k為n除以p的商唠叛,r為n除以p的余數(shù)

p是除數(shù) k 相當(dāng)于商 n相當(dāng)于被除數(shù) r 相當(dāng)于余數(shù)
余數(shù)一定是比除數(shù)小的 ,即r<p

對于正整數(shù)p和整數(shù)a,b,定義如下運算:

  • 取模運算:a mod p 表示a除以p的余數(shù)沮稚。
  • 模p加法:(a + b) mod p 艺沼,其結(jié)果是a+b算術(shù)和除以p的余數(shù),也就是說蕴掏,(a+b) = kp +r障般,則 (a+b) mod p = r调鲸。
  • 模p減法:(a-b) mod p ,其結(jié)果是a-b算術(shù)差除以p的余數(shù)剩拢。
  • 模p乘法:(a × b) mod p线得,其結(jié)果是 a × b算術(shù)乘法除以p的余數(shù)。

運算規(guī)律

結(jié)合律 ((a+b) mod p + c)mod p = (a + (b+c) mod p) mod p
((a×b) mod p×c)mod p = (a× (b×c) mod p) mod p
交換律 (a + b) mod p = (b+a) mod p
(a × b) mod p = (b × a) mod p
分配律 ((a +b)mod p × c) mod p = ((a × c) mod p + (b × c) mod p) mod p
(a×b) mod c=(a mod c * b mod c) mod c
(a+b) mod c=(a mod c+ b mod c) mod c
(a-b) mod c=(a mod c- b mod c) mod c

證明((a+b) mod p + c) mod p = (a + (b+c) mod p) mod p
假設(shè)
a = k1p + r1
b = k2
p + r2
c = k3p + r3
a+b = (k1 + k2) p + (r1 + r2)
如果(r1 + r2) >= p 徐伐,則
(a+b) mod p = (r1 + r2) -p
否則
(a+b) mod p = (r1 + r2)
如果(r1 + r2) >= p,將 (a+b) mod p = (r1 + r2) -p 帶入
(1) 那么 (a+b) mod p + c = (r1 + r2) -p + k3
p + r3 = r1+r2+r3+(k3-1)p
如果(r1+r2)<p ,將(a+b) mod p = (r1 + r2) 帶入
(2) 那么(a+b) mod p + c = r1+r2+ k3p + r3 = r1+r2+r3 +k3p
綜合(1)(2)兩處, ((a+b) mod p + c) mod p的結(jié)果是 r1+r2+r3的算數(shù)和除以p的余數(shù)
同理右邊一樣的算法可證.

證明((a\*b) mod p\* c)mod p = (a\* (b\*c) mod p) mod p
假設(shè)
a = k1*p + r1
b = k2*p + r2
c = k3*p + r3
a*b = ( k1*p + r1)(k2*p + r2) = k1k2p2+(k1r2+k2r1)p+r1r2=(k1k2p+k1r2+k2r1)p+r1*r2;
如果r1*r2 >=p ,則
(a
b) mod p = r1*r2 -m*p (m>0 ,屬于正整數(shù))
否則r1*r2 < p,則
(a*b) mod p = r1*r2
如果r1*r2 >=p ,那么將(a*b) mod p 帶入
(1) 那么 (ab) mod p * c = ( r1*r2 -mp)(k3*p + r3) =( -mk3p+r1r2k3-mk3)p + r1r2r3 ( (m>0 ,屬于正整數(shù)))
如果r1r2<p 那么將(a*b) mod p帶入
(2)那么 (a
b) mod p * c = r1r2(k3p+r3)=k3r1r2p+r1r2r3
綜合(1)(2)兩處 ((a*b) mod p* c)mod p 的結(jié)果是 r1r2r3的算術(shù)乘積除以p的余數(shù)
同理右邊一樣的算法

這里交換律一看就能看出來不證明了

證明((a +b)mod p × c) mod p = ((a × c) mod p + (b × c) mod p) mod p
假設(shè)
a = k1*p + r1
b = k2*p + r2
c = k3*p + r3
證明左邊
a+b = (k1 + k2) p + (r1 + r2)
如果(r1 + r2) >= p 贯钩,則
(a+b) mod p = (r1 + r2) -p
否則
(a+b) mod p = (r1 + r2)
如果(r1 + r2) >= p,將 (a+b) mod p = (r1 + r2) -p 帶入
(1) 那么(a +b)mod p × c =( r1+r2-p)×( k3×p + r3) =( -k3×p+r1k3+r2k3-k3)×p + (r1+r2)×r3
如果(r1+r2)<p ,將(a+b) mod p = (r1 + r2) 帶入
(2) 那么(a+b) mod p × c =( r1+r2) ×( k3*p + r3) = (r1k3+r2k3) p +(r1+r2)×r3
綜合(1)(2)兩處, ((a+b) mod p × c) mod p的結(jié)果是(r1+r2)×r3的算數(shù)值 除以p的余數(shù)
證明右邊
(a × c) = (k1p+r1)(k3p+r3) =( k1k3p+k1r3+r1k3) p + r1r3;
如果r1r3>=p ,則
(a × c) mod p = r1r3-mp (m>0的正整數(shù))
如果 r1r3<p ,則
(a × c) mod p = r1r3
同理 (b × c) mod p
如果r2r3>=p ,則 (b × c) mod p = r2r3-np (n>0的正整數(shù))
如果r2r3<p ,則 (b × c) mod p = r2r3
排列組合 四種情況
第一種情況 r1r3>=p && r2r3>=p
那么(a × c) mod p + (b × c) mod p = r1r3-mp + r2r3-np = (-m-n)p+ (r1+r2)r3
第二種情況 r1r3<p && r2r3>=p
那么(a × c) mod p + (b × c) mod p = r1r3 + r2r3-np = (-n)p+ (r1+r2)r3
第一種情況 r1r3>=p && r2r3<p
那么(a × c) mod p + (b × c) mod p = r1r3-mp + r2r3 = (-m)p+ (r1+r2)r3
第二種情況 r1r3<p && r2r3<p
那么(a × c) mod p + (b × c) mod p = r1r3 + r2r3 = (r1+r2)r3
以上四種情況的結(jié)果都是(r1+r2)×r3的算數(shù)值 除以p的余數(shù) 和左邊的結(jié)果相等

證明(a×b) mod c=(a mod c * b mod c) mod c
假設(shè)
a = k1*p + r1
b = k2*p + r2
c= p
(a × b) mod c 的結(jié)果有兩種情況.(在上面證明過)
如果r1r2>=p ,那么(a × b) mod c = r1r2-mc (m>0)
如果r1
r2< p ,那么 (a × b) mod c = r1r2
以上兩種的結(jié)果都是r1r2乘積 除以c (也是p)的余數(shù).
證明右邊
amodc = amodp = r1;
bmodc =bmodp = r2;
a mod c * b mod c = r1*r2;
因此和左邊是相等的.

(a+b) mod c=(a mod c+ b mod c) mod c(a-b) mod c=(a mod c- b mod c) mod c的證明和(a×b) mod c=(a mod c * b mod c) mod c證明一樣,略

模p相等

如果兩個數(shù)a、b滿足a mod p = b mod p办素,則稱他們模p相等角雷,記做
a ≡ b (mod p)
可以證明,此時a性穿、b滿足 a = kp + b勺三,其中k是某個整數(shù)。

證明
假設(shè)
a = k1p+r1;
b = k2p+ r2;
如果 a mod p = b mod p ,那么r1 = r2;
所以 a= k1p+ r1= k1p+b-k2p = (k1-k2)p + b;
因此 a = kp+b;

對于模p相等和模p乘法來說需曾,有一個和四則運算中迥然不同的規(guī)則.
在四則運算如果c是一個非0整數(shù)吗坚,則ac = bc 可以得出 a =b
但是在模p運算中,這種關(guān)系不存在. 舉例如下

(3 x 3) mod 9 = 0
(6 x 3) mod 9 = 0
但是
3 mod 9 = 3
6 mod 9 =6

那么如何才能消除呢?執(zhí)行消除需要滿足定理條件
定理(消去律):如果gcd(c,p) = 1 呆万,則 ac ≡ bc mod p 可以推出 a ≡ (b mod p)

gcd 函數(shù)解釋
GCD函數(shù)是 返回兩個或多個整數(shù)的最大公約數(shù)
最大公約數(shù)是能分別將各個參數(shù)除盡的最大整數(shù)商源。
例如 2 和4的最大公約數(shù)是 2, 2和3的最大公約數(shù)是1
gcd(c,p)=1 ,表示沒有公約因子

證明
因為ac ≡ bc (mod p)
所以ac = bc + kp,也就是c(a-b) = kp  (模等可以這樣轉(zhuǎn)換)
因為c和p沒有除1以外的公因子谋减,因此上式要成立必須滿足下面兩個條件中的一個
1) c能整除k    
2) a = b
第一種情況  ,a-b = kp/c; 因為c和p沒有除1以外的公因子, 所以 a-b = k1p;  k1 = k/c  .所以 a = b+k1p ; 所以  a ≡ b (mod p)
第二種情況 a = b牡彻,則a ≡ b mod p 顯然成立
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市出爹,隨后出現(xiàn)的幾起案子庄吼,更是在濱河造成了極大的恐慌,老刑警劉巖严就,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件总寻,死亡現(xiàn)場離奇詭異,居然都是意外死亡梢为,警方通過查閱死者的電腦和手機(jī)废菱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抖誉,“玉大人殊轴,你說我怎么就攤上這事√宦” “怎么了旁理?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長我磁。 經(jīng)常有香客問我孽文,道長驻襟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任芋哭,我火速辦了婚禮沉衣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘减牺。我一直安慰自己豌习,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布拔疚。 她就那樣靜靜地躺著肥隆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪稚失。 梳的紋絲不亂的頭發(fā)上栋艳,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機(jī)與錄音句各,去河邊找鬼吸占。 笑死,一個胖子當(dāng)著我的面吹牛凿宾,可吹牛的內(nèi)容都是我干的矾屯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼菌湃,長吁一口氣:“原來是場噩夢啊……” “哼问拘!你這毒婦竟也來了遍略?” 一聲冷哼從身側(cè)響起惧所,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绪杏,沒想到半個月后下愈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蕾久,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年势似,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片僧著。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡履因,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盹愚,到底是詐尸還是另有隱情栅迄,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布皆怕,位于F島的核電站毅舆,受9級特大地震影響西篓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜憋活,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一岂津、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧悦即,春花似錦吮成、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至冗美,卻和暖如春魔种,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粉洼。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工节预, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人属韧。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓安拟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親宵喂。 傳聞我的和親對象是個殘疾皇子糠赦,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容