欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

斐波那契logn算法(利用矩陣)Java-創(chuàng)新互聯(lián)

聲明:

本人只是剛開始學(xué)算法,了解可能不太透徹,有些東西也會(huì)說錯(cuò),見諒。只是希望做一個(gè)記錄,并且希望在一些小的知識(shí)點(diǎn)上可以恰好幫助到犯迷糊的同學(xué)。這里是我看的視頻上的一個(gè)斐波那契logn的一個(gè)算法,原理上不是很清楚,但是小的步驟是有的。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了平遠(yuǎn)免費(fèi)建站歡迎大家使用!正文:

首先是原理部分。斐波那契可以用矩陣實(shí)現(xiàn)。具體為

|F3,F2|? ?=?? |F2,F1| * |X|? ? ? ? ? ? ?(X暫時(shí)是未知矩陣)

|F4,F3|? ?=? ?|F3,F2| * |X|? ?=? ?|F2,F1| *? |X| * |X|

|F5,,F4|? ?=?? |F4,F3| * |X|? ?=? ? |F2,F1| * |X| * |X| *|X|

以此類推

|Fn,Fn-1|? ?=?? |F2,F1| * |X|的n-2次方??

計(jì)算|X|

首先寫下斐波那契那一組數(shù)

1? ,? 1? ,? 2? ,? 3? ,? 5? ,? 8? ,? 13

|2,1| = |1,1| *?|X|

|3,2| = |2,1| * |X|

按照矩陣的算法,1*a+1*c = 2? ? ? ? ? ?1*b+1*d = 1

2*a+1*c = 3? ? ? ? ? ?2*b+1*d = 2

算出a,b,c,d分別為1,1,1,0

所以|X|為|1 1|

?|1 0|

算出來|X|就可以直接算想要的fn了

矩陣的計(jì)算

想要計(jì)算最終結(jié)果,可以直接把n-2換成二進(jìn)制表示,有1的位就|F2,F1|*|X|,然后|X|自乘,接著此二進(jìn)制數(shù)右移1一位。 沒一的位直接|X|自乘,二進(jìn)制數(shù)進(jìn)一位(叫快速冪)

為什么矩陣可以這樣求最終結(jié)果。大概是數(shù)學(xué)上的知識(shí)。本人并不想深究。

代碼如下
public static int fib(int n) {
        if (n< 1) {
            return 0;
        }
        if (n == 1 || n == 2) {
            return 1;
        }
        //下面的這幾個(gè)還是靠自己算出來的,不過如果是普通的斐波那契,那這幾個(gè)數(shù)是固定的
        int[][] base = {{1, 1}, {1, 0}};
                        //[1,1]
                        //[1,0]
        int[][] res = matrixPoewr(base, n - 2);
        //因?yàn)橐婚_始是兩個(gè)1    1,1,2,3,5,8,13,用矩陣乘出來的結(jié)果就拿豎著的兩個(gè)
        return res[0][0] + res[1][0];
    }

    public static int[][] matrixPoewr(int[][] m, int p) {
        int[][] res = new int[m.length][m[0].length];//結(jié)果
        //初始化一個(gè)單位矩陣
        for (int i = 0; i< res.length; i++) {
            res[i][i] = 1;
        }
        int[][] t = m;//計(jì)數(shù)變量

        //方法名為   快速冪,為什么可以這樣不清楚,大概是數(shù)學(xué)上的知識(shí),記住就好
        //把冪變成二進(jìn)制,從最后一位開始算
        for (; p != 0; p >>= 1) {
            if ((p & 1) != 0) {//判斷末位是不是一個(gè)1,如果是1返回1
                res = muliMatrix(res, t);
            }
            t = muliMatrix(t, t);
        }
        return res;
    }

    //矩陣相乘,返回的也是矩陣
    public static int[][] muliMatrix(int[][] a, int[][] b) {
        int n = a.length;//行
        int m = b[0].length;//列
        int k = a[0].length;
        int[][] ans = new int[n][m];
        for (int i = 0; i< n; i++) {
            for (int j = 0; j< m; j++) {
                for (int c = 0; c< k; c++) {
                    ans[i][j] += a[i][c] * b[c][j];
                }
            }
        }
        return ans;
    }

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

新聞名稱:斐波那契logn算法(利用矩陣)Java-創(chuàng)新互聯(lián)
瀏覽路徑:http://chinadenli.net/article30/dehoso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、企業(yè)建站、網(wǎng)站排名、靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
色一情一伦一区二区三| 国产成人亚洲欧美二区综| 日韩一区二区三区18| 欧美区一区二在线播放| 人妻熟女欲求不满一区二区| 在线观看免费无遮挡大尺度视频| 国产精品香蕉一级免费| 色婷婷视频国产一区视频| 欧美日韩精品一区二区三区不卡| 日韩夫妻午夜性生活视频| 丁香六月婷婷基地伊人| 在线九月婷婷丁香伊人| 国产一级内射麻豆91| 欧美成人免费一级特黄| 91精品国产av一区二区| 91亚洲国产—区=区a| 国产av一区二区三区四区五区| 亚洲视频偷拍福利来袭| 精品熟女少妇一区二区三区| 国内精品美女福利av在线| 午夜福利92在线观看| 亚洲中文字幕人妻av| 91日韩欧美国产视频| 国产又大又硬又粗又黄| 久久久免费精品人妻一区二区三区| 99热中文字幕在线精品| 国产一区麻豆水好多高潮| 久久精品视频就在久久| 色偷偷亚洲女人天堂观看| 日本 一区二区 在线| 亚洲av日韩av高潮无打码| 国产精品欧美激情在线观看| 午夜视频在线观看日韩| 日本加勒比在线播放一区| 日本不卡片一区二区三区| 99久久精品午夜一区| 成人免费在线视频大香蕉| 亚洲国产精品肉丝袜久久| 美女露小粉嫩91精品久久久| 国产精品一区二区丝袜| 精品欧美国产一二三区|