前言
数学是很多其他学科的基础,同样,在程序设计中,数学也扮演着重要的角色。良好的数学基础能够使我们在写程序的时候得心应手,尤其在程序设计竞赛中。这节课我们简单复习复习一些基础的数学概念,帮一些同学回忆回忆。
整除
概念
定义 :设 a,b∈Z,a≠0,如果存在 q∈Z 使得 b=aq,那么就说 b 可被 a 整除, 记做 a∣b,且称 b 是 a 的 倍数,a 是 b 的 约数(也称为除数、因数)。
性质
关于整除有下面的一些性质
-
若 a∣b 且 a∣c,则 ∀x,y,有 a∣xb+yc
-
若 a∣b 且 b∣c,则 a∣c.
-
设 m≠0,则 a∣b,当且仅当 ma∣mb.
-
若 a∣b 且 b∣a,则 a=±b.
-
若 a∣b 且 b≠0,则 ∣a∣≤∣b∣.
带余数除法
概念
设 a,b 是 2 个正整数,且 b≠0,则存在唯一整数 q 和 r,使 a = qb +r,0 ≤ r < ∣b∣。这个式子叫做带余数除法,并记余数 r=a mod b。例如 13 mod 5=3,10 mod 2=0。当 r=0 的时候,就出现了整除,b 是 a 的约数。
如果 n 被 2 除的余数为 0,称 n 为偶数,如果 n 被 2 除的余数为 1,则称 n 为奇数。
性质
关于余数的一些性质
- (a+b) mod p=(a mod p+b mod p) mod p
- (a×b) mod p=(a mod p×b mod p) mod p