浅说斐波那契数列

本文同步发布至 洛谷


斐波那契数列

作为世界上最神奇的数列之一,斐波那契数列与许许多多的数学知识有着关系。下面说几条经典的性质加证明。

我们先定义 f 0 = 0 f_0=0 f0=0 f 1 = 1 f_1=1 f1=1 f n = f n − 1 + f n − 2    ( n ≥ 2 ) f_n=f_{n-1}+f_{n-2}\ \ (n\ge 2) fn=fn1+fn2  (n2)。这个应该都会吧。

性质1:可以用矩阵快速幂或倍增求出第 n n n

首先讲一下什么是矩阵快速幂。

简单来说就是把快速幂的思想放在矩阵上,对于一个矩阵 A A A,它的 A n A^n An 也是可以拆分成 A n 2 × A n 2 A^{\frac{n}{2}}\times A^{\frac{n}{2}} A2n×A2n 的,也就是说可以进行 O ( log ⁡ n ) \cal O(\log n) O(logn) 级别的快速幂的。然后考虑一个基本矩阵 I I I(和快速幂中的 1 1 1 差不多),依次翻倍做快速幂。

然后我们再来考虑一下这个和斐波那契的关系。

从相邻的式子看起,我们先用一个二维向量 v \mathbf v v 来表示 [ f n f n − 1 ] \begin{bmatrix} f_n \\ f_{n-1}\end{bmatrix} [fnfn1],即 v n = [ f n f n − 1 ] \mathbf {v_n} = \begin{bmatrix} f_n\\f_{n-1}\end{bmatrix} vn=[fnfn1]。那么我们也可以写出 v n + 1 = [ f n + 1 f n ] = [ f n + f n − 1 f n ] \mathbf {v_{n+1}}=\begin{bmatrix} f_{n+1}\\f_n\end{bmatrix}=\begin{bmatrix} f_{n}+f_{n-1}\\f_n\end{bmatrix} vn+1=[fn+1fn]=[fn+fn1fn],思考二者的关系,发现可以乘 [ 1 1 1 0 ] \begin{bmatrix} 1&1\\1&0 \end{bmatrix} [1110] 进行转换,设这个矩阵为 A A A,则有 v n + 1 = v n × A \mathbf {v_{n+1}}=\mathbf {v_n}\times A vn+1=vn×A

因为矩阵可累乘,所以说 v n = A n − 1 × v 1 \mathbf {v_n}=A^{n-1}\times \mathbf v_1 vn=An1×v1,其中 v 1 = [ f 1 f 0 ] = [ 1 0 ] \mathbf {v_1}=\begin{bmatrix}f_1\\f_0 \end{bmatrix}=\begin{bmatrix}1\\0 \end{bmatrix} v1=[f1f0]=[10]。这个可以用数学归纳法证明,比较简单,省略。

  • n = 1 n=1 n=1 时,有 A 1 = [ 1 1 1 0 ] = [ F 2 F 1 F 1 F 0 ] = [ 1 1 1 0 ] A^1=\begin{bmatrix}1&1\\1&0\end{bmatrix} =\begin{bmatrix}F_2&F_1\\ F_1&F_0\end{bmatrix} =\begin{bmatrix}1&1\\1&0\end{bmatrix} A1=[1110]=[F2F1F1F0]=[1110] 成立。

  • 假设 A   n = [ F n + 1 F n F n F n − 1 ] A^{\,n}=\begin{bmatrix}F_{n+1}&F_n\\ F_n&F_{n-1}\end{bmatrix} An=[Fn+1FnFnFn1] 成立,考虑 n + 1 n+1 n+1,显然有

    A   n + 1 = A   n A = [ F n + 1 F n F n F n − 1 ] [ 1 1 1 0 ] = [ F n + 1 + F n F n + 1 F n + F n − 1 F n ] = [ F n + 2 F n + 1 F n + 1 F n ] A^{\,n+1}=A^{\,n}A =\begin{bmatrix}F_{n+1}&F_n\\ F_n&F_{n-1}\end{bmatrix} \begin{bmatrix}1&1\\1&0\end{bmatrix} =\begin{bmatrix} F_{n+1}+F_n & F_{n+1}\\ F_n+F_{n-1} & F_n \end{bmatrix} =\begin{bmatrix} F_{n+2} & F_{n+1}\\ F_{n+1} & F_n \end{bmatrix} An+1=AnA=[Fn+1FnFnFn1][1110]=[Fn+1+FnFn+Fn1Fn+1Fn]=[Fn+2Fn+1Fn+1Fn]

