求Fibonacci数的几种方法
来源:互联网 发布:苹果6s支持4g十网络吗 编辑:程序博客网 时间:2024/04/28 13:22
先给出Fibonacci的定义:
简单地总结了下,至少有5中方法来求Fibonacci(n)。
- 直接带公式
- 简单递归
- 循环
- 改进的递归
- 使用矩阵
这里主要介绍下如何用矩阵来求F(n)。
直接公式
简单递归
循环
改进的递归
使用矩阵
首先,我们要构造出一个合适的矩阵运算式。下面是其中一种选择方案:
很显然,这是一个递归定义式。我们可以进一步进行转化。
我们可以看到,F(n)事实上就等于上述公式中第二个矩阵n-1次幂后下标为(0,0)的元素值。现在的问题转化到如何快速地求解矩阵的幂运算。可以参考之前的一篇Blog:Exponentiation 的 O(logn) 算法。那么我们可以设计一个快速的矩阵幂运算实现方式。
其中的Square和Product函数很好实现。那么,求解斐波那契的矩阵实现可以写成:
关于上面介绍的矩阵运算,可以很好的运用到HDU1005和ZJUT1026。参考解答可以在HDU1005和ZJUT1026找到。
- 求Fibonacci数的几种方法
- 求Fibonacci数的几种方法[转载]
- 求逆序数的几种方法
- 求逆序数的几种方法
- [组合数]求组合数的几种方法总结
- [组合数]求组合数的几种方法总结
- [组合数]求组合数的几种方法总结
- 求三个数中最大数的几种方法
- 求Fibonacci数的三种方法和时间复杂度解析
- 数学总结之求逆序数的几种方法
- 求Fibonacci数(递归)
- 求逆序数的几种做法
- 求组合数的几种方式
- Codeforces 126D Fibonacci Sums 求n由任意的Sum(fib)的方法数 dp
- Fibonacci数列实现的几种方法(java实现)
- 几种计算机求解Fibonacci number的方法
- Fibonacci数列几种不同的编程实现方法
- java中用递归方法求第n个Fibonacci数
- Hash talbe 多重散列(Double Hashing)
- 3/15,别忘记维护你的权利!各地消费者协会网址、投诉电话一览表!
- request的setAttribute()怎么用的?
- ExtJs2.2.1学习第一天Viewreport疑惑
- 使用net.sf.json包生成一个pojo的json数据出现的问题
- 求Fibonacci数的几种方法
- 管道通信
- XEIM 基本功能一
- Physx文档翻译(边看边翻译的没有整理质量不高)
- 生日
- 阔别很久的CSDN,我回来了
- ASP.NET中如何调用存储过程
- 与电子商务网站系统有机结合
- 解剖ExtJS中的Function类中的createDelegate方法