用PowerShell创建一个菲波那切数列

来源:互联网 发布:随机森林算法入门 编辑:程序博客网 时间:2024/06/02 20:55
之前忘记在哪里看到了关于菲波那切数列,突然就想用PowerShell写一个菲波那切数列试试,在展示PowerShell代码时,让我们一同回顾下什么是菲波那切数列,这里引用百度百科的内容:
首先介绍斐波那契数列,斐波那契数列的排列是:1,1,2,3,5,8,13,21,34,55,89,144……依次类推下去,你会发现,它后一个数等于前面两个数的和。在这个数列中的数字,就被称为斐波那契数。2是第3个斐波那契数。这个级数与大自然植物的关系极为密切。几乎所有花朵的花瓣数都来自这个级数中的一项数字:菠萝表皮方块形鳞苞形成两组旋向相反的螺线,它们的条数必须是这个级数中紧邻的两个数字(如左旋8行,右旋13行);还有向日葵花盘……倘若两组螺线条数完全相同,岂不更加严格对称?可大自然偏不!直到最近的1993年,人们才对这个古老而重要的级数给出真正满意的解释:此级数中任何相邻的两个数,次第相除,其比率都最为接近0.618034……这个值,它的极限就是所谓的"黄金分割数"。
既然,我们得到了重要的一点信息,它的后一个数等于前面两个数的和,那么就很简单了,我们可以写出如下方法:
Function Fib([Int]$Index){    $lastValue = 1    $currentValue = 1    For($iteration = 2; $iteration -le $Index; $iteration++)    {        $newValue = $lastValue + $currentValue        $lastValue = $currentValue        $currentValue = $newValue        write-host $currentValue    }}Fib(10)
这里我们,定义了当前值和后面一个值,两个变量,这两个变量每次循环会相加,而相加得到的这个值会在下一次循环时演变为当前值。输出结果如下:
Fib(10)23581321345589
这就是菲波那切数列,任意一个数,它本身是前两个数之和。


0 0
原创粉丝点击