与命题形式一致,归纳完成。

由该恒等式就可以得到 F n = ( A   n ) 1 , 2 F_n=(A^{\,n})_{1,2} Fn=(An)1,2 F n = ( A n − 1 ) 0 F_n=(A^{n-1})_0 Fn=(An1)0

当我求出 A n A^n An A n − 1 A^{n-1} An1 的时候,我的第 n n n 项也就知道了,那么我们也就只要 log ⁡ n \log n logn 的时间就可以了。

#include <bits/stdc++。h>
#define int64 long long
const long long mod=1e9+7;//模数可选
using namespace std;

struct Matrix {
    long long a[2][2];
    Matrix() { memset(a, 0, sizeof(a)); }
};

Matrix mul(const Matrix &x, const Matrix &y) {
    Matrix res;
    for (int i = 0; i < 2; i++) {
        for (int j = 0; j < 2; j++) {
            __int128 sum = 0; // 防止溢出 (可选)
            for (int k = 0; k < 2; k++) {
                sum += (__int128)x。a[i][k] * y。a[k][j];
            }
            res。a[i][j] = sum % mod;
        }
    }
    return res;
}

// 矩阵快速幂
Matrix power(Matrix base, long long exp) {
    Matrix res;
    // 初始化为单位矩阵
    res。a[0][0] = res。a[1][1] = 1;
    while (exp > 0) {
        if (exp & 1) res = mul(res, base);
        base = mul(base, base);
        exp >>= 1;
    }
    return res;
}

// 求 Fibonacci(n)
long long fibonacci(long long n) {
    if (n == 0) return 0;
    Matrix fib;
    fib。a[0][0] = 1; fib。a[0][1] = 1;
    fib。a[1][0] = 1; fib。a[1][1] = 0;
    Matrix res = power(fib, n - 1); // 注意为 n-1 
    return res。a[0][0]; // F(n)
}

int main() {
    long long n;
    cin >> n;
    cout << fibonacci(n);
    return 0;
}
//可过luogu P1962

当然这个只是一种方法,还有另一种方法,不过需要我们观察一下。

A 2 k = ( A k ) 2   ⇒ [ F 2 k + 1 F 2 k F 2 k F 2 k − 1 ] = [ F k + 1 F k F k F k − 1 ] 2 = [ F k + 1 2 + F k 2 F k ( F k + 1 + F k − 1 ) F k ( F k + 1 + F k − 1 ) F k 2 + F k − 1 2 ] A^{2k}=(A^k)^2\,\Rightarrow \begin{bmatrix} F_{2k+1}& F_{2k}\\ F_{2k}&F_{2k-1} \end{bmatrix}=\begin{bmatrix} F_{k+1}& F_k\\F_k&F_{k-1} \end{bmatrix}^2= \begin{bmatrix} F_{k+1}^2+F_k^2 & F_k(F_{k+1}+F_{k-1}) \\ F_k(F_{k+1}+F_{k-1}) & F_k^2+F_{k-1}^2 \end{bmatrix} A2k=(Ak)2[F2k+1F2kF2kF2k1]=[Fk+1FkFkFk1]2=[Fk+12+Fk2Fk(Fk+1+Fk1)Fk(Fk+1+Fk1)Fk2+Fk12]

对比左上角和右上角,发现以下公式:

F 2 k + 1 = F k + 1 2 + F k 2 F 2 k = F k ( F k + 1 + F k − 1 ) = F k ( 2 F k + 1 − F k ) F_{2k+1}=F^2_{k+1}+F_k^2\\ F_{2k}=F_k(F_{k+1}+F_{k-1})=F_k(2F_{k+1}-F_k) F2k+1=Fk+12+Fk2F2k=Fk(Fk+1+Fk1)=Fk(2Fk+1Fk)

不能发现, F n F_n Fn 都可以被 F ⌊ n / 2 ⌋ F_{\lfloor n/2 \rfloor} Fn/2 F ⌊ n / 2 ⌋ + 1 F_{\lfloor n/2\rfloor+1} Fn/2+1 表示出来,那么就可以基于此进行二分操作,通过倍增的方式跳上去,时间复杂度也是 O ( log ⁡ n ) \cal O(\log n) O(logn) 的。

#include <bits/stdc++。h>
#define int64 long long 
using namespace std;
long long mod=1e9+7;

