我有一个大小为n
的数组。我想用几何系列中的值和功能方法来填充它
我应该使用什么功能?
结果应该是一个数组,如:
[a, a^2, a^3, ... a^n]
答案 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)