他のスレッドを投稿しましたが、回答が得られなかったため、より明確にするためにいくつかの作業を提供しようとしています。
正確に一年で借金を返済するためには、二分法で月々の支払いを決める必要があります。
ここにいくつかのコードがあります:
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を超えた場合にリセットすることにあると思います。この問題の試行方法がわかりません。そして、誰かを助けてください:)