// 快速倍增法,返回 (F(n), F(n+1))
pair<int64,int64> fib_fast(int64 n) {
    if (n == 0) return {0, 1};
    auto p = fib_fast(n >> 1);
    int64 a = p。first;  // F(k)
    int64 b = p。second; // F(k+1)
    int64 c = ( (__int128)a * ((2 * b % mod - a + mod) % mod) ) % mod; // F(2k)
    int64 d = ( ((__int128)a * a) % mod + ((__int128)b * b) % mod ) % mod; // F(2k+1)
    if (n & 1) return {d, (c + d) % mod}; // (F(2k+1), F(2k+2))
    else return {c, d};                  // (F(2k), F(2k+1))
}

long long fibonacci(long long n) {
    return fib_fast(n)。first;
}

int main() {
    long long n;
    cin >> n;
    cout << fibonacci(n); 
    return 0;
}

性质2:斐波那契数列在对 P P P 取模的时候,循环节是 O ( P ) \cal O(P) O(P) 级别的

这个其实和 P i s a n o \cal Pisano Pisano 周期有关。

P i s a n o \cal Pisano Pisano 周期的定义是:斐波那契数列在模 P P P 的意义下是一个周期序列,这个最小周期长度记作 π ( P ) \pi (P) π(P)

Q 1 \cal Q1 Q1:为什么一定有循环节(任意模数 P P P)。

P r o o f Proof Proof

把斐波那契递推写成线性变换,设

v n = ( F n F n + 1 ) , A = ( 0 1 1 1 ) \mathbf{v}_n=\binom{F_n}{F_{n+1}},\qquad A=\begin{pmatrix}0&1\\ 1&1\end{pmatrix} vn=(Fn+1Fn),A=(0111)

v n + 1 = A v n \mathbf{v}_{n+1}=A\mathbf{v}_n vn+1=Avn(已经在性质 1 处详细已证明),从而

v n = A n v 0 , v 0 = ( F 0 F 1 ) = ( 0 1 ) \mathbf{v}_n=A^n\mathbf{v}_0,\quad \mathbf{v}_0=\binom{F_0}{F_1}=\binom{0}{1} vn=Anv0,v0=(F1F0)=(10)

在模 P P P 的意义下,一切都在环 Z / P Z \mathbb Z/P\mathbb Z Z/PZ 中进行,注意 det ⁡ A = − 1 \det A=-1 detA=1

对任意 P P P 都与 P P P 互素,因此 A A A 在模 P P P 下是可逆的(即 A ∈ G L 2 ( Z / P Z ) A\in \mathrm{GL}_2(\mathbb Z/P\mathbb Z) AGL2(Z/PZ))。

把态空间看成有限集合,有

Ω = { ( x , y ) ( m o d P ) } ( ∣ Ω ∣ = P 2 ) \Omega=\{(x,y)\pmod P\}\quad(|\Omega|=P^2) Ω={(x,y)(modP)}(∣Ω∣=P2)

考虑映射 T : ( x , y ) ↦ ( y , x + y ) T:(x,y)\mapsto (y,x+y) T:(x,y)(y,x+y) 就是乘以矩阵 A A A。因为 A A A 可逆, T T T双射。对有限集合上的双射,从某个起点出发的轨道一定是一个纯循环(不可能有“引入段”),并且首次重访的状态必定是起点本身。我们从 v 0 = ( 0 , 1 ) \mathbf{v}_0=(0,1) v0=(0,1) 出发,因此存在最小正整数 π ( P ) \pi(P) π(P) 使

v π ( P ) = v 0 ⟺ ( F π ( P ) , F π ( P ) + 1 ) ≡ ( 0 , 1 ) ( m o d P ) \mathbf{v}_{\pi(P)}=\mathbf{v}_0 \quad\Longleftrightarrow\quad (F_{\pi(P)},F_{\pi(P)+1})\equiv(0,1)\pmod P vπ(P)=v0(Fπ(P),Fπ(P)+1)(0,1)(modP),

这就是Pisano 周期,显然 π ( P ) ≤ P 2 \pi(P)\le P^2 π(P)P2 □ \square

一句话证明:周期存在,因为“状态双射 + 有限态空间 ⇒ \Rightarrow 必回到起点”,且映射可逆由 det ⁡ A = − 1 \det A=-1 detA=1 保证。

但是没人觉得上面这个可以用剩余系证明吗?

P r o o f Proof Proof

