1818 字
5 分钟
数论基础学习
2025-01-20

基础#

更简单的就不说了。

a. 逆元#

定义a.1:满足 ax1(modp)ax \equiv 1 \pmod pxx 称为 aa 的逆元

推论a.1.1:当满足 gcd(a,p)=1\gcd(a,p) = 1 时,逆元存在。

可用费马小定理或 exgcd 求解。

b. 积性函数#

定义b.1:在数论中,若函数 f(n)f(n) 满足 f(1)=1f(1)=1,且 f(xy)=f(x)f(y)f(xy)=f(x)f(y) 对任意互质的 x,yNx, y \in\mathbf{N}^* 都成立,则 f(n)f(n) 为 积性函数。

定义b.2:在数论中,若函数 f(n)f(n) 满足 f(1)=1f(1)=1f(xy)=f(x)f(y)f(xy)=f(x)f(y) 对任意的 x,yNx, y \in\mathbf{N}^* 都成立,则 f(n)f(n) 为 完全积性函数。

  • 常见积性函数:φ,μ\varphi,\mu

  • 完全积性函数:id(id(n)=n),I(I(n)=1),ϵ(ϵ(n)=[n=1])id(id(n)=n),I(I(n)=1),\epsilon(\epsilon(n)=[n=1])

b.1. 性质#

  • 性质b.1.1:若 f(x)f(x) 为积性函数,那么 f(xp),fp(x)f(x^p),f^p(x) 也为积性函数。

  • 性质b.1.2:若 f(x),g(x)f(x),g(x) 为积性函数,那么 f(x)g(x),h(x)=dxf(x)g(xd)f(x)g(x),h(x)=\sum_{d|x}f(x)g(\frac{x}{d}) 也为积性函数。

c. 迪利克雷卷积#

定义c.1:(fg)(x)=dxf(d)g(xd)(f*g)(x)=\sum_{d|x}f(d)g(\frac{x}{d})

推论c.2:若 f(x),g(x)f(x),g(x) 为积性函数,那么 fgf*g 为积性函数。

推论c.2:若 f(x),g(x)f(x),g(x) 为完全积性函数,那么 fgf*g 为完全积性函数。

推论c.3:fh=gh    fgf*h=g*h \iff f * g

  • fϵ=ff*\epsilon=f

  • μI=ϵ\mu * I=\epsilon(莫比乌斯反演)

  • φI=id\varphi * I = id(欧拉反演)

  • μid=φ\mu * id = \varphi(综上可证)


——qwq

道阻且长

1. 费马小定理&欧拉定理#

1.1. 费马小定理#

定理1.1.1:当存在整数 aa 和质数 pp 时,那么: apa(modp)a^p \equiv a\pmod p

定理1.1.2:当整数 aa 和质数 pp 并且 gcd(a,p)=1\gcd(a,p)=1 时,那么: ap11(modp)a^{p - 1} \equiv 1\pmod p

推论1.1.3:ababmod(p1)(modp)a^{b} \equiv a^{b \bmod (p-1)}\pmod p。读者自证不难。

证明1.1:oi-wiki.

看下文可以知道,费马小定理是欧拉定理的特殊情况。

1.2. 欧拉定理#

定义1.2.1:当 a,mZa, m \in \mathbb{Z} ,且 gcd(a,m)=1\operatorname{gcd}(a, m)=1 时有:aφ(m)1(modm)a^{\varphi(m)} \equiv 1\pmod m

证明1.2.1:https://zhuanlan.zhihu.com/p/452185813

这里 φ(x)\varphi(x) 是数论中的欧拉函数。1^{*1}

1^{*1}:详见 4.1。

推论1.2.2:ababmodφ(m)(modm)a^{b} \equiv a^{b \bmod \varphi(m)}\pmod m

1.2.4 阶#

定义1.2.4.1:若存在最小非负整数xx满足 ax1(modm)a^x \equiv 1 \pmod m,则称 xxaamm 的阶,记为 δm(a)\delta_m(a)。 根据欧拉定理,显然要满足 gcd(a,m)=1\gcd(a,m)=1

定理1.2.4.2:ax1(modm)a^x \equiv 1\pmod m,则δm(a)x\delta_m(a)|x

