`
zzysh
  • 浏览: 54059 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Fibonacci number

阅读更多
■斐波拉契数列的简介
  斐波拉契数列(又译作“斐波那契数列”或“斐波那切数列”)是一个非常美丽、和谐的数列,它的形状可以用排成螺旋状的一系列正方形来说明(如右词条图),起始的正方形(图中用灰色表示)的边长为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)
分享到:
评论

相关推荐

    Simple hardware description of a fibonacci number generator

    【标题】:斐波那契数列生成器的简单硬件描述 在数字电路设计领域,VHDL(Very High-Speed Integrated Circuit Hardware Description Language)是一种重要的编程语言,用于描述数字系统的结构和行为。本主题将深入...

    用Python实现斐波那契(Fibonacci)函数

    Fibonacci斐波那契数列,很简单,就是一个递归嘛,学任何编程语言可能都会做一下这个。 最近在玩Python,在粗略的看了一下Learning Python和Core Python之后,偶然发现网上有个帖子Python程序员的进化写的很有意思。...

    C++:斐波那契数列(迭代和递归)

    cout << "The Fibonacci number is: " << fibonacci(n) ; return 0; } ``` 在这个程序中,我们首先初始化`fib`和`prevFib`为斐波那契数列的前两个值,然后通过循环逐次计算后续项。 **递归法**: 递归法则是通过...

    matlabmatrix.rar_4 3 2 1_Fibonacci

    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 ...

    用C 语言实现斐波那契数列

    printf("The Fibonacci number at position %d is: %d\n", n, fibonacci(n)); return 0; } ``` 递归版本的代码利用了斐波那契数列的定义,直接将问题分解为更小的部分来求解。 3. **备忘录法**: 为了提高递归...

    斐波那契C程序 递归算法

    printf("Fibonacci number is %d\n", fibonacci(n)); return 0; } ``` 在这个程序中,`fibonacci`函数是递归函数,它根据斐波那契序列的定义来计算第n项。如果n等于0或1,函数直接返回n,这是递归的基本情况。...

    ran_number2_RandomNumber_斐波那契_

    斐波那契数列(Fibonacci Sequence)是一个数学上的数列,定义如下:第一项是0,第二项是1,后续每一项都是前两项之和。用数学公式表示为:F(n) = F(n-1) + F(n-2),其中n大于1。这个数列在自然界、艺术和计算机科学...

    递归算法算斐波那契数列

    printf("The Fibonacci number at position %d is: %ld\n", n, g); getch(); // 等待用户按键,以便查看输出结果 return 0; } ``` ### 总结 本文详细介绍了如何使用递归算法计算斐波那契数列。虽然递归方法简洁...

    斐波那契数列,矩阵连乘法

    cout << "The " << n << "th Fibonacci number is: " << fibonacci(n) ; return 0; } ``` 在这个代码中,我们首先定义了一个2x2的矩阵类型,然后实现了矩阵乘法和矩阵快速幂函数。`matrixPower`函数使用分治策略...

    FIBONACCI_recap.m

    FIBONACCI.m it can calculate the fibonacci number.

    斐波那契数列第100万项的整数值

    cout << "The " << n << "-th Fibonacci number is: " (n) ; return 0; } ``` 对于非常大的n,如100万,动态规划或矩阵快速幂等高级算法可能会更合适,因为它们可以在对数时间内计算出结果,显著提高了效率。然而...

    用循环队列实现斐波那契数列的输出

    printf("Fibonacci number: %d\n", nextFib); enQueue(&queue, nextFib); } return 0; } ``` 以上代码实现了一个使用循环队列的斐波那契数列生成器,由于队列长度限制为5,所以最多可以输出5个斐波那契数。...

    fibo.zip_7W6_WDD4_linux_nasm_nasm 斐波那契

    result db 'The Fibonacci number is: ', 0 section .bss num resb 1 ; 存储用户输入的数字 section .text global _start _start: ; 输出提示信息 mov eax, 4 mov ebx, 1 lea ecx, [prompt] mov edx, 17 ...

    SNTFIBO_number_prime-fibonacci_

    在"描述"中提到的"recognize the prime fibonacci-number"暗示可能有一个程序或算法用于自动识别素数斐波那契数。这可能涉及到动态编程或者数学归纳法,通过存储和重用先前计算的斐波那契数来提高效率,同时结合素数...

    FibonacciNumber:一个使用手工大数数据类型计算多达300个斐波纳契数的程序

    斐波那契数 一个使用不同时间复杂度实现的可计算多达300个斐波纳契数的程序 我还自己实现了一个大数数据类型,以支持斐波那契数计算的操作 安装 要安装,只需拉master分支即可下载该应用程序。 对于bash shell,...

    菲比数列_vc++_

    cout << "The " << n << "th Fibonacci number is: " << fibonacci(n) ; return 0; } ``` 在这个程序中,我们首先检查n是否小于或等于1,如果是,则直接返回n。否则,通过一个循环计算第n个斐波那契数。这种方法...

    C#,泰波拿契数(Tribonacci Number)的算法与源代码

    各种数据结构、算法及实用的C#源代码 C#,泰波拿契数(Tribonacci Number)的算法与源代码 泰波拿契数 (Tribonacci Number) 即把费波拿契数 (Fibonacci Number) 的概念推广至三个数。

    CSE.rar_CSE_in

    printf("The %dth Fibonacci number is: %d\n", n, fibonacci(n)); return 0; } ``` 这个程序计算并输出第n个斐波那契数。 在实际编程中,为了优化递归版本,可以使用动态规划(存储中间结果,避免重复计算)...

    23480XXX 张三程序设计基础实验报告1

    - `void PrintFN(int m, int n)`:这个函数的任务是打印出m到n之间(包含m和n)的所有斐波那契数,相邻数字间有一个空格,若区间内没有斐波那契数则输出"No Fibonacci number"。 3. **解题策略**: - 首先,我们...

Global site tag (gtag.js) - Google Analytics