数学整理

持续更新。

upd2019.7.20 BSGS和拓展BSGS

upd.2019.8.7 欧拉定理和费马小定理

upd.2019.10.9 欧几里得和拓展欧几里得 + 中国剩余定理及其拓展 + 卢卡斯定理及拓展卢卡斯定理


线性筛

欧几里得和拓展欧几里得

一、 欧几里得定理

叫欧几里得定理的定理还挺多的,这里只是指辗转相除而已。用于求两个数的最小公因数。

二、 拓展欧几里得定理

拓欧求解的是这样一个式子:

a x + b y = g c d ( a , b ) ax+by=gcd(a,b) ax+by=gcd(a,b)

已知 a , b a,b a,b,求其中一对可行解 ( x , y ) (x,y) (x,y)

考虑欧几里得求解最小公因数时的递归求解:

g c d ( x , y ) = g c d ( y , x    m o d    y ) gcd(x,y)=gcd(y,x\; mod \; y) gcd(x,y)=gcd(y,xmody)

假如我们已经知道了

a ′ y + b ′ ( x    m o d    y ) = g c d ( y , x    m o d    y ) a'y+b'(x\; mod \; y)=gcd(y,x\; mod \; y) ay+b(xmody)=gcd(y,xmody)

那么把 x    m o d    y x\; mod \; y xmody写成 x − ⌊ x y ⌋ y x-\lfloor \frac{x}{y}\rfloor y xyxy,再稍微整理一下式子,就可以得到

b ′ x + ( a ′ − ⌊ x y ⌋ b ′ ) y = g c d ( x , y ) b'x+(a'-\lfloor \frac{x}{y}\rfloor b')y=gcd(x,y) bx+(ayxb)y=gcd(x,y)

也就是说