考虑设

s n ≡ ( F n ,    F n + 1 ) ( m o d P ) , n ≥ 0 \mathbf{s}_n \equiv (F_n,\;F_{n+1}) \pmod P,\qquad n\ge 0 sn(Fn,Fn+1)(modP),n0

把每个分量都取自模 P P P完全剩余系 { 0 , 1 , … , P − 1 } \{0,1,\dots,P-1\} {0,1,,P1}。于是所有可能的状态组成集合

Ω = { 0 , 1 , … , P − 1 } × { 0 , 1 , … , P − 1 } \Omega=\{0,1,\dots,P-1\}\times\{0,1,\dots,P-1\} Ω={0,1,,P1}×{0,1,,P1},

其大小为 ∣ Ω ∣ = P 2 |\Omega|=P^2 ∣Ω∣=P2

由斐波那契递推 F n + 2 = F n + 1 + F n F_{n+2}=F_{n+1}+F_n Fn+2=Fn+1+Fn 可定义确定性映射

T : Ω → Ω , T ( x , y ) = ( y ,    x + y )   (   m o d   P ) T:\Omega\to\Omega,\qquad T(x,y)=(y,\;x+y)\ (\bmod P) T:ΩΩ,T(x,y)=(y,x+y) (modP)

于是 s n + 1 = T ( s n ) \mathbf{s}_{n+1}=T(\mathbf{s}_n) sn+1=T(sn)

关键事实: T T T双射。确实,给定 ( x ′ , y ′ ) (x′,y′) (x,y),若 ( x , y ) (x,y) (x,y) 满足

T ( x , y ) = ( y ,    x + y ) ≡ ( x ′ , y ′ )   (   m o d   P ) T(x,y)=(y,\;x+y)\equiv(x',y')\ (\bmod P) T(x,y)=(y,x+y)(x,y) (modP),

