如何计算贷款的月费?Python:更智能的计算贷款支付方式
假设是:
- 一:量贷款。
- b:贷款期限(月数)。
- c:利率p.a. (利息每月计算和增加,增加利息的1/12,所以如果利息是12%,则每月增加1%利息)。 d:期末结欠后的金额。
- d:期末欠款金额。
这个问题有点不同于平常,因为目标不是让贷款在单独的期限结束后付清,而是还欠一定的金额。如果我想支付全部金额,我就能够找到一种算法来解决问题,但如果目标是由于给定数量而不是由于欠缺任何东西而最终结束,那么它就不能解决这个问题。
我设法解决这个问题,从猜测开始,然后继续改进猜测直到足够接近。不过,我想知道是否有更好的方法来简单计算,而不仅仅是猜测。
编辑:这是我现在正在做的。
def find_payment(start, end, months, interest):
difference = start
guess = int(start/months * interest)
while True:
total = start
for month in range(1, months + 1):
ascribe = total * interest/12
total = total + ascribe - guess
difference = total - end
# See if the guess was good enough.
if abs(difference) > start * 0.001:
if difference < 0:
if abs(difference) < guess:
print "payment is %s" % guess
return evolution(start, guess, interest, months)
else:
mod = int(abs(difference)/start * guess)
if mod == 0:
mod = 1
guess -= mod
else:
mod = int(difference/start * guess)
if mod == 0:
mod = 1
guess += mod
else:
print "payment is %s" % guess
return evolution(start, guess, interest, months)
演变就是这样显示的贷款会是什么样子支付和支付利息的兴趣,总结支付利息的总金额等
一个例子是,如果我想给一个函数找出贷款开始$ 100,000和$ 50K用的8%权益,70个月期限结束的每月付款,要求
>>> find_payment(100000, 50000, 70, 0.08)
payment is 1363
在上述情况下,由于49935我将结束了,我经历了5次循环。通过循环所需的次数取决于我接近数量的距离有多近,并且会有所不同。
也许如果你能提供你猜的解决方案,它成为你想要做什么清晰。 – nosklo 2009-10-06 13:39:52
是不是只是一个简单的几何级数? http://en.wikipedia.org/wiki/Geometric_progression – Pod 2009-10-06 14:01:23
“evolution()”在做什么功能?我在哪里可以找到该功能? – 2017-09-21 09:30:43