根据图示,我们可以知道:后面的大正方形的边长总是等于前面的小正方形组成的矩形的长;前面几个斐波那契数的平方之和(也就是前面几个小正方形的面积之和)在数值上等于最后出现的一个和下一个紧接着未出现的斐波那契数的乘积(也就是已经出现的小正方形组成的矩形的面积等于其中最大的一个小正方形的边长乘以下一个紧接着未出现的正方形的边长) 。对应的公式化简后如下:
【几何构造证明题【附图】求斐波那契前n项平方和 ——矩阵快速幂模板】
文章插图
#include #define ll long long#define MOD 1000000007using namespace std;struct nobe{ll a[2][2];};ll n,sum;nobe mut(nobe x,nobe y){nobe res;memset(res.a,0,sizeof(res.a));for(ll i=0;i<2;i++)for(ll j=0;j<2;j++)for(ll k=0;k<2;k++)res.a[i][j]=(res.a[i][j]+x.a[i][k]*y.a[k][j])%MOD;return res;}void quick(ll n){nobe c,res;c.a[0][0]=1;c.a[0][1]=1;c.a[1][0]=1;c.a[1][1]=0;memset(res.a,0,sizeof(res.a));for(ll i=0; i<2; i++)res.a[i][i]=1;while(n){if(n&1)res=mut(res,c);c=mut(c,c);n=n>>1;}printf("%lld\n",((res.a[0][1]%MOD)*(res.a[0][1]%MOD+res.a[1][1]%MOD))%MOD);}int main(){ll i,t;while(scanf("%lld",&n)!=EOF)quick(n);return}
- Python高级--决策树
- 视觉系海报教程模仿-----几何图形的应用
- 软件构造博客三
- 计算几何、凸集、平面、超平面、凸函数、凸规划讲解
- 上 区块链零知识证明:STARKs,Part-3:攻坚
- 哈工大软件构造实验三 使用Vote类的构造方法时遇到的错误
- 计算几何——线段的性质
- 企业应用技术篇 【方向盘】Java EE几十种技术,“活着的”还剩几何
- 几何计算 三角形推广到多边形的面积计算
- 事实证明:史上最自恋的皇帝绝对就是他!