Fibonacci numbers已经成为一种流行的介绍递归计算机科学的学生和有自己天性中坚持一个有力的论据。由于这些原因,我们很多人都熟悉他们。
他们也计算机科学中存在太多的其他地方;在令人惊讶地有效的数据结构和算法基于所述序列。
有迹象表明,首先想到的两个主要的例子:
有没有办法,让他们比其他数字序列的优势,这些数字的一些特殊性质?它是一个空间的品质?他们可以有什么其他可能的应用?
我觉得奇怪,我因为是发生在其他递归问题的许多自然数列,但我从来没有见过一个Catalan堆。
斐波那契数有各种非常好的数学特性,使得其在计算机科学优秀的。这里有几个:
我敢肯定有比这只是更多的理由,但我敢肯定,其中一些原因是主要因素。希望这可以帮助!
Greatest Common Divisor是另一个法宝;看到this太多的魔法。但是,斐波那契数很容易计算;也有一个特定的名称。例如,自然数1,2,3,4,5有太多的逻辑;所有素数都在其中; 1..N的总和是可计算的,每个人都可以用其他的产生,......但没有人需要对他们照顾:)
我忘了一件重要的事情是Golden Ratio,这在现实生活中非常重要的影响(例如你喜欢宽屏显示器:)
如果你有一个可以在一个简单明了mannor在CS和自然地解释用容易理解的例子的算法,有什么更好的教学工具,可能会有人想出?
斐波那契序列确实在自然界/生活中随处可见。他们在动物种群,植物细胞生长,雪花形,株形,加密的造型增长有用,当然还有计算机科学。我听说它被称为大自然的DNA模式。
斐波那契堆的已经提及;在堆中的每个节点的子节点的数量为至多的log(n)。也开始具有m孩子的节点的子树是至少第(m + 2)个Fibonacci数。
洪流就像它们使用节点的系统和超节点使用斐波那契数来决定何时需要新的超级节点,这将有多少子节点管理协议。他们这样做基于斐波那契螺旋(黄金比例)节点管理。见下文节点如何分割照片/合并(从一个大的平方成较小的,反之亦然分区)。见照片:http://smartpei.typepad.com/.a/6a00d83451db7969e20115704556bd970b-pi
一些事件的性质
http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fibonacci/sneezewort.GIF
http://img.blogster.com/view/anacoana/post-uploads/finger.gif
http://jwilson.coe.uga.edu/EMAT6680/Simmons/6690Pictures/pinecone3yellow.gif
我不认为有一个明确的答案,但一种可能性是将一组S为两个分区S1和S2之一的操作,其中然后被分成子分区S11和S12,其中之一的大小与同S2 - 是一个可能的方法来许多算法,并且可以被数值有时被描述为斐波纳契数列。
让我补充另一种数据结构到你:斐波那契树。他们是有趣的,因为在树的下一个位置的计算可以通过仅仅加入先前的节点来完成:
http://xw2k.nist.gov/dads/html/fibonacciTree.html
它关系以及与由AVL树templatetypedef的讨论(AVL树可以在最坏的情况有斐波纳契结构)。我也看到了延长斐波纳契步骤,而不是在某些情况下,两个大国的缓冲区。
我想补充一个琐事此事,斐波那契数说明兔子的面包屑。你开始(1,1),两只兔子,然后他们的人口呈指数增长。
他们为[0,1],[1,1]矩阵可以看作是运筹学最原始的问题的功率计算(有点像囚徒困境是博弈论的最原始的问题)。