欢迎大家来到IT世界,在知识的湖畔探索吧!
斐波那契数列{0,1,1,2,3,5,8,13,21,34,55,89,。。。}
斐波那契螺旋线,是完美的黄金分割,自然界很多物种都符合这个数列的规律,比如向日葵
再比如海螺:
摄影爱好者拍摄照片时的构图:
斐波那契数列其实很简单,就是0,1开始的数列,每个新值是前面两个值的和。
在Power Query中我们有很多种方法可以构造出这个数列:
List.Accumulate迭代
我们曾讲过用List.Accumulate函数累计求和计算的方法,使用List.Accumulate函数也能构造出斐波那契数列:
= List.Accumulate({0..100},{0,1},(x,y)=>x&{List.Sum(List.LastN(x,2))})
这个公式与昨天的累计求和计算是不是很像,这里我们用了List.Sum(List.LastN(x,2))来计算列表的最后两个值的和,x是一个数值列表,从{0,1}开始,每次增加一个值,就是前两个值的和。
递归
我们先自定义一个函数,根据斐波那契数列的规律,我们写这个函数就是为了计算出每个值。
- n<=1时,返回结果n
- n>1时,返回的结果是fx(n-1)+fx(n-2)
Power Query 中递归需要用@引用函数名称。
然后我们来引用这个函数来计算:
= List.Transform({0..10},(x)=>fx(x))
我们得到11个结果,递归公式很耗资源,如果取100个结果,计算速度明显没有迭代的速度快。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/57777.html