斐波那契数列三种实现+矩阵乘法+矩阵cimi
package com.lyk.kk;/** * Created by Administrator on 2017/9/4. */ public class A1 {//矩阵乘法 public int [][] muliMatrix(int [][]m,int [][]n){//定义结果数组 行为m行,列为n列 int [][]result=new int[m.length][n[0].length];for(int i=0;i<m.length;i++){for(int j=0;j<n[0].length;j++){for(int k=0;i<n.length;k++){result[i][j]+=result[i][k]*result[k][j];}}}return result;}//矩阵的n次幂 public int[][] matrixPower(int [][]m,int p){int [][]result=new int[m.length][m[0].length];for(int i=0;i<result.length;i++){result[i][i]=1;}int [][]temp=m;for(;p!=0;p>>=1){if((p&1)!=0){result=muliMatrix(temp,temp);}}return result;}//求斐波那契数列。用矩阵实现。复杂度0(longN). public int f3(int n){if(n<1) return 0;if(n==1||n==2){return 1;}int [][] base={{1,1},{1,0}};int [][] result=matrixPower(base,n-2);return result[0][0]+result[1][0];}//求斐波那契额数列,O(N) public int f2(int n){if(n<1) return 0;if(n==1||n==2){return 1;}int now=1;int pre=1;int temp=0;for(int i=3;i<=n;i++){temp=now;now=pre+now;pre=temp;}return now;}//求斐波那契数列,暴力递归O(2^N) public int f1(int n){if(n<1) return 0;if(n==1||n==2){return 1;}return f1(n-1)+f1(n-2);} }
package com.lyk.kk;/** * Created by Administrator on 2017/9/4. */ public class A1 {//矩阵乘法 public int [][] muliMatrix(int [][]m,int [][]n){//定义结果数组 行为m行,列为n列 int [][]result=new int[m.length][n[0].length];for(int i=0;i<m.length;i++){for(int j=0;j<n[0].length;j++){for(int k=0;i<n.length;k++){result[i][j]+=result[i][k]*result[k][j];}}}return result;}//矩阵的n次幂 public int[][] matrixPower(int [][]m,int p){int [][]result=new int[m.length][m[0].length];for(int i=0;i<result.length;i++){result[i][i]=1;}int [][]temp=m;for(;p!=0;p>>=1){if((p&1)!=0){result=muliMatrix(temp,temp);}}return result;}//求斐波那契数列。用矩阵实现。复杂度0(longN). public int f3(int n){if(n<1) return 0;if(n==1||n==2){return 1;}int [][] base={{1,1},{1,0}};int [][] result=matrixPower(base,n-2);return result[0][0]+result[1][0];}//求斐波那契额数列,O(N) public int f2(int n){if(n<1) return 0;if(n==1||n==2){return 1;}int now=1;int pre=1;int temp=0;for(int i=3;i<=n;i++){temp=now;now=pre+now;pre=temp;}return now;}//求斐波那契数列,暴力递归O(2^N) public int f1(int n){if(n<1) return 0;if(n==1||n==2){return 1;}return f1(n-1)+f1(n-2);} }
斐波那契数列三种实现+矩阵乘法+矩阵cimi相关推荐
- 斐波那契数列三种方法计算,光棍节快乐
//斐波那契数列三种方法计算 //Fibnacci(0)=0 //Fibnacci(1)=1 //Fibnacci(n)=Fibnacci(n-1)+Fibnacci(n-2) [n>1] / ...
- 实现斐波拉契的三种方法
实现斐波拉契的三种方法: 方法一:递归方法 def fib_1(index):if index <= 2:return 1else:return fib_1(index-1) + fib_1(i ...
- 斐波那契数列两种算法实现(循环,递归)
首先是最简单的递归算法,相信很多初学者第一次接触递归这种算法都是从写一个斐波那契数列开始的. 这里除了递归算法之外我还会介绍循环算法 首先是最基础的递归算法 #include <stdio.h& ...
- C++实现斐波那契的三种方法
题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N)).斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + ...
- python3实现斐波那契数列--4种方法
基础版(list方法) # 比较占内存 w = int(input("输入一个数字还你一个斐波那契数列:")) list_res = [] def list_n(n):if n&g ...
- 斐波那契数列的第n项(矩阵快速幂)
矩阵快速幂是用来求解递推式的,所以第一步先要列出递推式: f(n)=f(n-1)+f(n-2) 第二步是建立矩阵递推式,找到转移矩阵: ,简写成T * A(n-1)=A(n),T矩阵就是那个2*2的 ...
- Java实现斐波那契数列(递归、遍历、矩阵)
什么是斐波那契数列 其实很简单,可以理解为: F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) 比如这样一个数列:1.1.2.3.5.8.13.21.34 ...
- Acwing语法基础课第八次课(1)751. 数组的左方区域最小数和它的位置741. 斐波那契数列740. 数组变换753. 平方矩阵 I
751. 数组的左方区域 题目 提交记录 讨论 题解 视频讲解 输入一个二维数组 M[12][12],根据输入的要求,求出二维数组的左方区域元素的平均值或元素的和. 数组的两条对角线将数组分为了上下左 ...
- 青蛙跳台阶问题暨斐波那契数列
1.问题描述 一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 2.问题分析 设 f(n) 表示青蛙跳上 n 级台阶的跳法数.当只有一个台阶时, ...
最新文章
- [原创]Gerrit中文乱码问题解决方案分享
- 数据库SQL语句学习笔记(3)-排序检索数据
- sql int 转string_SQL智能代码补全引擎【sql-code-intelligence】介绍
- shell之常用工具的使用
- amd显卡风扇调节_非公版才是真爱 讯景XFX RX6800 XT海外版显卡评测
- 2057. 值相等的最小索引
- 使用Go和WebSockets构建实时聊天服务器
- data layui table 排序_使用pandas的pivot_table方法统计2019年各省份GDP最大最小值及其对应的所在城市...
- 【java】两个线程如何交替执行,一个输出偶数一个输出奇数?
- 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别...
- sql两张表,分组或row_number()取最新的记录SQL
- 小写的tensor接受数据,大写的Tensor()接受的是shape,数据的维度
- DateUtils工具类
- python生成加密exe_python加密保护-加密exe文件
- 数据分析方法——01描述性统计
- 使用多个可选过滤器过滤 Eloquent 模型
- 如何成为一名云计算工程师
- 小米5s Plus 安装Xposed框架
- 数据结构C语言实现-6—图
- my read law / notarization / gongzheng
热门文章
- java.net.SocketException: Operation not permitted
- 无限尸潮服务器,尸潮系统(ZombieLoginReload)插件
- lighthouse使用_如何使用Lighthouse分析网站性能
- php 二维数组 随机排序_PHP二维数组排序简单实现方法
- java sftp.mkdir 报错,java mkdir用法
- 开发笔记:基于积分的游戏排行榜实现方式探讨
- bloomfilter java_Java项目实战篇:用Redis快速实现BloomFilter!
- 稀疏结构模型——套索模型、组套索、重叠组套索模型
- 使用JS页面倒计时,时间到了之后提交表单
- iOS开发实用工具类,助你开发一臂之力