则从第二个式子得 x ≡ y ′ − y x \equiv y'-y xyy,代回第一个式子得 y ≡ x ′ y\equiv x' yx。故唯一前驱为 ( x , y ) = ( y ′ − x ′ ,   x ′ ) (x,y)=(y'-x',\ x') (x,y)=(yx, x)。从而 T T T 既单又满。

因为 Ω \Omega Ω 有限且 T T T 是双射, Ω \Omega Ω 被分解为若干纯环路(每个点都在某个有限循环中),不存在“引入段”。起始状态为

s 0 = ( F 0 , F 1 ) = ( 0 , 1 ) \mathbf{s}_0=(F_0,F_1)=(0,1) s0=(F0,F1)=(0,1)

故存在最小正整数 π ( P ) \pi(P) π(P) 使 s π ( P ) = s 0 ⟺ ( F π ( P ) , F π ( P ) + 1 ) ≡ ( 0 , 1 ) ( m o d P ) \mathbf{s}_{\pi(P)}=\mathbf{s}_0\quad\Longleftrightarrow\quad (F_{\pi(P)},F_{\pi(P)+1})\equiv(0,1)\pmod P sπ(P)=s0(Fπ(P),Fπ(P)+1)(0,1)(modP),

这个不就是上面的那个式子吗?由于轨道位于大小为 P 2 P^2 P2 的集合中,必在至多 P 2 P^2 P2 步内回到起点,故 π ( P ) ≤ P 2 \pi(P)\le P^2 π(P)P2。证毕。。 □ \square

怎么感觉两个证明起来差不多呢?(doge

Q 2 \cal Q2 Q2:为什么素数模数 p p p 下: π ( p ) \pi(p) π(p) 整除 p − 1 p-1 p1 2 ( p + 1 ) 2(p+1) 2(p+1)

P r o o f Proof Proof

接下来我们默认 p p p 为素数。把模 p p p 的世界当作域 F p \mathbb F_p Fp

还有一个常用伴随矩阵

Q = ( 1 1 1 0 ) , ( F n + 1 F n ) = Q n ( 1 0 ) Q=\begin{pmatrix}1&1\\ 1&0\end{pmatrix},\qquad \binom{F_{n+1}}{F_n}=Q^n\binom{1}{0} Q=(1110),(FnFn+1)=Qn(01),

它与上面的 A A A 相似,结论等价,我们用 Q Q Q 便于与特征多项式对应。

F i r s t First First 考虑与周期的关系:

Q m = I Q^m=I Qm=I F p \mathbb F_p Fp,则对任意初始向量都周期 m 回到原点,特别地 π ( p ) ∣ m \pi(p)\mid m π(p)m。因此

π ( p )   ∣   ord ⁡ ( Q ) ( Q  在  G L 2 ( F p ) 中的阶 ) 。 \pi(p)\ \big|\ \operatorname{ord}(Q)\quad(\text{\(Q\) 在 }\mathrm{GL}_2(\mathbb F_p)\text{中的阶})。 π(p)   ord(Q)(Q  GL2(Fp)中的阶)

于是只需估计 ord ⁡ ( Q ) \operatorname{ord}(Q) ord(Q)

S e c o n d Second Second 特征多项式与两个情形:

Q Q Q 的特征多项式是

χ ( x ) = x 2 − x − 1 , Δ = 1 + 4 = 5 \chi(x)=x^2-x-1, \qquad \Delta = 1+4 = 5 χ(x)=x2x1,Δ=1+4=5

分两类(除去特例 p = 5 p=5 p=5 使得 Δ ≡ 0 \Delta\equiv0 Δ0):


情形 A:5 是二次剩余 ( ( 5 p ) = + 1 \left(\frac{5}{p}\right)=+1 (p5)=+1,等价于 p ≡ ± 1 ( m o d 5 ) p\equiv\pm1\pmod 5 p±1(mod5))。

此时 χ \chi χ F p \mathbb F_p Fp 可分解,存在

α = 1 + 5 2 , β = 1 − 5 2 ∈ F p \alpha=\tfrac{1+\sqrt 5}{2},\quad \beta=\tfrac{1-\sqrt 5}{2}\in\mathbb F_p α=21+5 ,β=215 Fp,

Q Q Q F p \mathbb F_p Fp 上可对角化: Q = S diag ⁡ ( α , β ) S − 1 Q=S\operatorname{diag}(\alpha,\beta)S^{-1} Q=Sdiag(α,β)S1
于是

ord ⁡ ( Q ) = l c m ( ord ⁡ ( α ) , ord ⁡ ( β ) ) \operatorname{ord}(Q)=\mathrm{lcm}\big(\operatorname{ord}(\alpha),\operatorname{ord}(\beta)\big) ord(Q)=lcm(ord(α),ord(β))

α , β ∈ F p × \alpha,\beta\in\mathbb F_p^\times α,βFp×,而 F p × \mathbb F_p^\times Fp×循环群,阶为 p − 1 p-1 p1。所以

ord ⁡ ( α ) ∣ ( p − 1 ) , ord ⁡ ( β ) ∣ ( p − 1 )   ⇒   ord ⁡ ( Q ) ∣ ( p − 1 ) \operatorname{ord}(\alpha)\mid (p-1),\quad \operatorname{ord}(\beta)\mid (p-1)\ \Rightarrow\ \operatorname{ord}(Q)\mid (p-1) ord(α)(p1),ord(β)(p1)  ord(Q)(p1)

从而

  π ( p ) ∣ ( p − 1 )   ( p ≡ ± 1   m o d   5 ) \boxed{\ \pi(p)\mid (p-1)\ }\qquad(p\equiv\pm1\bmod 5)  π(p)(p1) (p±1mod5)


情形 B:5 是二次非剩余( ( 5 p ) = − 1 \left(\frac{5}{p}\right)=-1 (p5)=1,等价于 p ≡ ± 2 ( m o d 5 ) p\equiv\pm2\pmod 5 p±2(mod5)

此时 χ \chi χ F p \mathbb F_p Fp 不可约,但在扩域 F p 2 \mathbb F_{p^2} Fp2 上分解,并且两根互为弗罗贝尼乌斯共轭:

α , β ∈ F p 2 , β = α p \alpha,\beta\in\mathbb F_{p^2},\quad \beta=\alpha^p α,βFp2,β=αp

α β = − 1 \alpha\beta=-1 αβ=1(常数项)知

N o r m F p 2 / F p ( α ) = α p + 1 = α β = − 1 \mathrm{Norm}_{\mathbb F_{p^2}/\mathbb F_p}(\alpha)=\alpha^{p+1}=\alpha\beta=-1 NormFp2/Fp(α)=αp+1=αβ=1

因此

α p + 1 = − 1 ⇒ α 2 ( p + 1 ) = 1 \alpha^{p+1}=-1\quad\Rightarrow\quad \alpha^{2(p+1)}=1 αp+1=1α2(p+1)=1

于是 ord ⁡ ( α ) ∣ 2 ( p + 1 ) \operatorname{ord}(\alpha)\mid 2(p+1) ord(α)2(p+1)。再注意 β = − α − 1 \beta=-\alpha^{-1} β=α1

ord ⁡ ( β ) = { ord ⁡ ( α ) , ord ⁡ ( α )  为偶数 ; 2   ord ⁡ ( α ) , 为奇数。 \operatorname{ord}(\beta)= \begin{cases} \operatorname{ord}(\alpha), & \operatorname{ord}(\alpha)\ \text{为偶数};\\ 2\,\operatorname{ord}(\alpha), & \text{为奇数}。 \end{cases} ord(β)={ord(α),2ord(α),ord(α) 为偶数;为奇数

而上式 α p + 1 = − 1 \alpha^{p+1}=-1 αp+1=1 直接说明 − 1 ∈ ⟨ α ⟩ -1\in\langle\alpha\rangle 1α,故 ord ⁡ ( α ) \operatorname{ord}(\alpha) ord(α) 一定是偶数,于是 ord ⁡ ( β ) = ord ⁡ ( α ) \operatorname{ord}(\beta)=\operatorname{ord}(\alpha) ord(β)=ord(α)
对角化后

ord ⁡ ( Q ) = l c m ( ord ⁡ ( α ) , ord ⁡ ( β ) ) = ord ⁡ ( α ) ∣ 2 ( p + 1 ) \operatorname{ord}(Q)=\mathrm{lcm}\big(\operatorname{ord}(\alpha),\operatorname{ord}(\beta)\big)=\operatorname{ord}(\alpha)\mid 2(p+1) ord(Q)=lcm(ord(α),ord(β))=ord(α)2(p+1)

从而

  π ( p ) ∣ 2 ( p + 1 )   ( p ≡ ± 2   m o d   5 ) \boxed{\ \pi(p)\mid 2(p+1)\ }\qquad(p\equiv\pm2\bmod 5)  π(p)2(p+1) (p±2mod5)

T h i r d Third Third 特殊小素数:

p = 2 p=2 p=2:直接算得 π ( 2 ) = 3 \pi(2)=3 π(2)=3,而 2 ( p + 1 ) = 6 2(p+1)=6 2(p+1)=6,确有 π ( 2 ) ∣ 6 \pi(2)\mid 6 π(2)6

p = 5 p=5 p=5 χ ( x ) \chi(x) χ(x) 判别式为 0 0 0 x 2 − x − 1 ≡ ( x − 3 ) 2 x^2-x-1\equiv (x-3)^2 x2x1(x3)2;此时 Q Q Q J o r d a n Jordan Jordan 形导致 π ( 5 ) = 20 \pi(5)=20 π(5)=20(经典结果),它不整除 p − 1 = 4 p-1=4 p1=4 2 ( p + 1 ) = 12 2(p+1)=12 2(p+1)=12,因此需要单独例外处理。

E n d End End 小结(素数模)

对所有素数 p ≠ 5 p\neq 5 p=5

  π ( p )   ∣   { p − 1 , p ≡ ± 1 ( m o d 5 ) ( 判别式可分解 ) ; 2 ( p + 1 ) , p ≡ ± 2 ( m o d 5 ) ( 判别式不可约 ) 。 \boxed{\ \pi(p)\ \Bigg|\ \begin{cases} p-1,& p\equiv\pm1\pmod 5\quad(\text{判别式可分解});\\ 2(p+1),& p\equiv\pm2\pmod 5\quad(\text{判别式不可约})。 \end{cases}}  π(p)   {p1,2(p+1),p±1(mod5)(判别式可分解);p±2(mod5)(判别式不可约)

再加上特例 π ( 2 ) = 3 \pi(2)=3 π(2)=3 π ( 5 ) = 20 \pi(5)=20 π(5)=20。这样就有完整的证明过程了。

延伸:合数模 P 下有 π ( P ) = l c m ( π ( p 1 k 1 ) , … ) \pi(P)=\mathrm{lcm}\big(\pi(p_1^{k_1}),\dots\big) π(P)=lcm(π(p1k1),)(互素分解后取最小公倍数),且 π ( p k ) ∣ p k − 1 π ( p ) \pi(p^k)\mid p^{k-1}\pi(p) π(pk)pk1π(p)。因此总体上 π ( P ) = O ( P ) \pi(P)=O(P) π(P)=O(P)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值