1

我正在解决某个时间段内现金流的敏感性问题,为此我想使用我的代码:

while count < (len(netcf)):
    cpv = float(netcf[count]/((1+MARR)**(time[count])))                  
    sum = round((sum+cpv),2)                
    count=count+1
print "Net Present Value = $", sum

这计算了没有敏感性分析的现金流量,我想做的是采取某些时间段,为简单起见说时间 0,并将值乘以 (1+x) 并求解“x”的值,这样当您将新值添加到其他循环值的总和中,而不是之前的值(w/o 1+x),它使当前值尽可能接近 0。

到目前为止,我已经尝试使用“while True”循环来解决 x 但我没有运气.. 我也无法保持循环不计算 w/o (1+x) 的值并且只使用该值(1+x) 加到总和上。在这一点上的任何建议都会有所帮助,因为我从未在 python 中解决过未知问题。

4

1 回答 1

0

如果你有一个总和,并且你想知道要添加哪个值才能得到零,那就是-sum. 现在,如果你想要xwhich的值(1 + x) == -sum,解决方案就是x = -sum - 1

编辑:我觉得这不是你想要解决的问题,虽然......

EDIT2:关于停止循环然后进行第二次计算,只需使用该break语句,例如:

stop_at = random.choice(range(len(netcf)))
while count < (len(netcf)):
    cpv = float(netcf[count]/((1+MARR)**(time[count])))                  
    sum = round((sum+cpv),2)                
    if count == stop_at:
        break
    count=count+1

print "Net Present Value = $", sum

# now do the second calculation ...
于 2013-11-08T00:15:11.490 回答