Java矩阵求幂法寻找斐波那契序列

Java矩阵求幂法寻找斐波那契序列,java,matrix,fibonacci,exponentiation,Java,Matrix,Fibonacci,Exponentiation,不知道如何将其映射到代码,因为这就是我要做的 这里有几个Java中的斐波那契示例 public class Fibonacci { public static void main(final String[] args) { for (int i = 0; i < 20; i++) { System.out.print(fib1(i)); System.out.print(' '); }

不知道如何将其映射到代码,因为这就是我要做的
这里有几个Java中的斐波那契示例

public class Fibonacci
{
    public static void main(final String[] args) {
        for (int i = 0; i < 20; i++) {
            System.out.print(fib1(i));
            System.out.print(' ');
        }
        System.out.println();
        for (int i = 0; i < 20; i++) {
            System.out.print(fib2(i));
            System.out.print(' ');
        }
    }

    // naive recursive implementation
    static int fib1(int n) {
        if (n < 2) return n;
        return fib1(n - 1) + fib1(n - 2);
    }

    // dynamic programming implementation
    static int fib2(int n) {
        if (n < 2) return n;
        int n2 = 0, n1 = 1;
        for (int i = 2; i <= n; i++) {
            int n0 = n1 + n2;
            n2 = n1;
            n1 = n0;
        }
        return n1;
    }
}

不确定矩阵求幂和它有什么关系。

有一个所谓的Q矩阵,一个来自图片

| 1 1 | n      | F(n+1) F(n)   |
| 1 0 |    =   | F(n)   F(n-1) |
Q的链乘法将生成所需的Fi。将所需次数n-1,Q与自生结果Qpow相乘,并返回Qpow[0][0]


我在我的博客上发布了一个平方的例子,.

用一个简单的斐波那契序列,并试图找出一个算法来创建这个序列矩阵求幂让算法得到Ologn的运行时间我不知道如何在Lin中编码这个矩阵,尽管我知道它是如何工作的。这有点难理解。你能说得更清楚一点吗?Q在楼上,我们做Q的矩阵乘法,Q={{2,1},{1,1}}{{F3,F2},{F2,F1}我们有F3=2