■斐波拉契数列的简介
斐波拉契数列(又译作“斐波那契数列”或“斐波那切数列”)是一个非常美丽、和谐的数列,它的形状可以用排成螺旋状的一系列正方形来说明(如右词条图),起始的正方形(图中用灰色表示)的边长为1,在它左边的那个正方形的边长也是1 ,在这两个正方形的上方再放一个正方形,其边长为2,以后顺次加上边长为3、5、8、13、2l……等等的正方形。这些数字每一个都等于前面两个数之和,它们正好构成了斐波那契数列。“斐波那契数列”的发明者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci,生于公元1170年,卒于1240年。籍贯大概是比萨)。他被人称作“比萨的列昂纳多”。1202年,他撰写了《珠算原理》(Liber Abaci)一书。他是第一个研究了印度和阿拉伯数学理论的欧洲人。他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。
斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34……
这个数列从第三项开始,每一项都等于前两项之和。它的通项公式为:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n} (√5表示5的算术平方根) (19世纪法国数学家敏聂(Jacques Phillipe Marie Binet 1786-1856)
很有趣的是:这样一个完全是自然数的数列,通项公式居然是用无理数来表达的。
■斐波拉契数列的出现
13世纪初,欧洲最好的数学家是斐波拉契;他写了一本叫做《算盘书》的著作,是当时欧洲最好的数学书。书中有许多有趣的数学题,其中最有趣的是下面这个题目:
“如果一对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月裏,又能开始生1对小兔子,假定在不发生死亡的情况下,由1对初生的兔子开始,1年后能繁殖成多少对兔子?”
斐波拉契把推算得到的头几个数摆成一串:1,1,2,3,5,8……
这串数里隐含着一个规律:从第3个数起,后面的每个数都是它前面那两个数的和。而根据这个规律,只要作一些简单的加法,就能推算出以后各个月兔子的数目了。
于是,按照这个规律推算出来的数,构成了数学史上一个有名的数列。大家都叫它“斐波拉契数列”,又称“兔子数列”。这个数列有许多奇特的的性质,例如,从第3个数起,每个数与它后面那个数的比值,都很接近于0.618,正好与大名鼎鼎的“黄金分割律”相吻合。人们还发现,连一些生物的生长规律,在某种假定下也可由这个数列来刻画呢。
斐氏本人对这个数列并没有再做进一步的探讨。直到十九世纪初才有人详加研究,1960年左右,许多数学家对斐波拉契数列和有关的现象非常感到兴趣,不但成立了斐氏学会,还创办了相关刊物,其后各种相关文章也像斐氏的兔子一样迅速地增加。
■斐波拉契数列的来源及关系
斐波拉契(Fibonacci)数列来源于兔子问题,它有一个递推关系,
f(1)=1
f(2)=1
f(n)=f(n-1)+f(n-2),其中n>=2
{f(n)}即为斐波拉契数列。
■斐波拉契数列的公式
它的通项公式为:{[(1+√5)/2]^n - [(1-√5)/2]^n }/√5 (注:√5表示根号5)
分享到:
相关推荐
Fibonacci斐波那契数列,很简单,就是一个递归嘛,学任何编程语言可能都会做一下这个。 最近在玩Python,在粗略的看了一下Learning Python和Core Python之后,偶然发现网上有个帖子Python程序员的进化写的很有意思。...
2) Write a program which accepts an input k from the keyboard, and which prints out the smallest fibonacci number that is at least as large as k. The program should also print out its position in the ...
FIBONACCI.m it can calculate the fibonacci number.
斐波那契数 一个使用不同时间复杂度实现的可计算多达300个斐波纳契数的程序 我还自己实现了一个大数数据类型,以支持斐波那契数计算的操作 安装 要安装,只需拉master分支即可下载该应用程序。 对于bash shell,...
斐波那契数列随机数发生器、线性同余随机数发生器
recognize the prime fibonacci-number
各种数据结构、算法及实用的C#源代码 C#,泰波拿契数(Tribonacci Number)的算法与源代码 泰波拿契数 (Tribonacci Number) 即把费波拿契数 (Fibonacci Number) 的概念推广至三个数。
fibo-GMP 该程序计算斐波那契数列的第 N 个元素。 提出的实现使用执行矩阵乘法和递归供电的迭代... 在 Ubuntu 上,它是这样安装的: sudo apt-get install libgmp-dev样本输出 $ ./fibo 10011001st Fibonacci number: ...
1. Fibonacci Number 2. Lucas Number 3. Catalan Number 4. Stirling Number(Second Kind) 5. Bell Number 6. Stirling's Approximation 7. Sum of Reciprocal Approximation 8. Young Tableau 9. 整数划分 10. ...
1. Fibonacci Number 2. Lucas Number 3. Catalan Number 4. Stirling Number(Second Kind) 5. Bell Number 6. Stirling's Approximation 7. Sum of Reciprocal Approximation 8. Young Tableau 9. 整数划分 10. ...
计算fibonnacci数的位数,给出Fibonacci数的位数的严格证明
fibonacci-number:用CodeSandbox创建
斐波那契数列 509. Fibonacci Number 跳台阶 70. Climbing Stairs 变态跳台阶 矩形覆盖 二进制中1的个数 191. Number of 1 Bits 数值的整数次方 50. Pow(x, n) 调整数组顺序使奇数位于偶数前面 905. Sort Array By ...
C#,卢卡斯数(Lucas Number)的算法与源代码 卢卡斯数(Lucas Number)是一个以数学家爱德华·卢卡斯(Edward Lucas)命名的整数序列。爱德华·卢卡斯既研究了这个数列,也研究了有密切关系的斐波那契数(两个数列...
此文件找出所需的斐波那契数。 该函数可以称为 fibon(n),其中 n 是要计算斐波那契数的数字。 nb 此文件不提供斐波那契数列或数字序列,而仅提供所需的数字。 它不需要符号数学工具箱
bigint-gcd 使用 Lehmer 的 GCD 算法的两个 BigInt 值的更大公约数 (gcd)...function FibonacciNumber ( n ) { console . assert ( n > 0 ) ; var a = 0n ; var b = 1n ; for ( var i = 1 ; i < n ; i += 1 ) {
在llvm工具的帮助下实现的语言。 该项目是一个使用llvm工具生成llvm中间表示(llvm-IR)的编译器,然后也使用llvm工具将llvm-IR转换为机器代码。...Kaleido中的示例代码# Compute the x'th fibonacci number.def fib(x)
//Main 代码如下:using System...namespace Fibonacci{ class Program { static void Main(string[] args) { Console.WriteLine(“Would you like to know which Fibonacci Numbers:”); int number = Convert.T
道理 Dyalect是用于.NET Core平台的动态编程语言。 它轻巧,快速且现代。 Dyalect(或简称Dy)是用C#编写的...// Calculate the n-th fibonacci number fib ( 11 ) 扩展标准类型: func Float . pow (n) { var re