zoukankan      html  css  js  c++  java
  • 矩阵乘法和斐波那契数列【清北学堂】

      这篇博客是一边听课一边写的

      两个矩阵做乘法的先决条件是一个矩阵的宽和另一个矩阵的高相等

      比如一个2*3的矩阵和一个3*4的矩阵就可以相乘

      乘出来的效果是这样的

      比如有个1*2的矩阵[ a b ]  和2*1的矩阵 [ c ]

                           [ d ]

      那乘出来的效果就是[ a*c+b*d ]

      好吧并不理解

      再比如[ a b ]  *  [ e f ]  =  [ ae+bg af+bh ]

         [ c d ]     [ g h ]      [ ce+dg cf+dh ]

      这样

      矩阵乘法可以用来求一些奇怪的递推式,如斐波那契数列和、斐波那契数列平方和等等

      比如求斐波那契平方和的矩阵乘法如下

      [ 1 1 3 3 1 ]  [ Sum ]

      [ 0 1 3 3 1 ]  [ (i-1)^3] 

      [ 0 0 1 2 1 ]  [ (i-1)^2]

      [ 0 0 0 1 1 ]  [ i-1 ]

      [ 0 0 0 0 1 ]  [ 1 ]

      两个矩阵相乘可以搞出斐波那契的平方和

      推导过程如下

      首先我们看到,在每一次循环中  Sum=Sum+i^3

      那么i^3怎么来的呢   肯定不能直接来,于是我们要往之前 的循环中找

      也就是找到i^3和(i-1)^3的联系

      容易推出 (i-1)^3 = i^3-3i^2+3i-1

      也就是说,为了推出i^3,我们需要(i-1)^3、(i-1)^2、i-1和1

      于是推出如上矩阵

      首先我们发现上式移项得出i^3=(i-1)^3+3i^2-3i+1

      又对上式进行配方  得到 (i-1)^3+3(i-1)^2+3(i-1)+1

      我们把左面的矩阵从下往上推导

      明确的知道我们需要一个1 所以 矩阵最下面除了对应 1的第五个空填1 其他的都是0

      再看倒数第二行    i=i-1+1  

      第三行   i^2=(i-1)^2+2*(i-1)+1

      以此类推  就酱

  • 相关阅读:
    python学习日记——基本数据类型
    python学习日记——安装及初识
    STF平台探索
    fiddler基本操作梳理
    fly.js抛物线连续不断加入购物车
    判断是否存在某个字段hasOwnProperty
    vue中提示toFixed不是函数
    vue中父组件给子组件传值,子组件给父组件传值
    js判断用户的浏览器设备是移动端还是pc端
    css预处理器--sass学习($变量名)
  • 原文地址:https://www.cnblogs.com/cellular-automaton/p/7189643.html
Copyright © 2011-2022 走看看