Computer Programming using python
posted by Anonymous .
You'll notice that in Problem 2, your monthly payment had to be a multiple of $10. Why did we make it that way? You can try running your code locally so that the payment can be any dollar and cent amount (in other words, the monthly payment is a multiple of $0.01). Does your code still work? It should, but you may notice that your code runs more slowly, especially in cases with very large balances and interest rates. (Note: when your code is running on our servers, there are limits on the amount of computing time each submission is allowed, so your observations from running this experiment on the grading system might be limited to an error message complaining about too much time taken.)
Well then, how can we calculate a more accurate fixed monthly payment than we did in Problem 2 without running into the problem of slow code? We can make this program run faster using a technique introduced in lecture  bisection search!
The following variables contain values as described below:
balance  the outstanding balance on the credit card
annualInterestRate  annual interest rate as a decimal
To recap the problem: we are searching for the smallest monthly payment such that we can pay off the entire balance within a year. What is a reasonable lower bound for this payment value? $0 is the obvious anwer, but you can do better than that. If there was no interest, the debt can be paid off by monthly payments of onetwelfth of the original balance, so we must pay at least this much every month. Onetwelfth of the original balance is a good lower bound.
What is a good upper bound? Imagine that instead of paying monthly, we paid off the entire balance at the end of the year. What we ultimately pay must be greater than what we would've paid in monthly installments, because the interest was compounded on the balance we didn't pay off each month. So a good upper bound for the monthly payment would be onetwelfth of the balance, after having its interest compounded monthly for an entire year.
In short:
Monthly interest rate = (Annual interest rate) / 12.0
Monthly payment lower bound = Balance / 12
Monthly payment upper bound = (Balance x (1 + Monthly interest rate)12) / 12.0
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 (no more multiples of $10) such that we can pay off the debt within a year. Try it out with large inputs, and notice how fast it is (try the same large inputs in your solution to Problem 2 to compare!). Produce the same return value as you did in Problem 2.
Note that if you do not use bisection search, your code will not run  your code only has 30 seconds to run on our servers.
Test Cases to Test Your Code With. Be sure to test these on your own machine  and that you get the same output!  before running your code on this webpage!
Click to See Problem 3 Test Cases
The code you paste into the following box should not specify the values for the variables balance or annualInterestRate  our test code will define those values before testing your submission.
Respond to this Question
Similar Questions

Math
John will have to make 180 monthly mortgage payments and the first payment was made on January 15,1989.If he makes one payment each month,in what year will John make his last payment? 
Math
John will have to make 180 monthly mortgage payments and the first payment was made on January 15,1989.If he makes one payment each month,in what year will John make his last payment? 
Computer Programming using python
Write a program to calculate the credit card balance after one year if a person only pays the minimum monthly payment required by the credit card company each month. The following variables contain values as described below: balance … 
Computer Programming using python
Now write a program that calculates the minimum fixed monthly payment needed in order pay off a credit card balance within 12 months. By a fixed monthly payment, we mean a single number which does not change each month, but instead … 
Computer Programming using python
You'll notice that in Problem 2, your monthly payment had to be a multiple of $10. Why did we make it that way? 
Computer Programming using python
Write a program to calculate the credit card balance after one year if a person only pays the minimum monthly payment required by the credit card company each month. The following variables contain values as described below: balance … 
Computer Programming using python
Now write a program that calculates the minimum fixed monthly payment needed in order pay off a credit card balance within 12 months. By a fixed monthly payment, we mean a single number which does not change each month, but instead … 
Computer Literary
Which of the following is Not an example of debugging A)Looking for errors in programming code B)Fixing misspelled commands in programming code C)Solving faulty logic in programming code D)Upgrading to improve the programming code 
Finance  Loans problem please help
A company borrows $170000, which will be paid back to the lender in one payment at the end of 5 years. The company agrees to pay monthly interest payments at the nominal annual rate of 7% compounded monthly. At the same time the company … 
MATH
Dave takes out a 24year mortgage of 210,000 dollars for his new house. Dave gets an interest rate of 13.2 present compounded monthly. He agreed to make equal monthly payment, the first coming in one month. After making the 68th payment, …