证明1.2.4.2:设 x=qd+rx=qd+r,其中 0r<δm(a)0\le r < \delta_m(a),由于 δm(a)\delta_m(a) 最小,所以 q1q\ge 1。所以 arar(aδm(a))qaqδm(a)+r1(modm)a^r\equiv a^r (a^{\delta_m(a)})^q \equiv a^{q\delta_m(a)+r} \equiv 1 \pmod m

于是rr只能为00,得证。

定理1.2.4.3:a,a2,...,aδm(a)a,a^2,...,a^{\delta_m(a)}mm 意义下两两不同余。

证明1.2.4.3:考虑反证,假设存在两个数 iji \neq j ,且 aiaj(modm)a^{i} \equiv a^{j}(\bmod m) ,则有 aij1(modm)a^{|i-j|} \equiv 1(\bmod m) .但是显然的有:0<ij<δm(a)0<|i-j|<\delta_{m}(a),这与阶的最小性矛盾,故原命题成立。

所以当 apaq(modm)a^p\equiv a^q \pmod m 时,pq(modδm(a))p\equiv q \pmod {\delta_m(a)}

定理1.2.4.4:a,ba,b 为整数,那么 gcd(δm(a),δm(b))=1\gcd(\delta_m(a),\delta_m(b))=1 的充要条件是 δm(ab)=δm(a)δm(b)\delta_m(ab)=\delta_m(a)\delta_m(b)

证明1.2.4.4:不会。

1.2.5 原根#

定义1.2.5.1:满足δm(a)=φ(m)\delta_m(a)=\varphi(m)aa,称 aa 为模 mm 的原根。

原根个数:φ(φ(m))\varphi(\varphi(m))

原根判定:设 φ(m)\varphi(m) 的质因数为 p1,...psp_1,...p_{s},那么 ggmm 原根的充要条件是:对于任意 pip_i,满足 gφ(m)pi≢1(modm)g^{\frac{\varphi(m)}{p_i}}\not\equiv 1 \pmod m

证明:充分性显然。必要性不会

mm 存在原根,当且仅当 m=2,4m=2,4m=pu,2pum=p^u,2p^u,其中 uu 为大于 22 的质数。 证明不会。

1.3. 扩展欧拉定理#

定义1.3.1:当 a,mZa, m \in \mathbb{Z} 时有:

