日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法提高课-数学知识-矩阵乘法-AcWing 1303. 斐波那契前 n 项和:矩阵乘法,快速幂,线性代数

發布時間:2025/4/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法提高课-数学知识-矩阵乘法-AcWing 1303. 斐波那契前 n 项和:矩阵乘法,快速幂,线性代数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目分析


來源:acwing
分析:

先利用矩陣運算的性質將通項公式變成冪次形式,然后用快速冪的方法求解第 n項。

斐波那契數列的遞推公式:f1=f2=1,fn=fn?2+fn?1(n≥3)f_1 = f_2 =1, f_n = f_{n-2} + f_{n-1}(n \geq3)f1?=f2?=1,fn?=fn?2?+fn?1?(n3)

定義向量 Fn=[fn,fn+1,Sn]F_n = [f_n, f_{n +1}, S_n]Fn?=[fn?,fn+1?,Sn?],其中fnf_{n }fn?fn+1f_{n +1}fn+1? 分別表示斐波那契數列的第n項和第n+1項,而且SnS_nSn?表示斐波那契數列的前n項和。則F1=[f1,f2,S1]=[1,1,1]F_1 = [f_1, f_{2}, S_1] =[1,1,1]F1?=[f1?,f2?,S1?]=[1,1,1]

我們要找到遞推關系式,即找到 Fn+1=[fn+1,fn+2,Sn+1]F_{n+1} = [f_{n+1}, f_{n +2}, S_{n+1}]Fn+1?=[fn+1?,fn+2?,Sn+1?]Fn=[fn,fn+1,Sn]F_n = [f_n, f_{n +1}, S_n]Fn?=[fn?,fn+1?,Sn?]的關系

我們找到矩陣A=[010111001]A=\begin{bmatrix} 0 & 1 & 0\\ 1 & 1 & 1\\ 0& 0& 1 \\\end{bmatrix}A=???010?110?011????
可以得到
[fn+1,fn+2,Sn+1]=[fn,fn+1,Sn][010111001][f_{n+1}, f_{n +2}, S_{n+1}] = [f_n, f_{n +1}, S_n]\begin{bmatrix} 0 & 1 & 0\\ 1 & 1 & 1\\ 0& 0& 1 \\\end{bmatrix}[fn+1?,fn+2?,Sn+1?]=[fn?,fn+1?,Sn?]???010?110?011????

即:Fn+1=FnAF_{n+1} = F_{n}AFn+1?=Fn?A

所以:
Fn=F1An?1F_{n} = F_{1}A^{n-1}Fn?=F1?An?1

時間復雜度:快速冪的時間復雜度是 O(logn)O(logn)O(logn),所以本算法的時間復雜度也是O(logn)O(logn)O(logn)

ac代碼

#include<bits/stdc++.h> using namespace std; const int N = 3; typedef long long LL;int n, m;void mul(int c[], int a[], int b[][N]){int temp[N] = {0};for(int i = 0; i < N; i++)for(int j = 0; j < N; j++)temp[i] = (temp[i] + (LL) a[j] * b[j][i]) % m;memcpy(c, temp, sizeof temp); }void mul(int c[][N], int a[][N], int b[][N]){int temp[N][N] = {0};for(int i = 0; i< N; i ++)for(int j = 0; j<N; j++)for(int k = 0; k<N; k++)temp[i][j] = (temp[i][j] + (LL) a[i][k] * b[k][j] ) % m;memcpy(c, temp, sizeof temp); }int main(){cin >> n >> m;int f1[N] = {1, 1, 1};//f1, f2, s1int a[N][N] = {{0, 1, 0},{1, 1, 1},{0, 0, 1}};// f1 * a^(n-1)n --; // n變成n-1while(n){if( n & 1) mul(f1, f1, a); // f1 = f1 * a;mul(a, a, a); // a = a * a;n >>= 1; // n /= 2;}cout << f1[2] << endl;}

題目來源

https://www.acwing.com/problem/content/1305/

總結

以上是生活随笔為你收集整理的算法提高课-数学知识-矩阵乘法-AcWing 1303. 斐波那契前 n 项和:矩阵乘法,快速幂,线性代数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美在线视频二区 | 欧美一区二区三区视频在线观看 | 短视频在线观看 | 91传媒视频在线观看 | 日韩av在线中文字幕 | 国产精品传媒在线 | 国产精品亚洲色图 | 国产精品自偷自拍 | 男人的天堂久久久 | 小日子的在线观看免费第8集 | 亚洲欧美日韩综合在线 | 日本三级韩国三级美三级91 | 少妇户外露出[11p] | 欧美成人国产精品高潮 | 欧美日韩毛片 | 国产欧美日韩在线播放 | 日本美女黄色大片 | 乌克兰性极品xxxhd | 丰满双乳秘书被老板狂揉捏 | 一个人在线观看www软件 | 国内偷拍一区二区 | 91porn破解版 | 娇妻被老王脔到高潮失禁视频 | 日本国产高清 | 不卡黄色 | 啪啪在线视频 | 韩国精品一区二区 | 久久久久久久久国产精品 | 成人a v视频 | 欧洲精品久久久久毛片完整版 | 91国产丝袜在线播放 | 黄色小视频链接 | 亚洲最大在线视频 | 国产九九九| 波多野结衣1区 | 日韩欧美在线观看一区二区三区 | 久久高清毛片 | 69精品久久久 | 美女扒开腿让男人 | av大片在线看 | 亚洲一区二区电影网 | 国产毛片一区二区三区va在线 | 风流还珠之乱淫h文 | 亚洲成人高清在线 | 久久久久久久久久一区 | 超碰在线播放97 | 五月激情久久 | 极品三级 | 欧美特一级片 | 天天躁日日躁aaaxxⅹ | 97人妻天天摸天天爽天天 | 操操影视 | 夜夜夜网站 | 亚洲色图.com | 91视频免费观看网站 | 黄色网页网站 | 男插女视频在线观看 | 视频一区二区国产 | 日产精品久久久一区二区 | 免费看美女隐私网站 | 免费成人深夜夜 | 国产精品va无码一区二区 | 亚洲一卡二卡三卡 | 国产精品v欧美精品v日韩 | 亚洲欧美一级 | 国内精品视频一区 | 中文字幕亚洲精品在线 | 亚洲一区二区色 | 看91 | 国产aⅴ精品一区二区果冻 台湾性生生活1 | 劲爆欧美第一页 | 欧美日本在线视频 | 99热3| 一起草av在线 | 亚洲高清视频免费观看 | 欧美精品毛片 | 女人性做爰69片免费看 | 午夜aaa片一区二区专区 | 午夜色av | 中文字幕av解说 | 日韩人妻无码精品久久久不卡 | 欧美高清精品一区二区 | 国产精品久久777777换脸 | 久久一卡二卡 | 欧美丰满老熟妇xxxxx性 | 国产精品高清在线 | 亚洲一区视频网站 | 亚洲国产午夜 | 欧美福利精品 | 国产精品xxx | 国产五月天婷婷 | 亚洲久久色 | 中文字幕在线观看视频免费 | 91网入口 | 国产精品第二十页 | 欧美久久伊人 | 怡红院综合网 | 欧美一区二区三区成人片在线 | 久久夜靖品2区 |