最近,有朋友在群里问,在PQ里怎么构造等差、等比数列,这个问题本身并不复杂,但是,这个问题在一定程度上体现里PQ的函数从用简单函数解决常用简单问题、相对复杂函数解决相对复杂问题的层次性。
- 简单等差序列 -
首先,在构造数列方面,最常用的莫过于序列,即差值为1的等差数列,对于这种情况,PQ里非常简单,一是可以直接通过索引列来操作得到,二是可以直接用生成列表的表达式得到,如下图所示:
- 等差数列 -
接下来是差值不等于1的等差数列,这种情况下,可以直接使用List.Numbers函数来实现,如下图所示:
- 等比数列 -
最后,我们来看一下等比数列。对于简单的等比数列,可以直接通过差值为1的序列转换得到,如下图所示:
当然,也还可以通过List.Generate生成,如下图所示:
当然,上面List.Generate函数是用最大数不超过多少做为条件的,如果需要生成确定个数的等比数列,那稍为复杂一点儿,大家可以去参考我前面的文章《List.Generate强大到看不懂?把这几个例子练一练就行!》。
在回过头来看等差数列,通过List.Generate也可以轻松生成,但是,因为List.Generate函数用起来相对复杂,所以,虽然它的功能很强大,但实际工作中用得也不是很多。
此外,实际工作中,等比数列貌似用得并不太多,所以,我也没有研究在PQ中是否还有更加简洁的方式。有深入研究的朋友,欢迎留言讨论。