我一直在堅持這個問題好幾個小時,而且我一直在重做它!在這一點上,我想我實際上看到了數字在我周圍飛行。Python中的二等分搜索 - 在一年內查找最低付款額
無論如何,我應該寫一個程序,找到每月支付一年的正確金額,以償還信用卡上的債務。因此,通過這個計劃,必須滿足一些條件。
- 它必須通過使用二分法搜索((低+高)/ 2)
- 有一組平衡
- 有年利率來完成。
這是我現在的代碼,我得到的所有東西都是無限循環。我在這裏做錯了什麼?
balance = 320000
annualInterestRate = 0.2
monthly_interest = float(annualInterestRate)/12.0
lower_bound = float(balance/12)
upper_bound = (balance * (1 + monthly_interest)**12)/12.0
epsilon = 0.01
ans = float(lower_bound + upper_bound)/2
while abs((balance * (1 + monthly_interest)**12)/12.0) >= epsilon:
ans = float(lower_bound + upper_bound)/2
total = float(ans * 12)
new_balance = 0
interest = 0
for month in range(0, 12):
interest += ans + (1 + monthly_interest)
new_balance += ans + interest
if new_balance > balance:
upper_bound = ans
print "low" + str(new_balance)
elif new_balance < balance:
lower_bound = ans
print "high" + str(new_balance)
else:
print "What's going on here?"
print "Lowest payment: %r" % ans
當pset正在進行時,您不應該發佈來自MIT6.00.1x的代碼,這個想法是自己弄清楚問題或者它破壞了目的 – 2014-09-10 19:40:16