Przede wszystkim, jeśli robisz mITX ćwiczenia i zakończone poprzedniego testu (tak, aby zwiększyć 10 w odgadnięcia) jesteś małym krokiem, aby to zdobyć. Po prostu potrzebuj pewnych korekt podczas warunku i sprawdź roczne wyniki.
O wyszukiwaniu bisekcji Spróbuję wyjaśnić tę koncepcję. Zawsze będziesz miał dwie kończyny, minimum i maksimum. I zawsze zacznie zgadywać przez środek kończyn.
Po pierwszym odgadnięciu będziesz musiał dostosować ustawienia kończyn z powodu wyników rocznych. Jeśli po upływie roku, płacąc minimum za drinki, dziewczyny, książki programowe i inne rzeczy, z których nie zapłaciłeś całego salda, masz pewność, że musisz zwiększyć minimum. W przeciwnym razie Jeśli, na przykład, zapłaciłeś całkowite saldo w 10 miesiącu, musisz pić więcej i poznawać nowe dziewczyny w przyszłym roku !!! żartuję ... musisz zmniejszyć minimum. Jest to check trzeba zrobić po zakończonych rok twardych płatności
W ćwiczeniu mamy:
- bilans i annualInterestRate = dane (nie musimy dbać)
- minimalna (dolna granica) = Zmiana/12
- maksymalna (górna granica) = (Stan x (1 + miesięczny oprocentowanie) ** 12)/12,0
Pierwsze przypuszczenie będzie (minimum + maksimum)/2 Zadzwoniłem guessMinimum tak:
guessMinimum = (minimum + maximum)/2
Więc zaczniesz używać pierwsze przypuszczenie (guessMinimum). Po roku sprawdzisz pozostałość. Jeśli pozostała część jest ujemna, oznacza to, że zapłaciłeś za dużo. musisz zmniejszyć miesięczną opłatę. Poza tym, jeśli po jednym miesiącu pozostała część jest dodatnia (na przykład więcej niż Twoja dokładność (np. 0.10)) musisz zmniejszyć miesięczną opłatę, ok ?!
próby opracowania myślenie .....
+------------------------------------------------+
| /\ /\ /\ |
| \/------------------\/-------------------\/ |
|MINIMUM guess MAXIMUM|
| Minimum |
+------------------------------------------------+
Jeśli po upływie jednego roku, "pozostanie" jest ujemne (na przykład). Oznacza, że "guessMinimum" jest dużo !!! Będziesz potrzebował ... nie ciebie, PROGRAMU !! Program musi go skorygować, obniżyć minimum, aby ......
+---------------------------------------------------+
| Got negative 'remain' |
| ++ |
| /\ || /\ /\ |
| \/-------------||---\/-------------------\/ |
| MINIMUM || guess MAXIMUM |
| ++ Minimum-, |
| ', |
| `. |
| `., |
| ', |
| ', |
| `. |
| ` |
| /\ /\ /\ |
| \/------------------\/-------------------\/ |
| MINIMUM guess MAXIMUM |
+---------------------------------------------------+
Przykro mi. Próbowałem wstawić obrazek, ale jako nowy członek. Nie mogłem. potrzebuję co najmniej 10 reputacji .... pomóżcie mi !!!! za dużo pracy, aby używać znaków !!!!
a kod trzeba zrobić to ciężka praca, aby ustawić minimalną dopóki pozostają "jest do zaakceptowania (w ciągu swojej precyzji, lub epsilon lub listownie lub zmienna lub .. porządku. :)
Po zrozumieniu koncepcja i rysunki. sprawdźmy CODE.
balance = 999999;
annualInterestRate = 0.18
monthlyInterestRate = annualInterestRate/12
minimum = balance/12
maximum = (balance * (1 + monthlyInterestRate)**12)/12.0
guessMinimum = (minimum + maximum)/2
remain = balance #if you payed nothin, the remain is the balance!!!!
precision = 0.10 #you choose....
while (remain >= precision):
guessMinimum = (minimum + maximum)/2
for i in range (1,13):
newBalance = remain - guessMinimum
monthInterest = annualInterestRate/12*newBalance
remain = newBalance+monthInterest
# after one month, the CODE need to check about the remain
if (remain < 0): #paying too much.... need to decrease the value
maximum = guessMinimum #remember my beautiful draw above!!
remain = balance # reset the remain to start again!!
elif (remain > precision): #paying less .... need to increase the value
minimum = guessMinimum
remain = balance # reset the remain to start again!!
print "Lowest Payment: %.2f" %(guessMinimum)
To wszystko.
Jakie jest Twoje pytanie? (I "+1 dla [SSCCE] (http://SSCCE.org)"). –
Czy próbowałeś wydrukować wszystkie zmienne podczas każdej iteracji pętli i sprawdzając, czy jedna z nich nie jest aktualizowana? Również skąd czerpiesz ten algorytm? – placeybordeaux
Wiesz, że istnieją formuły do tego, prawda? http://en.wikipedia.org/wiki/Compound_interest#Simplified_calculation –