在算法导论第三章中,提到了阶乘和斐波那契数,颠覆或者说是加深了我以前对这两种数的理解。以前是无法想象这个数有多大,但现在是有了一个概念。
阶乘
阶乘的定义为
n!= n>0?1:n*(n-1)!
根据斯特林公式Stirling有:
n!=sqrt(2pi*n)*(n/e)^n*(1+THETA(1/n))
由这个公式,数学中关于阶乘与其他函数大小的比较就了然了。
另一个关系式也有所帮助:
n!=sqrt(2pi*n)*(n/e)^n*e^(an)
1/(12n+1)<an<1/(12n)
斐波那契数
其定义为
F0=0
F1=1
F(i)=F(i-2)+F(i-1),i>=2
序列为:
0,1,1,2,3,5,8,13,21…………
斐波那契数和黄金分割比例fai与^fai有密不可分的关系。
黄金分割比例为下面方程的两个解:
x^2=x+1
解为:
fai=(1+sqrt(5))/2=1.61803
^fai=(1-sqrt(5))/2=0.61803
这样就有:
Fi=(fai^i-^fai^i)/sqrt(5)
可以归纳法证明。
又由于:
abs(^fai^i)/sqrt(5)<1/sqrt(5)<1/2
===>
Fi=floor((fai^i)/sqrt(5)+1/2)
这样,斐波那契数就是指数增长的。
分享到:
相关推荐
百鸡问题 递归与非递归求最大公约数 斐波那契数列递归与非递归算法 递归与非递归求阶乘
java阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘阶乘
NULL 博文链接:https://z-jls03.iteye.com/blog/830994
阶乘与排列组合算法!在各行各业都能用得到的,比较彩票业,以及复杂的生产环境预测等软件开发
基于Labview虚拟技术实现数的阶乘的实现,输入数,输出对应数的阶乘
C语言实现求两个数的阶乘 C语言实现求两个数的阶乘
阶乘 阶乘计算 大数阶乘 大整数阶乘 用数组计算阶乘
当N!过大,无法用INT LONG __INT64 接收时,只能通过二维数组,将每一位数据截取出来。
求该大数的阶乘的算法,初始化存储结果的数组,计算大数的阶乘的算 法。该程序的编程思想是因为大数求得阶乘后的数字太大,占据的空间 很大,所以必须利用数组来存储所得的结果,这样就必须确定所得的结 果所占的...
求某个数的阶乘java代码 输出:Hello!---20的阶乘等于:2432902008176640000
C++ 求任意数的阶乘
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。 亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!...
java 求任意一个正数的阶乘 java 求任意一个正数的阶乘
计算输入数的阶乘值,从1到输入数的阶乘的和,显示计算结果。
3000以内阶乘计算,可以精确输出每一位,给出阶乘计算的位数。
求任意n 个数的阶乘和及n的阶乘!输出N的阶乘及n的阶乘和!!!
可以精确计算 1到 17110之间所有数的阶乘,和阶乘之和,用c语言实现
可以任意输入开始数字和结束数字,能求得起止数字间的阶乘之和
这是使用Java编程来求输入数阶乘的一个经典例子,请大家有需要的多多参考!
提交数: 22935 通过数: 17332 【题目描述】 给定正整数n,求不大于n的正整数的阶乘的和(即求1!+2!+3!+...+n!),输出阶乘的和。 【输入】 输入有一行,包含一个正整数n(1 )。 【输出】 输出有一行:阶乘的和。 ...