斐波那契数已成为计算机科学学生进行递归的热门介绍,并且有一个强有力的论据认为它们在自然界中会持久存在。由于这些原因,我们许多人都熟悉它们。
它们也存在于其他地方的计算机科学中。基于序列的令人惊讶的高效数据结构和算法。
我想到了两个主要示例:
这些数字是否具有某些特殊性质,使其比其他数字序列具有优势?是空间品质吗?他们还有什么其他可能的应用程序?
对我来说,这很奇怪,因为在其他递归问题中还有很多自然数序列,但是我从未见过加泰罗尼亚语堆。
Answers:
斐波那契数具有各种非常好的数学性质,使其在计算机科学中非常出色。这里有一些:
我敢肯定,除了上述原因外,还有更多原因,但是我确信其中一些原因是主要因素。希望这可以帮助!
perl -Mbignum -le'$n=0;$c=1;while(1){$n++;$c*=(4*$n-2);$c/=($n+1);print"$n\t$c"}' | head -n 100
最大公约数是另一种魔法。看到这太多的魔法。但是斐波那契数很容易计算。还有一个特定的名字。例如,自然数1,2,3,4,5逻辑太多;所有素数都在其中;1..n的总和是可计算的,每个人都可以与其他人一起生产,...但是没人照顾他们:)
我忘了的一件事很重要,那就是黄金分割率(Golden Ratio),它对现实生活有非常重要的影响(例如,您喜欢宽屏显示器:)
斐波那契数列确实存在于自然/生命的任何地方。它们可用于模拟动物种群的增长,植物细胞的生长,雪花形状,植物形状,密码学以及计算机科学。我听说它被称为自然的DNA模式。
斐波那契堆已经被提及;堆中每个节点的子代数最多为log(n)。同样,从具有m个子节点的节点开始的子树至少是第(m + 2)个斐波那契数。
使用节点和超节点系统的类似Torrent的协议使用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
让我为您添加另一个数据结构:斐波那契树。它们很有趣,因为仅通过添加前一个节点即可完成树中下一个位置的计算:
http://xw2k.nist.gov/dads/html/fibonacciTree.html
它与AVL树上的templatetypedef的讨论密切相关(AVL树最坏的情况下可以具有斐波那契结构)。在某些情况下,我还看到缓冲区以斐波那契步长扩展,而不是2的幂。
他们以[[0,1],[1,1]]矩阵的幂计算可以被认为是运筹学中最原始的问题(类似于囚徒困境是博弈论中最原始的问题)。