文章目录
前言
听了一下午数论之后的反应?
别问,问就是懵逼
然后打算把自己没记多少的笔记整理一下
内容
素数
关于素数无限个的证明
设当前有限个素数为
P
1
,
P
2
,
P
3
.
.
.
P
m
P_1, P_2, P_3 ... P_m
P1,P2,P3...Pm
那我们将它乘起来,再加上一个1, 即
∏
i
=
1
m
P
i
+
1
\prod_{i = 1}^{m}P_i + 1
i=1∏mPi+1
那么这得到的新的数字就无法被之前得到的m个素数整除(毕竟最小的素数也是
2
2
2),也就是说这个新得到的数字是一个素数,也就与前面的只有m个素数的结论相矛盾
故证得素数有无限个
n以内的素数个数
n u m = n ln(x) num = \frac{n}{\text{ln(x)}} num=ln(x)n
算术基本定理
任意一个大于1的正整数都能拆分成若干个素数的乘积
N
=
P
1
c
1
×
P
2
c
2
…
P
m
c
m
(
N
>
1
)
N = P_1^{c_1} \times P_2^{c_2} … P_m^{c_m}(N>1)
N=P1c1×P2c2…Pmcm(N>1)
约数
一个数的正约数个数(约数个数定理)
∏ i = 1 m ( c i + 1 ) \prod_{i = 1}^{m}(c_i + 1) i=1∏m(ci+1)
一个数的正约数和(约数和定理)
∏ i = 1 m ( ∑ j = 0 c i ( P i ) j ) \prod_{i = 1}^{m}\left(\sum_{j = 0}^{c_i}(P_i)^j\right) i=1∏m(j=0∑ci(Pi)j)
最大公约数和最小公倍数
用 g c d ( a , b ) 表 示 a , b 的 最 大 公 约 数 , 用 l c m ( a , b ) 表 示 a , b 的 最 小 公 倍 数 gcd(a, b)表示a,b的最大公约数,用lcm(a,b)表示a,b的最小公倍数 gcd(a,b)表示a,b的最大公约数,用lcm(a,b)表示a,b的最小公倍数
gcd(a,b) * lcm(a,b)= a * b的证明
设
d
=
g
c
d
(
a
,
b
)
,
e
=
l
c
m
(
a
,
b
)
,
a
0
=
a
/
d
,
b
0
=
b
/
d
d = gcd(a, b), e = lcm(a,b), a_0 = a / d, b_0 = b / d
d=gcd(a,b),e=lcm(a,b),a0=a/d,b0=b/d,根据最大公约数的定义,有
g
c
d
(
a
0
,
b
0
)
=
1
gcd(a_0, b_0) = 1
gcd(a0,b0)=1, 再根据最小公倍数的定义,有
l
c
m
(
a
0
,
b
0
)
=
a
0
×
b
0
lcm(a_0,b_0) = a_0 \times b_0
lcm(a0,b0)=a0×b0
则
e
=
l
c
m
(
a
0
∗
d
,
b
0
∗
d
)
=
l
c
m
(
a
0
,
b
0
)
∗
d
=
a
0
∗
b
0
∗
d
=
a
∗
b
/
d
e = lcm(a_0 * d, b_0 * d) = lcm(a_0, b_0) * d = a_0 * b_0 * d = a * b / d
e=lcm(a0∗d,b0∗d)=lcm(a0,b0)∗d=a0∗b0∗d=a∗b/d
证毕
更相减损术
g c d ( a , b ) = g c d ( b , a − b ) = g c d ( a , a − b ) ( a ≥ b ) gcd(a,b) = gcd(b, a-b) = gcd(a, a - b)(a \geq b) gcd(a,b)=gcd(b,a−b)=gcd(a,a−b)(a≥b)
欧几里得算法
g c d ( a , b ) = g c d ( b , a m o d b ) gcd(a,b) = gcd(b, a\ \ mod\ \ b) gcd(a,b)=gcd(b,a mod b)
欧拉函数
表示1~N中与N互质的数的个数,记作
φ
(
N
)
\varphi(N)
φ(N)
设P为不大于n的若干个素数
在算数基本定理中
n
=
P
1
c
1
×
P
2
c
2
×
.
.
.
×
P
m
c
m
n = P_1^{c_1} \times P_2^{c_2} \times ... \times P_m^{c_m}
n=P1c1×P2c2×...×Pmcm
φ
(
n
)
=
n
×
P
1
−
1
P
1
×
P
2
−
1
P
2
…
P
m
−
1
P
m
\varphi(n) = n \times \frac{P_1 - 1}{P_1} \times \frac{P_2 - 1}{P_2}…\frac{P_m - 1}{P_m}
φ(n)=n×P1P1−1×P2P2−1…PmPm−1
整理一下可得
n
×
∏
质
数
P
∣
N
(
1
−
1
P
)
n \times \prod_{质数P|N}(1 - \frac{1}{P})
n×质数P∣N∏(1−P1)
证明:
用容斥原理
我们不妨设
p
p
p为n的一个质因数,那么1~n中
p
p
p的倍数共有
p
p
p,
2
p
2p
2p,
3
p
3p
3p…共有
n
/
p
n/p
n/p个;
再设一个
q
q
q,也是n的一个质因数,那么共有
n
/
q
n/q
n/q个q的倍数;
那么我们要除去
q
q
q的倍数和
p
p
p的倍数,但这样又会重复减去
p
q
pq
pq的倍数,所以还要加回来
即
n
−
n
p
−
n
q
+
n
p
q
n - \frac{n}{p} - \frac{n}{q} + \frac{n}{pq}
n−pn−qn+pqn
此式可化为
n
∗
(
1
−
1
p
−
1
q
+
1
p
q
)
n * (1 - \frac{1}{p} - \frac{1}{q} + \frac{1}{pq})
n∗(1−p1−q1+pq1)
最后可以化为
n
(
1
−
1
p
)
(
1
−
1
q
)
n(1 - \frac{1}{p})(1 - \frac{1}{q})
n(1−p1)(1−q1)
那这个可以一般化到所有n的质因数,就能得到上式
证毕.
积性函数
当a与b互质时,若有 f ( a b ) = f ( a ) × f ( b ) f(ab) = f(a) \times f(b) f(ab)=f(a)×f(b),称函数 f f f为积性函数
一些性质
1.当
n
>
1
n>1
n>1时 1~n中与n互质的数的和为
n
×
φ
(
n
)
2
\frac{n \times \varphi(n)}{2}
2n×φ(n)
2.若
a
,
b
a,b
a,b互质,则有
φ
(
a
b
)
=
φ
(
a
)
φ
(
b
)
\varphi(ab) = \varphi(a)\varphi(b)
φ(ab)=φ(a)φ(b)
3.若
f
f
f是积性函数,且在算数基本定理中
f
(
n
)
=
∏
i
=
1
m
f
(
p
i
c
j
)
f(n) = \prod_{i = 1}^{m}f(p_i^{c_j})
f(n)=∏i=1mf(picj)
4.设
p
p
p为质数,若
p
∣
n
p|n
p∣n且
p
2
∣
n
p^2|n
p2∣n,则
φ
(
n
)
=
φ
(
n
/
p
)
×
p
\varphi(n) = \varphi(n / p) \times p
φ(n)=φ(n/p)×p
5.设
p
p
p为质数,若
p
∣
n
p|n
p∣n且
p
2
∤
n
p^2∤n
p2∤n,则
φ
(
n
)
=
φ
(
n
/
p
)
×
(
p
−
1
)
\varphi(n) = \varphi(n/p) \times (p - 1)
φ(n)=φ(n/p)×(p−1)
6.
∑
d
∣
n
φ
(
d
)
=
n
\sum_{d|n}\varphi(d) = n
∑d∣nφ(d)=n
这里只是将这些性质简单整理了一下,具体证明可以上网查询,这里就不给出证明了(主要是博主太菜了不会证
同余
a
≡
b
(
m
o
d
m
)
a \equiv b(mod\ m)
a≡b(mod m), 当且仅当
m
∣
(
a
−
b
)
m|(a - b)
m∣(a−b)
证明:
设
a
=
k
1
m
+
r
1
a = k_1m + r_1
a=k1m+r1
设
b
=
k
2
m
+
r
2
b = k_2m + r_2
b=k2m+r2
使得
r
1
=
=
r
2
r_1 == r_2
r1==r2
则
a
−
b
=
k
1
m
+
r
1
−
k
2
m
−
r
2
=
(
k
1
−
k
2
)
m
a - b = k_1m + r_1 - k_2m - r_2 = (k_1 - k_2)m
a−b=k1m+r1−k2m−r2=(k1−k2)m
故得
m
∣
(
a
−
b
)
m|(a-b)
m∣(a−b)
一些性质
1.自反性
a
≡
b
(
m
o
d
m
)
⇒
a
≡
b
(
m
o
d
m
)
a \equiv b(mod\ m) \Rightarrow a\equiv b(mod\ m)
a≡b(mod m)⇒a≡b(mod m)
2.对称性
a
≡
b
(
m
o
d
m
)
⇒
b
≡
a
(
m
o
d
m
)
a \equiv b(mod\ m)\Rightarrow b\equiv a(mod\ m)
a≡b(mod m)⇒b≡a(mod m)
3.传递性
a
≡
b
(
m
o
d
m
)
,
b
≡
c
(
m
o
d
m
)
⇒
a
≡
c
(
m
o
d
m
)
a \equiv b(mod\ m), b \equiv c(mod\ m) \Rightarrow a \equiv c(mod\ m)
a≡b(mod m),b≡c(mod m)⇒a≡c(mod m)
4.同加性
a
≡
b
(
m
o
d
m
)
⇒
a
+
c
a \equiv b(mod\ m) \Rightarrow a + c
a≡b(mod m)⇒a+c
5.同乘性
a
≡
b
(
m
o
d
m
)
⇒
a
∗
c
≡
b
∗
c
(
m
o
d
m
)
a \equiv b(mod\ m) \Rightarrow a * c \equiv b * c(mod\ m)
a≡b(mod m)⇒a∗c≡b∗c(mod m)
6.同幂性
a
≡
b
(
m
o
d
m
)
⇒
a
n
≡
b
n
(
m
o
d
m
)
a \equiv b(mod\ m) \Rightarrow a ^ n \equiv b ^ n(mod\ m)
a≡b(mod m)⇒an≡bn(mod m)
7.若
a
m
o
d
p
=
x
,
a
m
o
d
q
=
x
a\ mod\ p = x, a\ mod\ q = x
a mod p=x,a mod q=x(p, q互质), 则
a
m
o
d
p
q
=
x
a\ mod\ pq = x
a mod pq=x
欧拉定理
若正整数a, n互质,则
a
φ
(
n
)
≡
1
(
m
o
d
n
)
a^{\varphi(n)} \equiv 1(mod\ n)
aφ(n)≡1(mod n)
证明:
设
S
1
=
r
1
,
r
2
,
r
3
.
.
.
r
φ
(
n
)
S_1 = {r_1, r_2, r_3...r_{\varphi(n)}}
S1=r1,r2,r3...rφ(n), 这个集合内都是mod n的既约剩余系
将
S
1
∗
a
S_1*a
S1∗a得
S
2
=
a
r
1
,
a
r
2
,
a
r
3
.
.
.
a
r
φ
(
n
)
S_2 = {ar_1, ar_2, ar_3...ar_{\varphi(n)}}
S2=ar1,ar2,ar3...arφ(n), 也是mod n的既约剩余系
则可得
∏
i
=
1
φ
(
n
)
a
r
i
≡
∏
i
=
1
φ
(
n
)
r
i
(
m
o
d
n
)
\prod_{i =1}^{\varphi(n)}ar_i \equiv \prod_{i = 1}^{\varphi(n)}r_i(mod\ n)
i=1∏φ(n)ari≡i=1∏φ(n)ri(mod n)
提出a可得
a
φ
(
n
)
∏
i
=
1
φ
(
n
)
r
i
≡
∏
i
=
1
φ
(
n
)
r
i
(
m
o
d
n
)
a^{\varphi(n)}\prod_{i = 1}^{\varphi(n)}r_i \equiv \prod_{i = 1}^{\varphi(n)}r_i(mod\ n)
aφ(n)i=1∏φ(n)ri≡i=1∏φ(n)ri(mod n)
上式可化为
n
∣
(
a
φ
(
n
)
∏
i
=
1
φ
(
n
)
r
i
−
∏
i
=
1
φ
(
n
)
r
i
)
n|(a^{\varphi(n)}\prod_{i = 1}^{\varphi(n)}r_i - \prod_{i = 1}^{\varphi(n)}r_i)
n∣(aφ(n)i=1∏φ(n)ri−i=1∏φ(n)ri)
乘法分配律逆运算
n
∣
(
a
φ
(
n
)
−
1
)
∏
i
=
1
φ
(
n
)
r
i
n|(a^{\varphi(n)} - 1)\prod_{i = 1}^{\varphi(n)}r_i
n∣(aφ(n)−1)i=1∏φ(n)ri
因为
∏
i
=
1
φ
(
n
)
r
i
\prod_{i = 1}^{\varphi(n)}r_i
∏i=1φ(n)ri与
n
n
n互质(
g
c
d
(
∏
i
=
1
φ
(
n
)
r
i
,
n
)
=
1
gcd(\prod_{i = 1}^{\varphi(n)}r_i, n) = 1
gcd(∏i=1φ(n)ri,n)=1)
则可以得到
n
∣
(
a
φ
(
n
)
−
1
)
n|(a^{\varphi(n)} - 1)
n∣(aφ(n)−1)
由
a
≡
b
(
m
o
d
m
)
=
m
∣
(
a
−
b
)
a \equiv b(mod\ m) = m|(a - b)
a≡b(mod m)=m∣(a−b)得
a
φ
(
n
)
≡
1
(
m
o
d
n
)
a^{\varphi(n)} \equiv 1(mod\ n)
aφ(n)≡1(mod n)
证毕.
费马小定理
若p是质数,则对于任意整数
a
a
a, 有
a
p
≡
a
(
m
o
d
p
)
a^p \equiv a(mod\ p)
ap≡a(mod p)
证明:
分类讨论
1.
g
c
d
(
a
,
p
)
=
1
⇒
a
φ
(
p
)
≡
1
(
m
o
d
p
)
⇒
a
p
−
1
≡
1
(
m
o
d
p
)
⇒
a
p
≡
a
(
m
o
d
p
)
gcd(a, p) = 1 \Rightarrow a^{\varphi(p)} \equiv 1(mod\ p) \Rightarrow a^{p - 1} \equiv 1(mod\ p) \Rightarrow a^p \equiv a(mod\ p)
gcd(a,p)=1⇒aφ(p)≡1(mod p)⇒ap−1≡1(mod p)⇒ap≡a(mod p)
2.
g
c
d
(
a
,
p
)
≠
1
⇒
a
是
p
的
倍
数
,
则
a
m
o
d
p
=
a
p
m
o
d
p
=
0
gcd(a, p) \neq 1 \Rightarrow a是p的倍数, 则a\ mod\ p = a^p\ mod\ p = 0
gcd(a,p)=1⇒a是p的倍数,则a mod p=ap mod p=0
证毕.
贝祖定理(裴蜀定理)
当
g
c
d
(
a
,
b
)
∣
m
gcd(a,b)|m
gcd(a,b)∣m时, 一定存在一组解使得
a
x
+
b
y
=
g
c
d
(
a
,
b
)
ax +by = gcd(a, b)
ax+by=gcd(a,b)成立
设
d
=
g
c
d
(
a
,
b
)
d = gcd(a, b)
d=gcd(a,b),则
a
=
d
a
′
,
b
=
d
b
′
,
a
x
+
b
y
=
(
d
a
′
x
+
d
b
′
y
)
=
d
(
a
′
x
+
b
′
y
)
a = da', b = db', ax+by = (da'x + db'y) = d(a'x + b'y)
a=da′,b=db′,ax+by=(da′x+db′y)=d(a′x+b′y)
1.当
b
=
0
b = 0
b=0时,有一对
x
=
1
,
y
=
0
x = 1, y = 0
x=1,y=0满足
a
+
0
=
g
c
d
(
a
,
0
)
=
a
a + 0 = gcd(a, 0) = a
a+0=gcd(a,0)=a
2.当
b
≠
0
b\neq0
b=0时
g
c
d
(
a
,
b
)
=
g
c
d
(
b
,
a
m
o
d
b
)
gcd(a, b) = gcd(b, a\ mod\ b)
gcd(a,b)=gcd(b,a mod b)
则
a
x
+
b
y
=
b
x
′
+
(
a
m
o
d
b
)
y
′
ax + by = bx' + (a\ mod\ b)y'
ax+by=bx′+(a mod b)y′
=
b
x
′
+
(
a
−
⌊
a
b
⌋
∗
b
)
y
′
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =bx' + (a - \left \lfloor \frac{a}{b} \right \rfloor *b)y'
=bx′+(a−⌊ba⌋∗b)y′
=
a
y
′
+
b
(
x
′
−
⌊
a
b
⌋
y
′
)
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =ay' + b(x' - \left \lfloor \frac{a}{b} \right \rfloor y')
=ay′+b(x′−⌊ba⌋y′)
只要我们令
x
=
y
′
,
y
=
x
′
−
⌊
a
b
⌋
y
′
x = y', y = x' - \left \lfloor \frac{a}{b} \right \rfloor y'
x=y′,y=x′−⌊ba⌋y′就能求解了
例:
12
x
+
15
y
=
g
c
d
(
12
,
15
)
=
3
12x + 15y = gcd(12, 15) = 3
12x+15y=gcd(12,15)=3
解:
g
c
d
(
12
,
15
)
⇒
g
c
d
(
15
,
12
)
⇒
g
c
d
(
12
,
3
)
⇒
g
c
d
(
3
,
0
)
gcd(12, 15) \Rightarrow gcd(15, 12) \Rightarrow gcd(12, 3) \Rightarrow gcd(3, 0)
gcd(12,15)⇒gcd(15,12)⇒gcd(12,3)⇒gcd(3,0)
那我们令
x
=
y
′
,
y
=
x
′
−
⌊
a
b
⌋
y
′
x = y', y = x' - \left \lfloor \frac{a}{b} \right \rfloor y'
x=y′,y=x′−⌊ba⌋y′
即
x
=
1
,
y
=
0
x = 1, y = 0
x=1,y=0
往上推到
12
,
3
的
组
,
那
x
=
0
,
y
=
1
−
⌊
12
3
⌋
∗
0
=
1
12, 3的组,那x = 0, y = 1 - \left \lfloor \frac{12}{3} \right \rfloor * 0 = 1
12,3的组,那x=0,y=1−⌊312⌋∗0=1
再往上推,那
x
=
1
,
y
=
0
−
⌊
15
12
⌋
∗
1
=
−
1
x = 1, y = 0 - \left \lfloor \frac{15}{12} \right \rfloor * 1 = -1
x=1,y=0−⌊1215⌋∗1=−1
最后推到
x
=
−
1
,
y
=
1
−
⌊
12
15
⌋
∗
1
=
1
−
0
=
1
x = -1, y = 1 - \left \lfloor \frac{12}{15} \right \rfloor * 1 = 1 - 0 = 1
x=−1,y=1−⌊1512⌋∗1=1−0=1
经检验(-12+15 = 3),也是正确的
代码
ll exgcd(ll a, ll b, ll &x, ll &y)
{
if(b == 0) {
x = 1; y = 0;
return a;
}
gcd = exgcd(b, a % b, x, y);
ll z = x;
x = y; y = z - y * (a / b);
return gcd;
}
求通解
设
x
0
,
y
0
x_0, y_0
x0,y0为
a
x
+
b
y
=
g
c
d
(
a
,
b
)
ax+by = gcd(a, b)
ax+by=gcd(a,b)的一组特解
a
(
x
0
+
k
1
)
+
b
(
y
0
+
k
2
)
=
g
c
d
(
a
,
b
)
a(x_0 + k_1) + b(y_0 + k_2) = gcd(a, b)
a(x0+k1)+b(y0+k2)=gcd(a,b)
a
x
0
+
a
k
1
+
b
y
0
−
b
k
2
=
g
c
d
(
a
,
b
)
ax_0 + ak_1+ by_0 -bk_2 = gcd(a, b)
ax0+ak1+by0−bk2=gcd(a,b)
只要让
k
0
=
b
g
c
d
(
a
,
b
)
,
k
2
=
a
g
c
d
(
a
,
b
)
k_0 = \frac{b}{gcd(a,b)}, k_2 = \frac{a}{gcd(a,b)}
k0=gcd(a,b)b,k2=gcd(a,b)a
则等式就是成立的
x
=
x
0
+
b
g
c
d
(
a
,
b
)
∗
t
,
y
=
y
0
+
a
g
c
d
(
a
,
b
)
∗
t
x = x_0 + \frac{b}{gcd(a, b)} * t, y = y_0 + \frac{a}{gcd(a,b)}*t
x=x0+gcd(a,b)b∗t,y=y0+gcd(a,b)a∗t
a x + b y = n ax+by = n ax+by=n方程的主要解题步骤
1.
g
c
d
(
a
,
b
)
∣
n
⇒
gcd(a,b)|n \Rightarrow
gcd(a,b)∣n⇒ 有整数解
2.用贝祖定理求
a
x
+
b
y
=
g
c
d
(
a
,
b
)
⇒
x
0
,
y
0
ax+by= gcd(a, b) \Rightarrow\ x_0, y_0
ax+by=gcd(a,b)⇒ x0,y0
3.同乘
n
g
c
d
(
a
,
b
)
\frac{n}{gcd(a, b)}
gcd(a,b)n得到特解
线性同余方程
a
x
≡
b
(
m
o
d
m
)
ax \equiv b(mod\ m)
ax≡b(mod m)
不会做???
转换成会做的不就好了
由上式可得
m
∣
(
a
x
−
b
)
m|(ax - b)
m∣(ax−b)
也就是说
m
y
=
a
x
−
b
my = ax - b
my=ax−b
移项可得
a
x
−
m
y
=
b
ax - my = b
ax−my=b
当
g
c
d
(
a
,
m
)
∣
b
gcd(a, m)|b
gcd(a,m)∣b时,方程有解,用贝祖定理就好了
乘法逆元
b
,
m
b ,m
b,m互质, 并且
b
∣
a
b|a
b∣a, 若有x满足
a
b
≡
a
x
(
m
o
d
m
)
\frac{a}{b} \equiv ax(mod\ m)
ba≡ax(mod m)
称x为b的
m
o
d
m
mod\ m
mod m的乘法逆元, 记为
b
−
1
(
m
o
d
m
)
b^{-1}(mod\ m)
b−1(mod m)(并非-1次方)
∵
a
/
b
≡
a
b
−
1
(
m
o
d
m
)
∵a / b \equiv ab^{-1}(mod\ m)
∵a/b≡ab−1(mod m)
∴
b
∗
b
−
1
≡
1
(
m
o
d
m
)
∴b*b^{-1} \equiv1 (mod\ m)
∴b∗b−1≡1(mod m)(两边同乘
b
a
\frac{b}{a}
ab)
∴
b
x
≡
1
(
m
o
d
m
)
∴bx \equiv 1(mod\ m)
∴bx≡1(mod m)(线性同余方程)
若m为质数,并且b<m, 则
b
m
−
1
≡
1
(
m
o
d
m
)
b^{m-1} \equiv 1(mod\ m)
bm−1≡1(mod m)(小费马
则
x
=
b
m
−
2
x = b^{m-2}
x=bm−2
线性求逆元
求出
1
−
n
1 - n
1−n的所有数的逆元
枚举
i
i
i
首先
1
−
1
≡
1
(
m
o
d
p
)
1^{-1} \equiv 1(mod\ p)
1−1≡1(mod p)
当
i
<
p
i < p
i<p时,设
p
=
k
i
+
r
p = ki + r
p=ki+r(
k
=
⌊
p
i
⌋
,
r
=
p
m
o
d
i
k =\left\lfloor \frac{p}{i} \right\rfloor, r = p\ mod\ i
k=⌊ip⌋,r=p mod i )
∵
p
m
o
d
p
=
0
p\ mod\ p = 0
p mod p=0
∴
(
k
i
+
r
)
m
o
d
p
=
0
(ki+r)\ mod\ p = 0
(ki+r) mod p=0
则有
k
i
+
r
≡
0
(
m
o
d
p
)
ki + r \equiv 0(mod\ p)
ki+r≡0(mod p)
两边同乘
i
−
1
i^{-1}
i−1
则有
k
+
r
i
i
−
1
≡
0
(
m
o
d
p
)
k + ri^{i-1} \equiv 0(mod\ p)
k+rii−1≡0(mod p)
∴
r
i
−
1
≡
−
k
(
m
o
d
p
)
∴ri^{-1} \equiv -k(mod\ p)
∴ri−1≡−k(mod p)
∴
i
−
1
≡
−
k
r
−
1
∴i^{-1} \equiv -kr^{-1}
∴i−1≡−kr−1
又
∵
k
=
⌊
p
i
⌋
∵k =\left\lfloor \frac{p}{i} \right\rfloor
∵k=⌊ip⌋,
r
=
r =
r=
p
p
p %
i
i
i
则有
i
−
1
≡
−
⌊
p
i
⌋
⋅
(
p
i^{-1} \equiv -\left\lfloor \frac{p}{i} \right\rfloor \cdot (p
i−1≡−⌊ip⌋⋅(p %
i
)
−
1
(
m
o
d
m
)
i)^{-1}(mod\ m)
i)−1(mod m)
那很显然
(
p
(p
(p %
i
)
i)
i)是小于i的
那可以根据前面的式子推, 代码就是
A[i]=-(p/i)*A[p%i];
应该还是比较容易懂的(虽然我这彩笔听的时候懵死了,但是下来看几下还是可以懂得
中国剩余定理(孙子定理)(crt)
求线性同余方程组?(大概)
其实我想单独写一篇文章(先咕着,不一定补
这里简单提一下
设
m
1
,
m
2
,
m
3
.
.
.
m
r
m_1,m_2, m_3...m_r
m1,m2,m3...mr为两两互质的整数,且
m
=
m
1
m
2
.
.
.
m
r
m =m_1m_2...m_r
m=m1m2...mr, 则同余方程组
设
m
=
∏
i
=
1
n
m
i
,
M
i
=
m
/
m
i
,
t
i
m = \prod_{i = 1}^{n}m_i, M_i = m / m_i, t_i
m=∏i=1nmi,Mi=m/mi,ti是线性同余方程
M
i
t
i
≡
1
(
m
o
d
m
i
)
M_it_i \equiv 1(mod\ m_i)
Miti≡1(mod mi)的一个解
{
x
≡
b
1
(
m
o
d
m
1
)
)
x
≡
b
2
(
m
o
d
m
2
)
.
.
.
x
≡
b
3
(
m
o
d
m
3
)
)
\left\{\begin{matrix} x \equiv b_1(mod\ m_1))\\ x \equiv b_2(mod\ m_2)\\ ...\\ x \equiv b_3(mod\ m_3))\\ \end{matrix}\right.
⎩⎪⎪⎨⎪⎪⎧x≡b1(mod m1))x≡b2(mod m2)...x≡b3(mod m3))
有整数解,解为
x
=
∑
i
=
1
n
a
i
M
i
t
i
x = \sum_{i = 1}^{n}a_iM_it_i
x=∑i=1naiMiti
解:
设
k
=
t
i
k = t_i
k=ti
x
i
=
m
/
m
i
x_i = m / m_i
xi=m/mi(因为
M
i
%
m
i
=
a
i
M_i \% m_i = a_i
Mi%mi=ai)
x
i
=
M
i
k
%
m
i
=
a
i
x_i = M_ik \% m_i = a_i
xi=Mik%mi=ai
则有
M
i
k
≡
a
i
(
m
o
d
m
i
)
M_ik \equiv a_i(mod\ m_i)
Mik≡ai(mod mi)
设
q
q
q为
M
i
%
m
i
M_i \% m_i
Mi%mi的逆元
则式子可变为
M
i
q
≡
1
(
m
o
d
m
i
)
M_iq \equiv 1(mod\ m_i)
Miq≡1(mod mi)
两边再乘
a
i
a_i
ai则有
a
i
M
i
q
≡
a
i
(
m
o
d
m
i
)
a_iM_iq \equiv a_i(\bmod\ m_i)
aiMiq≡ai(mod mi)
也就是说
x
i
=
a
i
M
i
t
i
x_i = a_iM_it_i
xi=aiMiti
那把所有方程的解累加起来就得到通解
则
x
=
∑
i
=
1
n
a
i
M
i
t
i
x = \sum_{i = 1}^{n}a_iM_it_i
x=∑i=1naiMiti