码迷,mamicode.com
首页 > 其他好文 > 详细

矩阵快速幂—— 构造矩阵

时间:2020-07-19 16:00:31      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:min   net   不包含   detail   汇总   image   矩阵   blog   http   

借鉴视频:https://www.bilibili.com/video/BV1gx41127d7?p=2

借鉴博客:https://blog.csdn.net/wangjian8006/article/details/7868864

 

 

一,汇总

矩阵乘法可以用来求递推式

基本形式:由一个 基础矩阵(用  A 表示) 和 递推矩阵(用 B 表示)  组成 (名字自己取的 ,也不知道有没有专业名称)

基础矩阵:由条件充分的已知元素组成,如 f(n-1) , f(n-2) 等等

递推矩阵:一个固定矩阵,元素不包含变量,基础矩阵 乘以 递推矩阵 可以得到 下一个基础矩阵

下一个基础矩阵:与基础矩阵大小相同,包含 f(n) 和 基础矩阵的一部分元素,下一个矩阵 乘以 递推矩阵可以得到 下下一个基础矩阵

下一个基础矩阵:与基础矩阵大小相同,包含 f(n) 和 上一个矩阵的一部分元素

注意:通常,如果 基础矩阵 只有一行,递推矩阵 是为方阵,其行数 为 基础矩阵的列数

 

二,Fibonacci 

斐波那契数列递推关系为:F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥2

这里有两种矩阵递推式,一个是题目给出的,一个可以自己推导出来。

1,这个是题目给出的这个推导式,我不会推导

 技术图片.

 

2,这个自己推导的递推式和第一个很像,不过还是有着本质区别,估计可以由这个推导出题目的递推式

推导过程:
由:Fn = Fn − 1 + Fn − 2 for n ≥2 可知,我们只需要两个元素,就有足够条件求下一个元素

所以:

基础矩阵由两个元素组成,f(1),f(0)

下一个矩阵也由两个元素组成:f(2),f(1)

由此,便可以求 递推矩阵:

技术图片

 

If x < 10 f(x) = x.
If x >= 10 f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + …… + a9 * f(x-10);
And ai(0<=i<=9) can only be 0 or 1 .
Give you a0 ~a9,two integer k,m,outf(k)%m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

矩阵快速幂—— 构造矩阵

标签:min   net   不包含   detail   汇总   image   矩阵   blog   http   

原文地址:https://www.cnblogs.com/asdfknjhu/p/13339239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!