Fibonacci数,Θ(log n)
作者:infinte 来源:infinte博客 时间:2010-03-28 13:28:00
生成Fiboncci Fn数有Θ(1),Θ(n)甚至指数级的算法,不过有Θ(log n)的吗?告诉你,有。
首先,关于Fibonacci数,有下面的定理(假设F0 = 0,n≥2)
证明可以用归纳法,n=2时不证自明,假设n=k-1时成立,那么n=k时,
现在,计算F(n)的问题就转化到计算矩阵上来。不过现在问题已经很明晰了——反复平方法。
下面是js源码:
var fib = function() {var f = function(n, a, b, p, q) {if (n == 0) return b;if (n & 1) return f(n - 1, b * q + a * q + a * p, b * p + a * q, p, q)else return f(n >>> 1, a, b, q * q + p * p, q * (2 * p + q));}return function(n) {return f(n, 1, 0, 0, 1)};}();
标签:Fibonacci,函数,数学,算法
0
投稿
猜你喜欢
通向MySQL神秘王国的图形化之路
2008-12-08 13:43:00
如何检测用户第一次访问我的网站并显示友好信息?
2009-11-25 20:33:00
CSS模块化设计—从空格谈起
2007-12-15 09:41:00
再谈float菜单局中
2009-12-21 19:57:00
OraclePL/SQL单行函数和组函数详解
2010-07-28 13:02:00
用户如何有效地利用ORACLE数据字典
2008-03-04 18:19:00
段正淳的css笔记(1)分类之间的横竖线
2007-11-01 21:47:00
asp彩色验证码的制作详解
2007-09-18 13:22:00
如何获取浏览器的更多信息?
2009-11-23 20:48:00
Oracle三种上载文件技术
2010-07-16 13:34:00
DW实现滚动新闻
2007-12-03 11:35:00
扩展数据库系统选项实现更高的可扩展性
2009-01-06 11:14:00
如何调用Oracle存储过程?
2009-11-15 20:13:00
根据时段自动切换你的站点CSS皮肤风格
2007-09-20 18:08:00
PSD to CSS —— CSS布局实战新概念系列教程
2009-05-30 16:40:00
小看了setTimeout()
2009-12-04 12:44:00
技巧和诀窍:用Silverlight支持全屏模式
2007-09-23 12:37:00
如何控制弹出一个NTLM验证窗口?
2009-12-16 19:01:00
MySQL配置文件my.cnf中文版
2011-09-30 11:06:15
sqlserver中根据字符分割字符串的最好的写法分享
2012-06-06 19:44:40