在Swift中映射几何系列的功能方法

时间:2018-04-17 09:18:52

标签: swift

我有一个大小为n的数组。我想用几何系列中的值和功能方法来填充它 我应该使用什么功能?

结果应该是一个数组,如:

[a, a^2, a^3, ... a^n]

3 个答案:

答案 0 :(得分:3)

您可以使用sequence(first:next:)来计算权力 通过重复乘法得到a,将{懒惰评估的)序列用prefix(_:)限制到所需的条目数,然后从截断的序列中创建一个数组。例如:

let a = 0.5   // The base
let n = 4     // The maximal exponent

let series = Array(sequence(first: a, next: { $0 * a }).prefix(n))
print(series) // [0.5, 0.25, 0.125, 0.0625]

另一种选择可以是在不创建序列的情况下枚举序列 实际数组:

for x in sequence(first: a, next: { $0 * a }).prefix(n) {
    // do something with `x`
}

答案 1 :(得分:1)

您只需在某个范围内调用map并在map内执行电源操作即可创建此类几何图形序列。

func createGeometricSeries(ofSize n:Int, _ a:Int)->[Int]{
    return (1...n).map({Int(pow(Double(a), Double($0)))})
}

createGeometricSeries(ofSize: 3,2) //[2,4,8]

答案 2 :(得分:0)

您可以使用地图

let resultingArray = yourArray.map({ a * $0 })

结果数组是符合您要求的数组

您可以在Apple文档中找到有关here的更多信息。