我發佈了其他線程,但它沒有收到答案,因此我試圖提供一些我的工作以使其更清楚。使用平分搜索來確定
我需要使用平分方法來確定每月付款以便準確還清一年的債務。
下面是一些代碼:
originalBalance = 320000
annualInterestRate = 0.2
monthly_interest = annualInterestRate/12
low = originalBalance/12
high = (originalBalance*(1 + monthly_interest)**12)/12
epsilon = 0.01
min_payment = (high + low)/2.0
while min_payment*12 - originalBalance >= epsilon:
for month in range(0, 12):
balance = (originalBalance - min_payment) * (1+monthly_interest)
if balance < 0:
low = min_payment
elif balance > 0:
high = min_payment
min_payment = (high + low)/2.0
print "lowest payment: " + str(balance)
不過,我收到非常遙遠的答案:298222.173851
我的朋友告訴我,正確的答案是:29157.09
這是低於我的很多...我猜這個問題是四捨五入的(我還沒做過),並在每次循環後保持平衡,並在餘額超過0時重置它。我無法弄清楚如何嘗試這個問題,請幫助某人:)
對不起,我的東西負載讀... – Contempt
你被允許使用[ bisect](http://docs.python.org/library/bisect.html)包? –
不,我已經這麼做了......我的代碼應該使用新的下限和上限進行編寫,並確定支付速度比之前我上面發佈的代碼更快。它必須與大數字快速工作......我的代碼不這樣做。它來自麻省理工學院的網站,我自學所以... – Contempt