Scala - 返回几何序列

时间:2015-09-23 14:51:40

标签: scala

我想用一种方法(在Scala中)计算给定起始数,比例因子和大小的几何序列。

例如,起始值为1,比例因子为2,大小为5会产生一个列表或序列:

1 2 4 8 16

3 个答案:

答案 0 :(得分:2)

试试这个Stream.iterate(1)(_*2).take(5).toList

答案 1 :(得分:0)

您可以在 Scala

中使用Stream
scala> val TWO = BigInt(2)
scala> Stream.from(0).map(x => TWO.pow(x)) take 5 toList

res: List[scala.math.BigInt] = List(1, 2, 4, 8, 16)

答案 2 :(得分:0)

使用scanLeft,部分结果会累积到生成的集合中,因此请考虑

(1 to 4).scanLeft(1)( (a,_) => a*2)

lambda函数包括由a表示的值,用于直到当前迭代的累积结果,由2计算。扫描以初始值1开始,并执行四个额外的结果(直到第5项)。