矩阵快速幂求斐波那契数列
来源:互联网 发布:华融新兴产业投资 知乎 编辑:程序博客网 时间:2024/05/16 20:00
快速幂
求数
public int power(int a, int n){ int result = 1; while (n > 0) { if (n % 2 == 1) { result *= a; } n /= 2; a *= a; } return result;}
矩阵快速幂
和上述思路完全一样,只是全部对于矩阵乘法。斐波那契数列定义如下
可以构造矩阵
public class Fibonacci { static int[][] dot(int[][] A, int[][] B) { int Arows = A.length; int Acols = A[0].length; int Brows = B.length; int Bcols = B[0].length; assert (Acols == Brows); int tmp; int[][] R = new int[Arows][Bcols]; for (int i = 0; i < Arows; i++) { for (int j = 0; j < Bcols; j++) { tmp = 0; for (int k = 0; k < Acols; k++) { tmp += A[i][k] * B[k][j]; } R[i][j] = tmp; } } return R; } static int fibonacci(int n) { if (n == 0) return 0; n -= 1; int[][] result = new int[][]{{1, 0}, {0, 1}}; int[][] A = new int[][]{{1, 1}, {1, 0}}; while (n > 0) { if (n % 2 == 1) { result = dot(result, A); } n /= 2; A = dot(A, A); } return result[0][0]; } public static void main(String[] args) { System.out.println(fibonacci(100000)); }}
0 0
- 利用矩阵快速幂求斐波那契数列
- 矩阵快速幂求斐波那契数列 poj3070
- 矩阵快速幂求斐波那契数列
- 矩阵快速幂求斐波那契数列
- 矩阵快速幂求斐波那契数列
- 矩阵快速幂求斐波那契数列
- 用矩阵快速幂求斐波那契数列
- 矩阵快速幂求斐波那契数列
- POJ 3070 矩阵快速幂求斐波那契数列
- POJ 3070-Fibonacci(矩阵快速幂求斐波那契数列)
- 程序设计实习递归练习 矩阵快速幂求斐波那契数列
- 矩阵快速幂求斐波那契数列(初学整理)
- 矩阵快速幂求斐波那契数列第n项
- 矩阵快速幂求斐波那契数列(初学整理)
- 矩阵快速幂斐波那契数列
- 矩阵快速幂,求斐波那契数列
- hdu3117(斐波那契数列+矩阵快速幂)
- 菲波那契数列的快速幂矩阵求法
- REST面向资源架构 RESTful架构
- 基于SYD8801的蓝牙遥控器设计方案
- 结构体乱序初始化
- EntryPointNotFoundException
- Android分屏/画中画——来自MIUI的一封信
- 矩阵快速幂求斐波那契数列
- CentOS7安装和配置FTP
- C# 少量字符串链接方法及测试(1)字符串与字符串
- 变态跳台阶
- javascript创建对象,以及实现继承的方法
- 傅里叶分析之掐死教程(完整版)
- 东软、天健、金仕达、杭创、中联..HIS比较
- 用户登录界面的设置
- iOS MesaSQLite数据库简单使用