斐波那契循环节

斐波那契循环节

从一道题引出一个算法:斐波那契数列

这道题并没有什么花里胡哨的条件,就是很简单的计算\(F(n)\ mod\ p\)

但是这题的\(n\)达到了\(10^{30000000}\)级别,很显然不能直接用矩阵快速幂做。

因此我们要引入一个概念:斐波那契循环节。

显而易见的是通过看题解我们知道,斐波那契数列在模一个数时会出现循环,而这个周期的长度就称为斐波那契循环节。

所以我们只需要求出斐波那契循环节\(m\),然后用矩阵快速幂计算\(F(n\ mod\ m)\ mod\ p\)就行了。

下面将会介绍如何计算斐波那契循环节。

(因为这只是介绍文并非论文,难免有不严谨之处,敬请谅解。本文以通俗易懂为前提,夹有较为详细的证明。)

参考自一篇全英文的paperThe Period of the Fibonacci Sequence Modulo j

\(Tips:\)

\(1.\)本文的数学推导具有一定难度,部分知识涉及到了高等代数和初等数论,不知道的东西可以上网查,如果实在不懂可以暂时跳过,因为这并不会影响到阅读其他部分。

\(2.\)如果不想看证明过程,可以直接跳到第五部分看结论。

\(1.\)前置知识

二次剩余

直接看我的另一篇博客吧。二次剩余

有一个非空集合\(G\),和在\(G\)上的一个二元运算\(\cdot:G\times G\mapsto G\)

(一般我们叫这个运算乘法,其运算结果为

它们构成了一个代数系统\(\{G,\cdot\}\),这个代数系统满足:

\(1.\)封闭性:\(\forall a,b\in G,a\cdot b\in G\)

\(2.\)结合律:\(\forall a,b,c\in G,(a\cdot b)\cdot c=a\cdot(b\cdot c)\)

那么我们将其称为半群

如果这个半群还满足

\(3.\)单位元:\(\exists e\in G,\forall a\in G,e\cdot a=a\cdot e=a\)。这个\(e\)称作单位元,或者称作\(1\)。(\(a^0=1\)

\(4.\)逆元:\(\forall a\in G,\exists b\in G,a\cdot b=b\cdot a=e\)。这个\(b\)称作\(a\)的逆元,记做\(a^{-1}\)。(逆元具有唯一性)

那么我们将其称为

如果这个群还满足

\(5.\)交换律:\(\forall a,b\in G,a\cdot b=b\cdot a\)

那么我们称这个群为交换群阿贝尔群

在阿贝尔群中这个二元运算经常被称作加法,其运算结果为,这个运算记做\(+\)

此时该群的单位元经常被称作零元,记作\(0\)\(a\)逆元的逆元经常被记作\(-a\)

(这些东西可以联想实数的加法和乘法)

\(\{G,+,\cdot\}\)是一个代数系统(\(G\)是非空集合,\(+\)\(\cdot\)为二元运算即加法和乘法),若

\(1.\{G,+\}\)是一个交换群。

\(2.\{G,\cdot\}\)是一个半群。

\(3.\)分配率:\(\forall a,b,c\in G,a\cdot(b+c)=(a\cdot b)+(a\cdot c),(a+b)\cdot c=(a\cdot c)+(b\cdot c)\)

那么我们将其称为

如果这个环满足

\(4.\{G\setminus\{0\},\cdot\}\)是一个交换群。

那么我们将其称为。(实际上第四条性质中把\(0\)去掉就只是因为在域中\(0\)不具有乘法逆元)

特征方程

百度百科特征方程,包会。特征方程

\(2.\)定义

斐波那契数列

\[ \forall n\in\mathbb N_ +,F_{n+1}=F_n+F_{n-1}(F_0=0,F_1=1) \]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值