ab{ab,b<φ(m)abmodφ(m)+φ(m),bφ(m)(modm)a^{b} \equiv\left\{\begin{array}{cl} a^{b} & , b<\varphi(m) \\ a^{b \bmod \varphi(m)+\varphi(m)} & , b \ge \varphi(m) \end{array}\pmod m \right.

2. 裴蜀定理#

定义2.1:p,qp,q 非零整数,则对于任意整数 a,ba,b 使得 gcd(p,q)pa+pb\gcd(p,q)|pa+pb,存在整数 a,ba,b 使得 pa+pb=gcd(p,q)pa+pb=\gcd(p,q)

推广2.1:多个数也成立。

推论2.2:若 p,qp,q 互质,则存在整数 a,ba,b 使得 pa+qb=1pa+qb=1

证明2.2:设 pa+qb=mpa+qb=m,其中 mm 为可能的最小正整数。即证 m=1    mp,mqm=1\iff m|p,m|q

假设不成立,则 p=nm+r(0<r<m)p=nm+r(0<r<m),可得 r=pnm=pn(pa+qb)=p(1na)+q(nb)r=p-nm=p-n(pa+qb)=p(1-na)+q(-nb)。由于 1na,nb1-na,-nb 为整数,所以 rr 为比 mm 更小的正整数,与 mm 为可能的最小正整数不符,所以假设不成立,m=1m=1

3. 扩展欧几里得算法#

扩展欧几里得算法常用于求 ax+by=gcd(a,b)ax+by=\gcd(a,b) 的可行解。

以下是算法原理。

ax1+by1=gcd(a,b)ax_1+by_1=\gcd(a,b)

bx2+(amodb)y2=gcd(b,amodb)bx_2+(a\bmod b)y_2=\gcd(b,a\bmod b)

由欧拉定理(gcd(a,b)=gcd(b,amodb)\gcd(a,b)=\gcd(b , a \bmod b))可得:

ax1+by1=bx2+(amodb)y2ax_1+by_1=bx_2+(a\bmod b)y_2

根据模的定义转换下,得:

ax1+by1=bx2+(aabb)y2ax_1+by_1=bx_2+(a - \lfloor \dfrac{a}{b} \rfloor b)y_2

再转换。

ax1+by1=ay2+b(x2aby2)ax_1+by_1=ay_2+b(x_2- \lfloor \dfrac{a}{b} \rfloor y_2)

现在,x1,y1x_1,y_1 可以通过 x2,y2x_2,y_2 来求了:

{x1=y2y1=x2aby2\begin{cases} x_1 = y_2 \\\\ y1 = x_2- \lfloor \dfrac{a}{b} \rfloor y_2 \end{cases}

x2,y2x_2,y_2 可以通过 x3,y3x_3,y_3 来求,而 x3,y3x_3,y_3 可以通过 x4,y4x_4,y_4 来求…

很容易想到,递归。

我们把 ax1(modp)ax \equiv 1 \pmod p 转换一下,可得:

ax+py=1ax + py = 1

用扩展欧几里得算法求出 x,yx , yxx 就是 aa 在模 pp 意义下的逆元。

int exgcd(int a , int b){ //返回值是 gcd(a,b)
if(b == 0){
x = 1 , y = 0;
return a;
}
int ret = exgcd(b , a % b);
int tmp = x;
x = y;
y = tmp - (a / b) * y;
return ret;
}
inline pair <ll , ll> exgcd(ll a , ll b){ //不要gcd返回值
if(b == 0) return make_pair(1 , 0);
pair <ll , ll> ret = exgcd(b , a % b);
return make_pair(ret.second , ret.first - (a / b) * ret.second);
}

4. 欧拉函数#

4.1定义:对于正整数 nn。欧拉函数是小于 nn 的正整数中与 nn 互质的数的个数。表示为 φ(n)\varphi(n)

其中欧拉函数是积性函数。笔者证明很难。

可以质因数分解来求。

inline int phi(int x){
int ret = x;
for(int i = 2;i * i <= x;i++) if(x % i == 0){
ret -= ret / i;
while(x % i == 0) x /= i;
}
if(x > 1) ret -= ret / x;
return x;
}

4.2. 性质#

  • 4.2.1:设 x=ypix = y * p_i

    x,yx,y 均有质因子 pip_i 时,φ(x)=φ(y)pi\varphi(x) = \varphi(y) * p_i

    否则 φ(x)=φ(y)(pi1)\varphi(x) = \varphi(y) * (p_i - 1)

    证明:

可通过其,用线性筛来求。

int ppp[500005] , phi[500005] , cnt;
bool vis[10000005];
inline void init(){
phi[1] = 1;
for(int i = 2;i <= 10000000;i++){
if(!vis[i]) phi[i] = i - 1 , ppp[++cnt] = i;
for(int j = 1;j <= cnt && i * ppp[j] <= 10000000;j++){
p[i * ppp[j]] = 1;
if(i % ppp[j] == 0){
phi[i * ppp[j]] = phi[i] * ppp[j];
break;
}
phi[i * ppp[j]] = phi[i] * phi[ppp[j]];
}
}
}
  • 4.2.2:gcd(x,y)=1,φ(xy)=φ(x)φ(y)\gcd(x,y)=1,\varphi(xy)=\varphi(x)\varphi(y)(积性函数)

  • 4.2.3:φ(pk)=pk1(p1)\varphi(p^k)=p^{k-1}(p-1)

  • 4.2.4:φ(x)=φ(pik)=npi1pi\varphi(x)=\displaystyle\prod\varphi(p_i^k)=n\displaystyle\prod\dfrac{p_i-1}{p_i}

5. 筛法#

5.1. 线性筛#

O(n)\mathcal O(n)

bool p[N];int ppp[N] , cnt;
void init(){
for(int i = 2;i <= N;i++){
if(!p[i]) ppp[++cnt] = i;
for(int j = 1;j <= cnt && ppp[j] * i <= N;j++){
p[ppp[j] * i] = 1;
if(i % ppp[j] == 0) break;
}
}
}

可以考虑预处理出比 ii 小的第一个质数,可以把分解质因数优化成 O(logn)O(\log n)

for(int i = 2;i <= N;i++){
if(!vis[i]) ppp[++cnt] = i , minp[i] = i;
for(int j = 1;j <= cnt && ppp[j] * i <= N;j++){
vis[ppp[j] * i] = 1;
minp[ppp[j] * i] = min(minp[ppp[j]] , minp[i]);
if(i % ppp[j] == 0) break;
}
}

积性函数基本可以用线性筛求。

5.2. 埃氏筛#

void init(){
qwq[1] = 1;
for(int i = 2;i <= n ;i++)
if(!qwq[i])
for(int j = i + i;j <= n;j += i)
qwq[j] = 1;
}

5.3. 杜教筛#

用于在非线性时间内求积性函数前缀和。

假如求 S(n)=i=1nf(i)S(n) = \sum_{i=1}^n f(i)

那么尝试找出一个合适的积性函数 gg。它们的迪利克雷卷积的前缀和为:

i=1n(fg)(i)=d=1ng(d)S(nd)\sum_{i=1}^n (f * g)(i)=\sum_{d=1}^n g(d)S(\lfloor \dfrac{n}{d} \rfloor)

那么 g(1)S(n)=i=1n(fg)(i)d=2ng(d)S(nd)g(1)S(n)=\sum_{i=1}^n (f * g)(i)-\sum_{d=2}^n g(d)S(\lfloor \dfrac{n}{d} \rfloor)

代码如下:

int GetSum(int n) { // 算 f 前缀和的函数
int ans = f_g_sum(n); // 算 f * g 的前缀和
for(int l = 2 , r;l <= n;l = r + 1){
r = n / (n / l);
ans -= (g_sum(r) - g_sum(l - 1)) * GetSum(n / l);// g_sum 是 g 的前缀和
}
return ans;
}

复杂度为 O(n34)O(n^{\frac{3}{4}})

6. 中国剩余定理#

常用于求

{xr1(modm1)xr2(modm2)...xrn(modmn)\begin{cases} x\equiv r_1 \pmod {m_1} \\ x\equiv r_2 \pmod {m_2} \\ ... \\ x\equiv r_n \pmod {m_n} \\ \end{cases}

的最小可行解。

6.1. 求解#

前提:mm 两两互质。

核心思路是把求出 nn 个辅助解 xix_i,每个 xix_i 满足:

{xi0(modm1)xi0(modm2)...xi1(modmi)...xi0(modmn)\begin{cases} x_i\equiv 0 \pmod {m_1} \\ x_i\equiv 0 \pmod {m_2} \\ ... \\ x_i\equiv 1 \pmod {m_i} \\ ...\\ x_i\equiv 0 \pmod {m_n} \\ \end{cases}

最后的可行解就是:rixi\sum r_i x_i

现在考虑求出每组 xix_i

对于 xix_i,设 m0m_0 为可以整除 xix_imm 的乘积,于是我们可以知道:xi=pm0=qmi1x_i=pm_0=qm_i-1

移项得:qmipm0=1qm_i-pm_0=1

因为 mi,m0m_i,m_0 互质,所以有解(裴蜀定理),然后方程可以用扩欧求解,或者看成逆元也行。

void exgcd(ll a , ll b){
if(b == 0){
x = 1 , y = 0;
return ;
}
exgcd(b , a % b);
ll tmp = x;
x = y;
y = tmp - (a / b) * y;
}
ll CRT(ll a[15] , ll m[15]){
ll M = 1;
for(int i = 1;i <= n;i++)
M *= m[i];
ll ret = 0;
for(int i = 1;i <= n;i++){
ll mmm = M / m[i];
exgcd(mmm , m[i]);
ll t = (x + m[i]) % m[i];
ret += mmm * t * a[i] % M;
ret %= M;
}
return (ret + M) % M;
}

6.2. exCRT#

处理 mm 不互质的情况。

可以考虑合并两个同余式子。有:

{xr1(modm1)xr2(modm2)\begin{cases} x\equiv r_1 \pmod {m_1} \\ x\equiv r_2 \pmod {m_2} \\ \end{cases}

那么:x=pm1+r1=qm2+r2x=pm_1+r_1=qm_2+r_2,移项得 pm1qm2=r2r1pm_1-qm_2=r_2-r_1

d=gcd(m1,m2)d=\gcd(m_1,m_2),我们可以用 exgcd 求出方程 am1d+bm2d=gcd(m1d,m2d)=1a\frac{m_1}{d}+b\frac{m_2}{d}=\gcd(\frac{m_1}{d},\frac{m_2}{d})=1 的一组解,那么:

{p=(r2r1)adq=(r1r2)bd\begin{cases} p=\dfrac{(r_2-r_1)a}{d} \\ q=\dfrac{(r_1-r_2)b}{d} \\ \end{cases}

于是 x(r2r1)adm1+r1(modlcm(m1,m2))x\equiv \dfrac{(r_2-r_1)a}{d} m_1+r_1 \pmod {\text{lcm}(m_1,m_2)},然后一个个合并直到剩下一个即可。

ll m0 , r0; scanf("%lld%lld" , &m0 , &r0); n--;
while(n--){
ll m , r; scanf("%lld%lld" , &m , &r);
ll t = lcm(m0 , m);
ll d = __gcd(m0 , m);
ll x = (exgcd(m0 / d , m / d).first + t) % t;
r0 = (r0 + mul(mul((r - r0) / d , x , t) , m0 , t)) % t;
m0 = t; //mul(a,b,MOD) 慢速乘
r0 = (r0 + m0) % m0;
}

7. 反演#

7.1. 莫比乌斯函数#

定义7.1.1:μ(n)={1,n=10,p,n0(modp2)(1)k(k 是 n 的质因子个数 )\mu(n)=\left\{\begin{array}{c}1, n=1\\0, \exists p, n \equiv 0(\bmod p^2) \\(-1)^{k}(k \text { 是 } n \text { 的质因子个数 })\end{array}\right.

推论7.1.2:dnμ(d)=[n=1]    μI=ϵ\sum_{d \mid n} \mu(d)=[n=1] \iff \mu * I=\epsilon

莫比乌斯函数为积性函数。

7.1.3. 莫比乌斯变换#

  • 形式a:f(x)=dng(d)f(x)=\sum_{d|n}g(d),那么有 g(n)=dnμ(d)f(nd)g(n)=\sum_{d|n}\mu(d)f(\frac{n}{d})

证明a:已知 f=gIf=g*I,欲证 g=fμg=f*\mu fμ=gIμ=gϵ=gf*\mu=g*I*\mu=g*\epsilon=g 证毕。

  • 形式b:f(x)=ndg(d)f(x)=\sum_{n|d}g(d),那么有 g(n)=ndμ(d)f(dn)g(n)=\sum_{n|d}\mu(d)f(\frac{d}{n})

7.2. 欧拉反演#

n=dnφ(d)n=\sum_{d|n} \varphi(d)

7.3. 反演技巧#

构造函数强行反演:

假如求 f(gcd(i,j))\sum \sum f(\gcd(i,j))

那么提前求出所有 f(i)f(i)

再令 f(i)=f(i)di&dif(d)f(i)=f(i)-\sum_{d|i \& d \not= i} f(d)

于是 f(i)=dif(d)f(i)=\sum_{d|i} f(d)

下面给出模板 O(nlnn)O(n \ln n)

for(int i = 1;i <= N;i++) f[i] = xx; //预处理f
for(int i = 1;i <= N;i++) for(int j = i + i;j <= N;j += i)
f[j] -= f[i];

例题:

P4449 于神之怒加强版

gcd(i,j)k\sum \sum \gcd(i,j)^k

那么设 f(x)=xkf(x)=x^k

所以 f(gcd(i,j))\sum \sum f(\gcd(i,j))

反演 dgcd(i,j)f(d)\sum \sum \sum_{d|\gcd(i,j)} f(d)

d=1nf(d)ndnd\sum_{d=1}^nf(d) \lfloor \dfrac{n}{d}\rfloor \lfloor \dfrac{n}{d}\rfloor

预处理 ff 前缀和,数列分块求解。

扩展:

不是求和怎么办??

同理

f(i)=f(i)di&dif(d)f(i)=\dfrac{f(i)}{\prod_{d|i \& d \not= i} f(d)}

于是 f(i)=dif(d)f(i)=\prod_{d|i} f(d)

杂项#

a. 排列组合#

定义a.1:AnmA_n^m 表示从 nn 里选 mm 个进行排列的方案数。

定义a.2:Anm=n!(nm)!A_n^m = \dfrac{n!}{(n - m)!}

定义a.3:CnmC_n^m 表示从 nn 中选 mm 个(不考虑顺序)的方案数。

定义a.4:Cnm=AnmAmm=n!m!(nm)!C_n^m = \dfrac{A_n^m}{A_m^m} = \dfrac{n!}{m!(n - m)!}

推论a.5:Cnm=Cn1m+Cn1m1C_n^m = C_{n - 1}^m + C_{n - 1}^{m - 1}。不难发现,此乃杨辉三角。

理论到实际#

zbj 问题#

每个数值域为 [1,m][1,m]nn 个数单增的数量为 CmnC_m^n 不降的是 Cn+m1n1C_{n+m-1}^{n-1}

nn 个 zbj 放到 mm 个箱子中,每个箱子至少一个,Cn1m1C_{n - 1}^{m-1}

nn 个 zbj 放到 mm 个箱子中,可以先每个箱子放一个,所以Cn+m1m1C_{n+m-1}^{m-1}

数论分块#

用于求 i=1nni\displaystyle\sum_{i=1}^{n} \lfloor \dfrac{n}{i}\rfloor

for(int l = 1 , r;l <= n;l = r + 1){
r = n / (n / l);
ret += (r - l + 1) * (n / l);
}

斐波那契数列#

定义#

F0=0,F1=1F_0=0,F_1=1Fn=Fn1+Fn2(1)F_n=F_{n-1}+F_{n-2} \tag{1}

Fn=15[(1+52)n(152)n]F_n=\dfrac{1}{\sqrt{5}}\bigg[\bigg(\dfrac{1+\sqrt{5}}{2}\bigg)^n - \bigg(\dfrac{1-\sqrt{5}}{2}\bigg)^n \bigg]

推导#

FnλFn1=μ(Fn1λFn2)(2)F_n-\lambda F_{n-1}=\mu(F_{n-1}-\lambda F_{n-2}) \tag{2}Fn=(μ+λ)Fn1μλFn2F_n=(\mu+\lambda) F_{n-1}-\mu\lambda F_{n-2}

根据 (1)(1) 得:

{μ+λ=1μλ=1\begin{cases} \mu+\lambda&=1 \\ \mu \lambda&=-1 \end{cases}

解得:

{μ=1+52λ=152or{μ=152λ=1+52\begin{cases} \mu=\frac{1+\sqrt{5}}{2} \\ \lambda=\frac{1-\sqrt{5}}{2} \end{cases} \quad or \quad \begin{cases} \mu=\frac{1-\sqrt{5}}{2} \\ \lambda=\frac{1+\sqrt{5}}{2} \end{cases}

分别带回 (2)(2)

{Fn152Fn1=1+52(Fn1152Fn2)Fn1+52Fn1=152(Fn11+52Fn2)\begin{cases} F_n-\frac{1-\sqrt{5}}{2} F_{n-1}=\frac{1+\sqrt{5}}{2}(F_{n-1}-\frac{1-\sqrt{5}}{2} F_{n-2})\\ F_n-\frac{1+\sqrt{5}}{2} F_{n-1}=\frac{1-\sqrt{5}}{2}(F_{n-1}-\frac{1+\sqrt{5}}{2} F_{n-2}) \end{cases}

显然数列 {FnλFn1}\{F_n-\lambda F_{n-1}\} 为等比数列,公差为 1+52\frac{1+\sqrt{5}}{2}152\frac{1-\sqrt{5}}{2}。则:

{Fn152Fn1=(F2152F1)(1+52)n1(3)Fn1+52Fn1=(F21+52F1)(152)n1(4)\begin{cases} F_n-\frac{1-\sqrt{5}}{2} F_{n-1} =\bigg(F_2-\frac{1-\sqrt{5}}{2} F_{1}\bigg)\bigg(\dfrac{1+\sqrt{5}}{2}\bigg)^{n-1} \quad&(3) \\ F_n-\frac{1+\sqrt{5}}{2} F_{n-1} =\bigg(F_2-\frac{1+\sqrt{5}}{2} F_{1}\bigg)\bigg(\dfrac{1-\sqrt{5}}{2}\bigg)^{n-1} \quad&(4) \end{cases}

然后

1+52×(3)152×(4)\dfrac{1+\sqrt{5}}{2} \times (3)-\dfrac{1-\sqrt{5}}{2} \times (4)

5Fn=(1+52)n(152)n\sqrt{5}F_n=\bigg(\dfrac{1+\sqrt{5}}{2}\bigg)^{n}-\bigg(\dfrac{1-\sqrt{5}}{2}\bigg)^{n}Fn=15[(1+52)n(152)n]F_n=\dfrac{1}{\sqrt{5}}\bigg[\bigg(\dfrac{1+\sqrt{5}}{2}\bigg)^{n}-\bigg(\dfrac{1-\sqrt{5}}{2}\bigg)^{n}\bigg]

性质#

由上可以发现:

{μ=1ϕ=1+52λ=ϕ=152or{μ=ϕ=152λ=1ϕ=1+52\begin{cases} \mu=\frac{1}{\phi}=\frac{1+\sqrt{5}}{2} \\ \lambda=\phi=\frac{1-\sqrt{5}}{2} \end{cases} \quad or \quad \begin{cases} \mu=\phi=\frac{1-\sqrt{5}}{2} \\ \lambda=\frac{1}{\phi}=\frac{1+\sqrt{5}}{2} \end{cases}

ϕ\phi 指黄金分割比 512\dfrac{\sqrt{5}-1}{2}

所以通项公式可以写成:

Fn=15(ϕnϕn)F_n=\dfrac{1}{\sqrt{5}}\bigg(\phi^{-n}-\phi^{n}\bigg)

时间复杂度相关#

代换法#

T(n)=2T(n2)+nT(n)=2T(\lfloor \frac{n}{2} \rfloor)+n

直觉

T(n)cnlog2nT(n)\le c n \log_2 n

所以

T(n2)cn2log2n2T(\lfloor \frac{n}{2} \rfloor)\le c \lfloor \frac{n}{2} \rfloor \log_2 \lfloor \frac{n}{2} \rfloor

带回原式

T(n)2cn2log2n2+ncnlog2n2+n=cnlog2ncn+ncnlog2nT(n)\le 2c \lfloor \frac{n}{2} \rfloor \log_2 \lfloor \frac{n}{2} \rfloor+n\le cn \log_2 \frac{n}{2} +n\\ =cn\log_2 n - cn + n \le cn\log_2 n

c1c\ge 1 时成立。

主公式#

内容#

证明#

小公式#

(a+b)3=(a2+ab)(a+b)+(ab+b2)(a+b)=a3+b3+3a2b+3ab2(a+b)^3 =(a^2+ab)(a+b)+(ab+b^2)(a+b)=a^3+b^3+3a^2b+3ab^2

(ab)3=a3b33a2b+3ab2(a-b)^3 =a^3-b^3-3a^2b+3ab^2

a3+b3=(a+b)(a2ab+b2)a^3+b^3=(a+b)(a^2-ab+b^2)

a3b3=(ab)(a2+ab+b2)a^3-b^3=(a-b)(a^2+ab+b^2)

(a+b)n=k=0nCknxnkyk=k=0nCknxkynk(a+b)^n = \displaystyle\sum_{k = 0}^nC^n_kx^{n-k}y^k = \displaystyle\sum_{k = 0}^nC^n_k x^{k}y^{n-k}

i=1ni2=n(n+1)(2n+1)6\displaystyle\sum_{i=1}^n i^2=\dfrac{n(n+1)(2n+1)}{6}

i=1ni3=(n+1)2n24\displaystyle\sum_{i=1}^n i^3=\dfrac{(n + 1)^2n^2}{4}

nn 是正奇数时

an+bn=(a+b)(an1an2b+an3b2...abn2+bn1)a^n+b^n=(a+b)(a^{n-1}-a^{n-2}b+a^{n-3}b^2-...-ab^{n-2}+b^{n-1})

对于 f(x)=anxn+an1xn1+...+a1x+a0f(x)=a_nx^n+a_{n-1}x^{n-1}+...+a_1x+a_0

f(c)=0f(c)=0 时,设有理数根 c=pqc=\dfrac{p}{q}p,qp,q 互质)。

pFh7YGT.png xcx-cf(x)f(x) 时,余数是 f(c)f(c)

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

部分信息可能已经过时