Power Query构造斐波那契数列的两种方法

Power Query构造斐波那契数列的两种方法斐波那契数列{0,1,1,2,3,5,8,13,21,34,55,89,。。。}斐波那契螺旋线,是完美的黄金分割,自然界很多物种都符合这个数列的

大家好,欢迎来到IT知识分享网。

斐波那契数列{0,1,1,2,3,5,8,13,21,34,55,89,。。。}

Power Query构造斐波那契数列的两种方法

斐波那契螺旋线,是完美的黄金分割,自然界很多物种都符合这个数列的规律,比如向日葵

Power Query构造斐波那契数列的两种方法

再比如海螺:

Power Query构造斐波那契数列的两种方法

摄影爱好者拍摄照片时的构图:

Power Query构造斐波那契数列的两种方法

斐波那契数列其实很简单,就是0,1开始的数列,每个新值是前面两个值的和。

在Power Query中我们有很多种方法可以构造出这个数列:

List.Accumulate迭代

我们曾讲过用List.Accumulate函数累计求和计算的方法,使用List.Accumulate函数也能构造出斐波那契数列:

Power Query构造斐波那契数列的两种方法

= 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构造斐波那契数列的两种方法

  • n<=1时,返回结果n
  • n>1时,返回的结果是fx(n-1)+fx(n-2)

Power Query 中递归需要用@引用函数名称。

然后我们来引用这个函数来计算:

Power Query构造斐波那契数列的两种方法

= List.Transform({0..10},(x)=>fx(x))

我们得到11个结果,递归公式很耗资源,如果取100个结果,计算速度明显没有迭代的速度快。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/68927.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信