斐波那契数列小结 ʕ •ᴥ•ʔ

本文介绍了矩阵相乘的概念,强调了一般矩阵乘积中列数和行数的要求。通过矩阵表示,揭示了斐波那契数列如何与二阶矩阵相联系,提出求解斐波那契数列的第n项等同于求二阶矩阵的n-1次方,并讨论了如何利用矩阵的幂运算和二进制转换来快速计算二阶矩阵的n次幂。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公式:

  1.f(0)+f(1)+f(2)+…+f(n)=f(n+2)-1。 
 
  2.f(1)+f(3)+f(5)+…+f(2n-1)=f(2n)。 
 
  3.f(2)+f(4)+f(6)+…+f(2n) =f(2n+1)-1。 
 
  4.[f(0)]^2+[f(1)]^2+…+[f(n)]^2=f(n)·f(n+1)。 
 
  5.f(0)-f(1)+f(2)-…+(-1)^n·f(n)=(-1)^n·[f(n+1)-f(n)]+1。 
 
  6.f(m+n-1)=f(m-1)·f(n-1)+f(m)·f(n)。 
 
  7.[f(n)]^2=(-1)^(n-1)+f(n-1)·f(n+1)。 
 
  8.f(2n-1)=[f(n)]^2-[f(n-2)]^2。 
 
  9.3f(n)=f(n+2)+f(n-2)。 
 
  10.f(2n-2m-2)[f(2n)+f(2n+2)]=f(2m+2)+f(4n-2m) [ n〉m≥-1,且n≥1] 
 
    11.f(2n+1)=[f(n)]^2+[f(n+1)]^2.

接下来咱们来看看矩阵相乘

矩阵相乘:矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义。一般单指矩阵乘积时,指的便是一般矩阵乘积。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。

设A为m*p的矩阵,B为p*n的矩阵,那么称m*n的矩阵C为矩阵A与B的乘积,记作C=AB:

斐波那契数列与矩阵的联系

上面已经介绍过了矩阵相乘的概念了,那么,斐波那契该怎么由矩阵标示呢?

从第三项开始,每一项都是前两项之和。 F(n)=F(n−1)+F(n−2), n⩾3 把斐波那契数列中 相邻的两项F(n)和F(n−1)写成一个2×1的矩阵。

斐波那契数列用矩阵推导如下:

求F(n)等于求二阶矩阵的n - 1次方,结果取矩阵第一行第一列的元素。

问题转换为二阶矩阵的n次幂。

而计算二阶矩阵的N次幂运算,由于二阶矩阵乘法满足结合律,这样,可以快速计算二阶矩阵的n次幂运算。

接下来的一段话 我不是很理解。。。你们自行理解。。。

假设A为一个二阶矩阵,则A的幂运算满足下面的条件:

A**6=A**3∗A**3

A**7=A**3∗A**3∗A**1=A**4*A**2*A**1

在这里,我们可以类似地把A看做是二进制中的2,2**7=2**4*2**2*2**1也就是说可以把矩阵的幂转换成二进制来表示。从而可以将n次幂拆解成长度为logn的二进制数来表示:7=111(二进制)。

这就是快速求二阶矩阵的核心方法。

#define ll long long
ll x[2][2],t[2][2];
void mul(ll a[][2],ll b[][2])
{
	ll ans[2][2];
	for(int i=0;i<2;i++)
	{
		for(int j=0;j<2;j++)
		ans[i][j]=a[i][0]*b[j][0]+a[i][1]*b[1][j];//不用记  自己推 
	}
	a[0][0]=ans[0][0]%mod;
	a[0][1]=ans[0][1]%mod;
	a[1][0]=ans[1][0]%mod;
	a[1][1]=ans[1][1]%mod;
	
	
}
void power(ll num)
{
	x[0][0]=1;
	x[0][1]=0;
	t[0][0]=1;
	t[0][1]=1;
	t[1][0]=1;
	t[1][1]=0;
	while(num)
	{
		if(num&1)
		{
			mul(x,t);
		}
		mul(t,t);
		num>>=1;
	}
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值