Sto seguendo un corso sulla piattaforma
edx.org.
Il corso 'demo', che serve a imparare come usare la piattaforma, mi propone un problema informatico da sottoporre al loro 'code grader', cioè un valutatore di programmi automatico (tipo una unit test).
Nessun problema con il linguaggio da usare (Python), ma mi riesce difficile capire il soggetto. Questo è il testo:
We are searching for the smallest monthly payment such that we can pay off the entire balance of a loan within a year.
The following values might be useful when writing your solution
Monthly interest rate
= (Annual interest rate) / 12
Monthly payment lower bound
= Balance / 12
Monthly payment upper bound
= (Balance x (1 + Monthly interest rate)12) / 12
The following variables contain values as described below:
balance
- the outstanding balance on the credit card
annualInterestRate
- annual interest rate as a decimal
Write a program that uses these bounds and bisection search (for more info check out the Wikipedia page on bisection search) to find the smallest monthly payment to the cent such that we can pay off the debt within a year.
Sarà che gli americani imparano a chiedere un prestito già alle elementari, ma non riesco a capire quale funzione dovrei usare per applicare la bisezione.
Come test propongono i seguenti valori:
Test Case 1:
balance = 320000
annualInterestRate = 0.2
Result Your Code Should Generate:
-------------------
Lowest Payment: 29157.09
Guardando qua e là, ho trovato una formula, che fa così:
rata = Capitale * tasso * (1 + tasso)^n/((1 + tasso)^n – 1)
tasso equivale a tasso mensile, n vale 12. Applicando i valori ottengo una rata da 29643,04$, che è vicina ma non uguale.
E comunque sono tutte formule 'fisse', non prevedono aggiustamenti, ed è qui che non capisco come si possa trovare una rata minima, dato che il tasso sembra fisso...