【问题标题】:Σ Calculation in iOS SDKΣ iOS SDK 中的计算
【发布时间】:2019-07-31 09:02:59
【问题描述】:
我正在开发一个必须执行计算的金融应用程序。财务团队为我提供以下计算公式,如下图所示
[![在此处输入图片描述][1]][1]
但我无法找到如何在 Swift 或 Objective-C 中执行以下操作。
n t-1
Σ (1+i)
t=1
您能帮我提供一下上述计算的想法吗?
我也读过这个link,但没有兴趣使用第三方。
【问题讨论】:
标签:
ios
arrays
objective-c
【解决方案1】:
Swift 的reduce 函数就是为此而生的:
(1...n).reduce(0) { (currentResult, t) -> Decimal in
currentResult + pow(1 + i, t - 1)
}
【解决方案2】:
如果我们破解它,你必须找到 (1 + i) ^ (t -1) 的总和,其中 t 从 1 变化到 n。
等效函数为
func evaluteSummation(n: Int, i: Int ) -> Int {
int sum = 0
for t in 1...n {
sum += pow(1 + i, t - 1)
}
return sum
}
【解决方案3】:
你可以像下面这样写代码。
func calculatePMT(targetValue : Double, interestRate : Double, time: Int) -> Double {
let term = 1.0 + interestRate
var denominator = 0.0
for t in 0..<time {
let p = pow(term, Double(t))
denominator += p
}
return targetValue / denominator
}
let targetValue = 100000.0
let interestRate = 5.0
let time = 4
let pmt = calculatePMT(targetValue: targetValue, interestRate: interestRate, time: time)
print(pmt)