• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            我叫張小黑
            張小黑的掙扎生活
            posts - 66,  comments - 109,  trackbacks - 0

            常系數(shù)線性遞推的第n項(xiàng)及前n項(xiàng)和

             

            (一)Fibonacci數(shù)列f[n]=f[n-1]+f[n-2],f[1]=f[2]=1的第n項(xiàng)的快速求法(不考慮高精度).

             

            解法:

            考慮1×2的矩陣【f[n-2],f[n-1]】。根據(jù)fibonacci數(shù)列的遞推關(guān)系,我們希望通過乘以一個(gè)2×2的矩陣,得到矩陣【f[n-1],f[n]=f[n-1],f[n-1]+f[n-2]

            很容易構(gòu)造出這個(gè)2×2矩陣A,即:

            0

            1

            1

            1

            所以,有【f[1],f[2]】×A=【f[2],f[3]

            又因?yàn)榫仃嚦朔M足結(jié)合律,故有:

            f[1],f[2]】×A n-1=f[n],f[n+1]

            這個(gè)矩陣的第一個(gè)元素即為所求。

             

            至于如何快速求出A n-1,相信大家都會(huì),即遞歸地:n為偶數(shù)時(shí),An=(A n/2)2n為奇數(shù)時(shí),An=(A n/2)2*A

             

            問題(一)解決。

             

            (二)數(shù)列f[n]=f[n-1]+f[n-2]+1,f[1]=f[2]=1的第n項(xiàng)的快速求法(不考慮高精度).

            解法:

                  仿照前例,考慮1×3的矩陣【f[n-2],f[n-1],1】,希望求得某3×3的矩陣A,使得此1×3的矩陣乘以A得到矩陣:【f[n-1],f[n],1】=【f[n-1],f[n-1]+f[n-2]+1,1

            容易構(gòu)造出這個(gè)3×3的矩陣A,即:

            0

            1

            0

            1

            1

            0

            0

            1

            1

            問題(二)解決。

             

             

            (三)數(shù)列f[n]=f[n-1]+f[n-2]+n+1,f[1]=f[2]=1的第n項(xiàng)的快速求法(不考慮高精度).

            解法:

                  仿照前例,考慮1×4的矩陣【f[n-2],f[n-1],n,1】,希望求得某4×4的矩陣A,使得此1×4的矩陣乘以A得到矩陣:

            f[n-1],f[n],n+1,1】=【f[n-1],f[n-1]+f[n-2]+n+1,n+1,1

            容易構(gòu)造出這個(gè)4×4的矩陣A,即:

            0

            1

            0

            0

            1

            1

            0

            0

            0

            1

            1

            0

            0

            1

            1

            1

            問題(三)解決……

             

            (四)數(shù)列f[n]=f[n-1]+f[n-2],f[1]=f[2]=1n項(xiàng)和s[n]的快速求法(不考慮高精度).

            解法:

                  雖然我們有S[n]=F[n+2]-1,但本文不考慮此方法,我們想要得到更一般的方法。

                  考慮(一)的矩陣A,容易發(fā)現(xiàn)我們要求【f[1],f[2]】×(A+A2+A3+…+AN-1)。很多人使用一種很數(shù)學(xué)的方法構(gòu)造一個(gè)2r*2rrA的階數(shù),這里為2)的矩陣來計(jì)算,這種方法比較麻煩且很慢,這里不再介紹。下面考慮一種新方法。

                  仿照之前的思路,考慮1×3的矩陣【f[n-2],f[n-1],s[n-2]】,我們希望通過乘以一個(gè)3×3的矩陣A,得到1×3的矩陣:

            f[n-1],f[n],s[n-1]=f[n-1],f[n-1]+f[n-2],s[n-2]+f[n-1]

            容易得到這個(gè)3×3的矩陣是:

            0

            1

            0

            1

            1

            1

            0

            0

            1

            然后…………容易發(fā)現(xiàn),這種方法的矩陣規(guī)模是(r+1)*(r+1),比之前流行的方法好得多。

             

            (五)數(shù)列f[n]=f[n-1]+f[n-2]+n+1,f[1]=f[2]=1n項(xiàng)和s[n]的快速求法(不考慮高精度).

            解法:

                  結(jié)合(三)(四),容易想到……

            考慮1×5的矩陣【f[n-2],f[n-1],s[n-2],n,1,

            我們需要找到一個(gè)5×5的矩陣A,使得它乘以A得到如下1×5的矩陣:

            f[n-1],f[n],s[n-1],n+1,1

            =f[n-1], f[n-1]+f[n-2]+n+1,s[n-2]+f[n-1],n+1,1

            容易構(gòu)造出A為:

            0

            1

            0

            0

            0

            1

            1

            1

            0

            0

            0

            0

            1

            0

            0

            0

            1

            0

            1

            0

            0

            1

            0

            1

            1

            然后……問題解決。

             

            一般地,如果有f[n]=p*f[n-1]+q*f[n-2]+r*n+s

            可以構(gòu)造矩陣A為:

            0

            q

            0

            0

            0

            1

            p

            1

            0

            0

            0

            0

            1

            0

            0

            0

            r

            0

            1

            0

            0

            s

            0

            1

            1

             

             

            更一般的,對(duì)于f[n]=Sigma(a[n-i]*f[n-i])+Poly(n),其中0<i<=某常數(shù)c, Poly (n)表示n的多項(xiàng)式,我們依然可以構(gòu)造類似的矩陣A來解決問題。

            設(shè)Degree(Poly(n))=d, 并規(guī)定Poly(n)=0時(shí),d=-1,此時(shí)對(duì)應(yīng)于常系數(shù)線性齊次遞推。則本方法求前n項(xiàng)和的復(fù)雜度為:

            ((c+1)+(d+1))3*logn

            此方法高效、一般、統(tǒng)一、和諧

            posted on 2008-03-15 21:05 zoyi 閱讀(249) 評(píng)論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            歡迎光臨 我的白菜菜園

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(8)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            acmer

            online judge

            隊(duì)友

            技術(shù)

            朋友

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久综合狠狠综合久久激情 | 亚洲色欲久久久综合网| 亚洲а∨天堂久久精品9966| 久久精品人妻一区二区三区| 日批日出水久久亚洲精品tv| 久久精品免费一区二区| 97久久超碰国产精品2021| 久久香蕉国产线看观看乱码| 很黄很污的网站久久mimi色| 国产一区二区久久久| 狠狠狠色丁香婷婷综合久久五月 | 久久人妻AV中文字幕| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久电影网2021| AA级片免费看视频久久| 久久99九九国产免费看小说| 欧美丰满熟妇BBB久久久| 精品久久久久久无码中文野结衣 | 久久久久久久久久久久久久| 欧美亚洲色综久久精品国产| 久久综合伊人77777| 无码久久精品国产亚洲Av影片 | 日韩精品久久久久久免费| 国产精品日韩深夜福利久久| 伊人久久精品无码二区麻豆| 99久久婷婷国产一区二区| 亚洲人成网亚洲欧洲无码久久| 99久久精品国产一区二区蜜芽| 亚洲午夜久久久久久久久久| 久久精品不卡| 久久精品成人国产午夜| 久久精品人人做人人爽电影| 精品久久人人爽天天玩人人妻| 久久99精品久久久久久久久久| 一本色综合久久| 久久久人妻精品无码一区| 久久电影网一区| 久久精品亚洲中文字幕无码麻豆| 欧美精品一区二区久久| 99久久精品免费看国产一区二区三区| 国产亚洲综合久久系列|