1. 程式人生 > >根據遞推式構造矩陣

根據遞推式構造矩陣

 簡單的例子

Fibonacci數列

考慮Fibonacci數列, 

F(n)=F(n1)+F(n2)
將右邊兩項看做是一個列向量的形式,令 
Xn1={Fn1Fn2}
很容易得到Xn的形式,即 
Xn={FnFn1}
現在的任務就是找到一個係數矩陣A,使得AXn1=Xn,且A需與n無關。 
如果能夠找到這個A,則易知An1X1=Xn,於是可以利用矩陣快速冪計算出Xn。這樣就可以在O(logn)的時間內計算出指定的Fibonacci數。 
這個矩陣很容易找,觀察易得 
A={1110}(1)

Fibonacci數列變種

推廣一下,如果令Fn=a

相關推薦

根據構造矩陣

 簡單的例子 Fibonacci數列 考慮Fibonacci數列,  F(n)=F(n−1)+F(n−2) 將右邊兩項看做是一個列向量的形式,令  Xn−1={Fn−1Fn−2} 很容易得到Xn的形式,即  Xn={F

根據公式構造係數矩陣用於快速冪

簡單的例子 Fibonacci數列 考慮Fibonacci數列, F(n)=F(n−1)+F(n−2) 將右邊兩項看做是一個列向量的形式,令 Xn−1={Fn−1Fn−2} 很容易得到Xn的形式,即 Xn={FnFn−1} 現在的任務就是找到

POJ 3734 Blocks(矩陣快速冪+矩陣

scan efi stdio.h opened ans hide 最終 spl pen 題意:個n個方塊塗色, 只能塗紅黃藍綠四種顏色,求最終紅色和綠色都為偶數的方案數。 該題我們可以想到一個遞推式 。 設a[i]表示到第i個方塊為止紅綠是偶數的方案數, b[i]為紅綠

矩陣乘法來加速計算

span code 分享 pow quic mage src .com image Codevs1281: 給你6個數,m, a, c, x0, n, g Xn+1 = ( aXn + c ) mod m,求Xn 計算遞推式,運用矩陣來進行計算加速 然後註意用類似快速冪的

矩陣快速冪(共軛函式兩種

題目連結:https://cn.vjudge.net/contest/261339#problem/B AC1:ans= x(n)+y(n)*sqrt(6),所以,ans=x(n)+y(n)*sqrt(6)+(x(n)-y(n)*sqrt(6))-(x(n)-y(n)*sqrt(6))=2*

hdu6030 Happy Necklace(矩陣快速冪+)

思路來源 https://www.cnblogs.com/bolderic/p/7216739.html 題意 給你一個長為n的珠子串,要求你給這條串塗色, 要求任意素數長度的串中,紅色數不少於藍色數,只有紅藍兩色。 問長為n的串的塗色方案數。 題解 這個遞推式還是

矩陣乘法x2】LuoGu P1349 廣義斐波那契數列&&LNSYOJ#395字首和

這是兩道矩陣的水題 題目描述 數列f[n]=f[n-1]+f[n-2]+n+1,f[1]=f[2]=1的前n項和s[n]=f[1]+f[2]+……+f[n]的快速求法(答案取模10e9+7) 輸入格式 一個整數bb。 輸出格式 一個整數字首和。

矩陣運算快速冪來快速計算線性

斐波那契數列 f(0)=0; f(1)=1; f(n)=f(n-1)+f(n-2),n>1 從上面這個方程中我們可以看到很明顯的遞推關係,當n>1的時候很明顯發現會有一個關係式,但是實際上我們在做運算的時候,如果一步一步的按照遞推式計算,將會消耗大量的時間(最短

洛谷 P1939 【模板】矩陣加速(數列):優化的方法——矩陣快速冪

在大多數情況下,O(n)的效率都是值得驕傲的,然而,有時候並不是,比如如何在一秒鐘內算出一個遞推式的第1e9項,很明顯O(n)不行了。 然而常數級又不太現實,除非你的數學非常好,這題又比較簡單,你推了一個特徵方程的通項公式…… 所以考慮log的做法:矩陣快速冪 如果你還不知

矩陣快速冪優化 例:斐波那契數列

首先是一點基礎知識: ① 矩陣相乘的規則:矩陣與矩陣相乘 第一個矩陣的列數必須等於第二個矩陣的行數 假如第一個是m*n的矩陣 第二個是n*p的矩 陣則結果就是m*p的矩陣且得出來的矩陣中元素具有

已知求第N項的O(logN)演算法 (轉化為矩陣)

若有遞推式f(n)=a(1)f(n-1)+a(2)f(n-2)+…+a(m)f(n-m),則可轉化為以下矩陣形式: (你可以自己驗算一下) 隨後快速冪即可。 (求F(n)就相當於求上方n-m+1冪的矩陣經快速冪計算後的矩陣的第一行乘右邊那個初始項矩陣) 例題: POJ

poj-3744 Scout YYF I [用矩陣優化概率]

/* 題意:在一條不滿地雷的路上,你現在的起點在1處。 在N個點處布有地雷,1<=N<=10。地雷點的座標範圍:[1,100000000]. 每次前進p的概率前進一步,1-p的概率前進兩步

計算與矩陣乘法 C++

以斐波那契數列為例,計算斐波那契數列的矩陣方法程式碼如下: (快速冪、矩陣乘法)《挑戰程式設計競賽第二版》P199 #include<iostream> #include<vect

HDU5950 Recursive sequence 非線性 矩陣快速冪

題目傳送門 題目描述:給出一個數列的第一項和第二項,計算第n項。 遞推式是 f(n)=f(n-1)+2*f(n-2)+n^4. 由於n很大,所以肯定是矩陣快速冪的題目,但是矩陣快速冪只能解決線性的問題,n^4在這個式子中是非線性的,後一項和前一項沒有什麼直接關係,所以模

51nod1149 Pi的

spa n-2 ret 枚舉 次數 遞推 def math clas 基準時間限制:1 秒 空間限制:131072 KB 分值: 640 F(x) = 1 (0 <= x < 4) F(x) = F(x - 1) + F(x -

線性(外掛)

ons return main clear rep for near n-1 cond 傳入前幾項,輸出低n項的值 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath&g

一些常用的數學

direct ref itl org div 不同的 這樣的 bsp 不同 錯排公式: 考慮一個有n個元素的排列,若一個排列中所有的元素都不在自己原來的位置上,那麽這樣的排列就稱為原排列的一個錯排。 n個元素的錯排數記為Dn。 比如說:如在寫信時將n封信裝到n個不同的信封裏

HDU 1568 Fibonacci【求斐波那契數的前4位/

urn content new targe 接下來 bsp hide 斐波那契 href Fibonacci Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other

bzoj4161 (k^2logn求線性)

ret n) log span isp for hide -h close 分析:   我們可以寫把轉移矩陣A寫出來,然後求一下它的特征多項式,經過手動計算應該是這樣的p(x)=$x^k-\sum\limits_{i=1}^ka_i*x^{k-i}$   根據Cayle

[純符][純粹的無聊] 神奇的

退役 size 累加 道路 參數 疑惑 新的 依然 nbsp 退役後,我依然保持著日常GG的特性233 一日,做數學試卷,突然發現一道需要用歸納法的一道題目,然後我便閑得無聊用常規方法算出來了這麽一個式子: 其中a1=2。 然後。。。我就有點慌。。。算了前幾項,竟然發現