{ a = b ′ b = a ′ − ⌊ x y ⌋ b ′ \begin{cases}a=b'\\ b=a'-\lfloor \frac{x}{y}\rfloor b' \end{cases} {a=bb=ayxb

那我们就可以递归求解了,边界和gcd一样,当 y = 0 y=0 y=0时, 1 ∗ x + 0 ∗ y = x = g c d ( x , y ) 1*x+0*y=x=gcd(x,y) 1x+0y=x=gcd(x,y)

贴一个代码方便理解

template<class T> T exgcd(T x, T y, T &a, T &b)
{
	if (y == 0){
		a = 1; b = 0;
		return x;
	}
	T _a, _b;
	T g = exgcd(y, x % y, _a, _b);
	a = _b;
	b = _a - x / y * _b;
	return g;
}

中国剩余定理及其扩展

一、中国剩余定理

问题:求解一个 x x x满足

{ x ≡ a 1 ( m o d    m 1 ) x ≡ a 2 ( m o d    m 2 ) … x ≡ a n ( m o d    m n ) \begin{cases}x \equiv a_1 (mod \; m_1) \\ x \equiv a_2 (mod \; m_2) \\ \dots \\ x \equiv a_n (mod \; m_n)\end{cases} xa1(modm1)xa2(modm2)xan(modmn)

保证所有的 m i m_i mi互质。

大致思路:对于每一个同余式 x ≡ a 1 ( m o d    m 1 ) x \equiv a_1 (mod \; m_1) xa1(modm1),求出能被其他所有 m j ( m j ≠ m i ) m_j(m_j\not=m_i) mj(mj=mi)整除,并且满足 x ≡ a 1 ( m o d    m 1 ) x \equiv a_1 (mod \; m_1) xa1(modm1) x i x_i xi,因为满足自己的式子,并且是其他模数的倍数,不会对其他式子产生影响,所以最后的答案就是 ∑ x i \sum x_i xi

具体来说:

M = ∏ m i M = \prod m_i M=mi

M i = M / m i M_i = M/m_i Mi=M/mi

M i t i ≡ a i ( m o d    m i ) M_it_i\equiv a_i(mod \; m_i) Mitiai(modmi)

所以

x i ≡ M i t i ( m o d    M ) x_i\equiv M_it_i(mod\; M) xiMiti(modM)

x = ∑ x i x=\sum x_i x=xi

其中的 M i t i ≡ a i ( m o d    m i ) M_it_i\equiv a_i(mod \; m_i) Mitiai(modmi)可以用拓展欧几里得来求,上面刚刚讲过。

最小的非负整数解显然也可以求,就是 x m i n = ( x    m o d    M + M )    m o d    M x_{min}=(x\; mod\; M+M)\; mod \; M xmin=(xmodM+M)modM

二、拓展中国剩余定理

(废话:网上很多人说拓展CRT和CRT没什么关系,将两者割裂开来看,我觉得很fake。实际上exCRT的方法也是基于CRT答案的构造方法的。)

求解的问题和上面一样,但是少了一个条件,就是 m i m_i mi之间不一定保证互质。

{ x ≡ a 1 ( m o d    m 1 ) x ≡ a 2 ( m o d    m 2 ) … x ≡ a n ( m o d    m n ) \begin{cases}x \equiv a_1 (mod \; m_1) \\ x \equiv a_2 (mod \; m_2) \\ \dots \\ x \equiv a_n (mod \; m_n)\end{cases} xa1(modm1)xa2(modm2)xan(modmn)

经过上面的启发,我们仍旧用类似的方法来构造一个可行解。

假设现在我们已经得到了前 k − 1 k-1 k1个方程的一个解,现在要把第 k k k个加进去求前 k k k个方程的解。

设前 k − 1 k-1 k1个的解为 x k − 1 x_{k-1} xk1,前 k − 1 k-1 k1 m i m_i mi的最小公倍数是 M k − 1 M_{k-1} Mk1,那么新的解

x k = x k − 1 + t M k − 1 x_k=x_{k-1}+tM_{k-1} xk=xk1+tMk1

x k ≡ a k ( m o d    m k ) x_k\equiv a_k (mod \; m_k) xkak(modmk)

联立得

t M k − 1 ≡ a k − x k − 1 ( m o d    m k ) tM_{k-1}\equiv a_k-x_{k-1} (mod \; m_k) tMk1akxk1(modmk)

下面就是拓欧的管辖范围了。把这个式子展开

t M k − 1 + s ⋅ m k = a k − x k − 1 tM_{k-1}+s\cdot m_k=a_k-x_{k-1} tMk1+smk=akxk1

假如 g c d ( M k − 1 , m k ) ∤ a k − x k − 1 gcd(M_{k-1},m_k)\nmid a_k-x_{k-1} gcd(Mk1,mk)akxk1就无解,不然就拓欧算出 t t t得到新解,再假如第 k + 1 k+1 k+1个式子。

卢卡斯定理及拓展卢卡斯定理

(废话:卢卡斯定理的证明和拓展卢卡斯的还是有很大区别的,不想上面的CRT这样联系紧密)

一、卢卡斯定理

求解的问题:

C n m    m o d    p C_n^m\;mod\;p Cnmmodp

其中 p p p是质数。

需要求证:

C n m ≡ C ⌊ n p ⌋ ⌊ m p ⌋ ∗ C n    m o d    p m    m o d    p ( m o d    p ) C_n^m\equiv C_{\lfloor\frac{n}{p}\rfloor}^{\lfloor\frac{m}{p}\rfloor}*C_{n\;mod\;p}^{m\;mod\;p}(mod\;p) CnmCpnpmCnmodpmmodp(modp)

然后就可以递归求解了。

证明如下:

  • 引理1:

p ∣ C p i ( 1 ≤ i < p ) p \mid C_{p}^{i}(1 \le i < p) pCpi(1i<p)

很好证明,将组合数写成阶乘的形式

C p i = p ! i ! ∗ ( p − i ) ! = p i ∗ ( p − 1 ) ! ( i − 1 ) ! ∗ ( p − i ) ! = p i C p − 1 i − 1 C_p^i=\frac{p!}{i!*(p-i)!}=\frac{p}{i}*\frac{(p-1)!}{(i-1)!*(p-i)!}=\frac{p}{i}C_{p-1}^{i-1} Cpi=i!(pi)!p!=ip(i1)!(pi)!(p1)!=ipCp1i1

得证。

由此,用二项式定理展开下面的式子可以推知:

( 1 + x ) p ≡ ∑ i = 0 p C p i x i = C p 0 ∗ 1 + 0 ∗ x + 0 ∗ x 2 + . . . + C p p ∗ x p ≡ 1 + x p ( m o d    p ) (1+x)^p\equiv \sum_{i=0}^{p}C_p^i x_i=C_p^0*1+0*x+0*x^2+...+C_p^p*x^p\equiv 1+x^p(mod\;p) (1+x)pi=0pCpixi=Cp01+0x+0x2+...+Cppxp1+xp(modp)

接下来证明定理:

假设 n = a p + b , m = c p + d ( 0 ≤ b , d < p ) n=ap+b,m=cp+d(0\le b,d<p) n=ap+b,m=cp+d(0b,d<p),则

C n m = C a p + b c p + d C_n^m=C_{ap+b}^{cp+d} Cnm=Cap+bcp+d

用上引理1的推论:

( 1 + x ) n = ( 1 + x ) p ∗ a ∗ ( 1 + x ) b ≡ ( 1 + x p ) a ∗ ( 1 + x ) b ( m o d    p ) (1+x)^n=(1+x)^{p*a}*(1+x)^b \equiv (1+x^p)^a*(1+x)^b(mod\;p) (1+x)n=(1+x)pa(1+x)b(1+xp)a(1+x)b(modp)

二项式定理展开,观察左边的式子 x m x^m xm的系数和右边式子 x c p + d x^{cp+d} xcp+d的系数,

C n m ≡ C a c ∗ C b d ( m o d    p ) C_n^m\equiv C_a^c*C_b^d(mod\;p) CnmCacCbd(modp)

C n m ≡ C ⌊ n p ⌋ ⌊ m p ⌋ ∗ C n    m o d    p m    m o d    p ( m o d    p ) C_n^m\equiv C_{\lfloor\frac{n}{p}\rfloor}^{\lfloor\frac{m}{p}\rfloor}*C_{n\;mod\;p}^{m\;mod\;p}(mod\;p) CnmCpnpmCnmodpmmodp(modp)

证毕。

二、拓展卢卡斯定理

需要解决的问题是:

C n m    m o d    p C_n^m\;mod\;p Cnmmodp

其中 p p p并没有限制。

尝试简化问题。

  • Part One:组合数对质数的幂取模

容易想到,将 p p p质因数分解为 p = ∏ p i k i p=\prod p_i^{k_i} p=piki

求解 C n m    m o d    p i k i C_n^m\;mod\;p_i^{k_i} Cnmmodpiki,然后用中国剩余定理(上面有)合并,即

n ! m ! ( n − m ) !    m o d    p i k i \frac{n!}{m!(n-m)!}\;mod\;p_i^{k_i} m!(nm)!n!modpiki

  • Part Two:阶乘除去质因子之后模质数幂

因为并不能直接求逆元,所以将上下阶乘除 p i p_i pi一直除到没有 p i p_i pi这个因子为止,式子长下面这个样子

n ! p x m ! p y ∗ ( n − m ) ! p z ∗ p i x − y − z    m o d    p i k i \frac{\frac{n!}{p^x}}{\frac{m!}{p^y}*\frac{(n-m)!}{p^z}}*p_i^{x-y-z}\; mod\;p_i^{k_i} pym!pz(nm)!pxn!pixyzmodpiki

假如能够求 n ! p x    m o d    p k \frac{n!}{p^x}\; mod\;p^{k} pxn!modpk,那么问题就解决了。

事实上这个东西可以递归去求,方法如下:

1 1 1 n n n的数分为 p p p的倍数和不是 p p p的倍数,不是 p p p的倍数的数 O ( p k ) O(p^k) O(pk)暴力计算(假如题目保证一个 p k p^k pk不会太大的话也可以预处理), p p p的倍数递归。

n ! = ( 1 ∗ 2 ∗ . . . ∗ ( p − 1 ) ∗ ( p + 1 ) ∗ . . . ∗ ( p k − 1 ) ) ⌊ n p k ⌋ ∗ ( 1 ∗ 2 ∗ ( p − 1 ) ∗ ( p + 1 ) ∗ . . . ∗ ( n    m o d    p k ) ) ∗ p ∗ ⌊ n p ⌋ ! \begin{aligned} &n! \\=&(1*2*...*(p-1)*(p+1)*...*(p^k-1))^{\lfloor\frac{n}{p^k}\rfloor} \\&*(1*2*(p-1)*(p+1)*...*(n\;mod\;p^k)) \\&*p*\lfloor\frac{n}{p}\rfloor! \end{aligned} =n!(12...(p1)(p+1)...(pk1))pkn(12(p1)(p+1)...(nmodpk))ppn!

  • Part Three:中国剩余定理合并

如上面所说,得到这样的方程组

{ C n m ≡ a 1 ( m o d    p 1 k 1 ) C n m ≡ a 2 ( m o d    p 2 k 2 ) … C n m ≡ a n ( m o d    p n k n ) \begin{cases}C_n^m \equiv a_1 (mod \; p_1^{k_1}) \\ C_n^m \equiv a_2 (mod \; p_2^{k_2}) \\ \dots \\ C_n^m \equiv a_n (mod \;p_n^{k_n})\end{cases} Cnma1(modp1k1)Cnma2(modp2k2)Cnman(modpnkn)

贴上中国剩余定理板子,完成啦!!!

总复杂度大概 O ( P log ⁡ P ) O(P\log P) O(PlogP)

一个是CRT的复杂度 O ( n log ⁡ p ) O(n\log p) O(nlogp)(n是质因子个数,p是最大的质因子大小)

还有一个是递归求阶乘,递归 log ⁡ p k n \log_{p^k} n logpkn层,每层都 O ( p k ) O(p^k) O(pk)爆扫,复杂度与 O ( P log ⁡ P ) O(P\log P) O(PlogP)同阶。

假如预处理而不是 O ( p k ) O(p^k) O(pk)爆扫,复杂度可以降到 O ( ∑ p k + T log ⁡ p k n ) O(\sum p^k+T\log_{p^k} n) O(pk+Tlogpkn)(其中T是数据组数)。

流程比较长,但是层次分明。虽然只是一个模板,但也可以说是数论各种定理的综合应用。贴个代码方便理解:

namespace exLucas
{
	typedef long long LL;
	LL M, ans;
	LL fpow(LL x, LL y, LL p){
		LL ret = 1;
		while (y){
			if (y & 1) ret = ret * x % p;
			x = x * x % p;
			y >>= 1;
		}
		return ret;
	}
	LL exgcd(LL x, LL y, LL &a, LL &b){
		if (y == 0){
			a = 1; b = 0;
			return x;
		}
		LL _a, _b;
		LL g = exgcd(y, x % y, _a, _b);
		a = _b;
		b = _a - x / y * _b;
		return g;
	}
	LL inv(LL x, LL p){
		LL tmp1, tmp2;
		exgcd(x, p, tmp1, tmp2);
		return (tmp1 % p + p) % p;
	}
	LL fac(LL n, LL p, LL pk){
		if (n == 0) return 1;
		LL ret = 1;
		for (LL i = 2; i < pk; ++ i) if (i%p) (ret *= i) %= pk;
		ret = fpow(ret, n/pk, pk);
		for (LL i = 2, sz = n%pk; i <= sz; ++ i) if (i%p) (ret *= i) %= pk;
		return ret * fac(n / p, p, pk) % pk;
	}
	LL C(LL n, LL m, LL p, LL pk){
		LL cnt = 0;
		for (LL i = n; i; i /= p) cnt += i / p;
		for (LL i = m; i; i /= p) cnt -= i / p;
		for (LL i = n-m; i; i /= p) cnt -= i / p;
		return fac(n, p, pk) * inv(fac(m, p, pk), pk) % pk * inv(fac(n-m, p, pk), pk) % pk * fpow(p, cnt, pk) % pk;
	}
	LL CRT(LL a, LL b){return a * inv(M / b, b) % M * (M / b) % M;}
	LL exLucas(LL n, LL m, LL p){
		M = p; ans = 0;
		for (LL i = 2, sz = sqrt(p) + 1; i <= sz; ++ i)
			if (p % i == 0){
				LL pk = 1;
				while (p % i == 0)
					pk *= i, p /= i;
				(ans += CRT(C(n, m, i, pk), pk)) %= M;
			}
		if (p > 1) (ans += CRT(C(n, m, p, p), p)) %= M;
		return ans;
	}
}

欧拉函数

费马小定理

内容:p是质数且a不是p的倍数时,

a p − 1 ≡ 1 ( m o d    p ) a^{p-1}\equiv 1(mod\; p) ap11(modp)

是欧拉定理的一个特殊情况,证明略。

欧拉定理与拓展

一、

欧拉定理内容:在a与m互质的情况下,

a φ ( m ) ≡ 1 ( m o d    m ) a^{\varphi(m)}\equiv 1(mod\; m) aφ(m)1(modm)

证明如下:

[ 1 , m ] [1,m] [1,m]中与m互质的数为 x 1 , x 2 , . . . , x φ ( m ) x_1, x_2, ... , x_{\varphi(m)} x1,x2,...,xφ(m)

p 1 = a x 1 , p 2 = a x 2 , . . . , p φ ( m ) = a x φ ( m ) p_1=ax_1,p_2=ax_2,..., p_{\varphi(m)}=ax_{\varphi(m)} p1=ax1,p2=ax2,...,pφ(m)=axφ(m)

引理1: ∀ i , j ∈ [ 1 , φ ( m ) ] , i = j̸ , p i ≡ ̸ p j ( m o d    m ) \forall i,j\in [1,\varphi(m)],i=\not j,p_i\equiv\not p_j(mod\; m) i,j[1,φ(m)],i=j,pipj(modm)

使用反证法,假设存在 p i ≡ p j ( m o d    m ) p_i\equiv p_j(mod\; m) pipj(modm),那么 a ( x i − x j ) ≡ 0 ( m o d    m ) a(x_i-x_j)\equiv 0(mod\; m) a(xixj)0(modm),即 a ( x i − x j ) = k m a(x_i-x_j)=km a(xixj)=km,又因为 ( x i − x j ) = 0̸ (x_i-x_j)=\not 0 (xixj)=0 a a a m m m互质,所以等式恒不成立。证毕。

引理2: ∀ i ∈ [ 1 , φ ( m ) ] , g c d ( p i , m ) = 1 \forall i\in [1,\varphi(m)],gcd(p_i,m)=1 i[1,φ(m)],gcd(pi,m)=1

使用显然法,因为 p i = a x i p_i=ax_i pi=axi g c d ( a , m ) = 1 , g c d ( x i , m ) = 1 gcd(a,m)=1,gcd(x_i,m)=1 gcd(a,m)=1,gcd(xi,m)=1,所以 g c d ( p i , m ) = 1 gcd(p_i,m)=1 gcd(pi,m)=1

由此可知 { x 1 , . . . x φ ( m ) } = { p 1    m o d    m , . . . , p φ ( m )    m o d    m } \{x_1,...x_{\varphi(m)}\}=\{p_1\;mod\;m,...,p_{\varphi(m)}\;mod\;m\} {x1,...xφ(m)}={p1modm,...,pφ(m)modm}因为两个集合中的元素都与 m m m互质,且在 [ 1 , m ] [1,m] [1,m]中不存在集合之外的数与m互质,所以一个 p i    m o d    m p_i\;mod\;m pimodm一定能找到一个 x j x_j xj与他相等。

所以 ∏ x i ≡ ∏ p i ( m o d    m ) \prod x_i\equiv \prod p_i(mod\;m) xipi(modm)两边同除 ∏ x i \prod x_i xi,得到 a φ ( m ) ≡ 1 ( m o d    m ) a^{\varphi(m)}\equiv1(mod\;m) aφ(m)1(modm)

证毕。

二、

拓展欧拉定理多讨论了 a a a m m m不互质的情况,

a c = { a c    m o d    φ ( m ) , g c d ( a , m ) = 1 a c , g c d ( a , m ) = 1̸ , c < φ ( m ) a c    m o d    φ ( m ) + φ ( m ) , g c d ( a , m ) = 1̸ , c ≥ φ ( m ) a^c=\left\{ \begin{aligned} &a^{c\;mod\;\varphi(m)}, &gcd(a,m)=1 \\ &a^c,&gcd(a,m)=\not 1,c < \varphi(m) \\ &a^{c\;mod\;\varphi(m)+\varphi(m)},&gcd(a, m)=\not1,c \ge \varphi(m) \end{aligned} \right. ac=acmodφ(m),ac,acmodφ(m)+φ(m),gcd(a,m)=1gcd(a,m)=1,c<φ(m)gcd(a,m)=1,cφ(m)

下面证明 a c = a c    m o d    φ ( m ) + φ ( m ) , g c d ( a , m ) = 1̸ , c ≥ φ ( m ) a^c=a^{c\;mod\;\varphi(m)+\varphi(m)},gcd(a, m)=\not1,c \ge \varphi(m) ac=acmodφ(m)+φ(m),gcd(a,m)=1,cφ(m)

引理1:

∀ p ∈ P , x ≤ φ ( p x ) \forall p\in \mathbb{P},x\le \varphi(p^x) pP,xφ(px)

首先, φ ( p x ) = ( p − 1 ) p x − 1 \varphi(p^x)=(p-1)p^{x-1} φ(px)=(p1)px1

p = 2 p=2 p=2时,使用数学归纳法, x = 1 x=1 x=1时等式左右都为1,在 x > 1 x>1 x>1时,x每增加1,不等式左边加1,右边乘2(加上右边的数),因为满足右边的数大于等于1,所以不等式仍旧成立。

p > 2 p>2 p>2时, x ≤ 2 x − 1 ≤ ( p − 1 ) p x − 1 x\le 2^{x-1}\le (p-1)p^{x-1} x2x1(p1)px1,成立。

证毕。

引理2:

对于任意质数p满足 p c = p c + φ ( m ) , p ∣ m , c ≥ φ ( m ) p^c=p^{c+\varphi(m)},p|m,c \ge \varphi(m) pc=pc+φ(m),pm,cφ(m)

m = s ⋅ p k , g c d ( s , p ) = 1 m=s\cdot p^k,gcd(s,p)=1 m=spk,gcd(s,p)=1,首先由欧拉定理得 p φ ( s ) ≡ 1 ( m o d    s ) p^{\varphi(s)}\equiv1(mod\;s) pφ(s)1(mods)由欧拉函数定义式可知 φ ( s ) ∣ φ ( m ) \varphi(s)|\varphi(m) φ(s)φ(m),所以 p φ ( m ) ≡ 1 ( m o d    s ) p^{\varphi(m)}\equiv1(mod\;s) pφ(m)1(mods)

由同余的性质,两边同乘 p k p^k pk p φ ( m ) + k ≡ p k ( m o d    m ) p^{\varphi(m)+k}\equiv p^k(mod\;m) pφ(m)+kpk(modm)

因为 c ≥ φ ( m ) ≥ k c\ge \varphi(m) \ge k cφ(m)k所以 p c = p c − k p k = p c + φ ( m ) , p ∣ m , c ≥ φ ( m ) p^c=p^{c-k}p^k=p^{c+\varphi(m)},p|m,c \ge \varphi(m) pc=pckpk=pc+φ(m),pm,cφ(m)

由引理2可知, p c ≡ p c    m o d    φ ( m ) + φ ( m ) , p ∣ m , c ≥ φ ( m ) p^c\equiv p^{c\;mod\;\varphi(m)+\varphi(m)},p|m,c \ge \varphi(m) pcpcmodφ(m)+φ(m),pm,cφ(m)

随后利用同余的性质和唯一分解定理,可以证得 a c = a c    m o d    φ ( m ) + φ ( m ) , g c d ( a , m ) = 1̸ , c ≥ φ ( m ) a^c=a^{c\;mod\;\varphi(m)+\varphi(m)},gcd(a, m)=\not1,c \ge \varphi(m) ac=acmodφ(m)+φ(m),gcd(a,m)=1,cφ(m)

乘法逆元的三种求法

卡特兰数

斯特林数

原根和指标

BSGS和拓展BSGS

用于求形如 a x ≡ b ( m o d    p ) a^x\equiv b(mod \; p) axb(modp)的高次同余方程

思想很简单,利用分块,把 x x x看成 x = p ∗ i − j x=\sqrt{p}*i-j x=p ij,然后式子变成这个样子 a p ∗ i ≡ b ∗ a j ( m o d    p ) a^{\sqrt{p}*i}\equiv b*a^j(mod\; p) ap ibaj(modp)

但是假如 a a a p p p不互质的话,由下面那个式子并不能推出上面那个式子,举个简单的例子: 2 ≡ 6 ( m o d    4 ) 1 ≡ 3̸ ( m o d    4 ) 2\equiv 6(mod \; 4) \\ 1\equiv\not 3(mod \; 4) 26(mod4)13(mod4)

所以我们需要除掉 a a a p p p的公约数来使 a a a p p p互质,这就是ex_BSGS, a k ∏ g i a x ≡ b ∏ g i ( m o d    b ∏ g i ) \frac{a^k}{\prod g_i}a^x\equiv \frac{b}{\prod g_i}(mod \; \frac{b}{\prod g_i}) giakaxgib(modgib)

好像也就只能求这么一个式子,简直太没用了

某次课的笔记

g c d ( a , b ) = ( a , b ) gcd(a, b) = (a, b) gcd(a,b)=(a,b)

l c m ( a , b ) = [ a , b ] lcm(a, b) = [a, b] lcm(a,b)=[a,b]

b ≤ a , a % b ≤ a / 2 b \le a , a \% b \le a / 2 ba,a%ba/2

唯一分解定理

同余性质:

弱化 a ≡ b ( m o d    m ) , n ∣ m , ∴ a ≡ b ( m o d    n ) a \equiv b(mod \; m), n|m, \therefore a \equiv b(mod \; n) ab(modm),nm,ab(modn)

除法 a c ≡ b c ( m o d    c ) , a ≡ b ( m o d    c / g c d ( c , m ) ) ac \equiv bc (mod \; c), a \equiv b (mod \; c/gcd(c, m)) acbc(modc),ab(modc/gcd(c,m))

中国剩余定理

{ x ≡ a 1 ( m o d    m 1 ) x ≡ a 2 ( m o d    m 2 ) … x ≡ a n ( m o d    m n ) \begin{cases}x \equiv a_1 (mod \; m_1) \\ x \equiv a_2 (mod \; m_2) \\ \dots \\ x \equiv a_n (mod \; m_n)\end{cases} xa1(modm1)xa2(modm2)xan(modmn)

M = ∏ m i M i = M / m i t i ≡ M i − 1 ( m o d    m i ) M = \prod m_i \\ M_i = M/m_i \\ t_i\equiv M_i^{-1}(mod \; m_i) M=miMi=M/mitiMi1(modmi)
$$

拓展中国剩余定理

费马小定理

欧拉函数 ϕ ( n ) = n ∗ ∏ ( p i − 1 ) / p i \phi(n)=n*\prod(p_i-1)/p_i ϕ(n)=n(pi1)/pi

积性函数 ϕ ( n m ) = ϕ ( n ) ϕ ( m ) , ( g c d ( n , m ) = 1 ) \phi(nm)=\phi(n)\phi(m),(gcd(n,m)=1) ϕ(nm)=ϕ(n)ϕ(m),(gcd(n,m)=1)

线性筛算 ϕ \phi ϕ函数

欧拉定理 g c d ( a , m ) = 1 , a ϕ ( m ) ≡ 1 ( m o d    m ) gcd(a, m) =1,a^{\phi(m)}\equiv 1(mod \; m) gcd(a,m)=1,aϕ(m)1(modm)

拓展欧几里得

线性方程组一般解法
{ x ≡ a 1 ( m o d    m 1 ) x ≡ a 2 ( m o d    m 2 ) \begin{cases}x \equiv a_1 (mod \; m_1) \\ x \equiv a_2 (mod \; m_2) \end{cases} {xa1(modm1)xa2(modm2)

防爆LL的快速幂式乘法

n 1 + n 2 + ⋯ + n n = O ( n l n ( n ) ) \frac{n}{1}+\frac{n}{2}+\dots+\frac{n}{n}=O(n ln(n)) 1n+2n++nn=O(nln(n))

[NOI2015]寿司晚宴

dirichlet卷积

( f ∗ g ) ( n ) = ∑ d ∣ n f ( d ) g ( n d ) (f*g)(n)=\sum_{d|n} f(d)g(\frac{n}{d}) (fg)(n)=dnf(d)g(dn)

常见数论函数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值