斐波那契数列{0,1,1,2,3,5,8,13,21,34,55,89,。。。}
斐波那契螺旋线,是完美的黄金分割,自然界很多物种都符合这个数列的规律,比如向日葵
再比如海螺:
摄影爱好者拍摄照片时的构图:
斐波那契数列其实很简单,就是0,1开始的数列,每个新值是前面两个值的和。
在Power Query中我们有很多种方法可以构造出这个数列:
我们曾讲过用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}开始,每次增加一个值,就是前两个值的和。
我们先自定义一个函数,根据斐波那契数列的规律,我们写这个函数就是为了计算出每个值。
Power Query 中递归需要用@引用函数名称。
然后我们来引用这个函数来计算:
= List.Transform({0..10},(x)=>fx(x))
我们得到11个结果,递归公式很耗资源,如果取100个结果,计算速度明显没有迭代的速度快。
页面更新:2024-04-24
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号