Мінімальний Платіж для Кредитної Карти за допомогою бінарного пошуку
2. Katas
Проблема:
Написати програму, яка повертає Мінімальний Платіж для Кредитною Карткою. Який погасить непогашений залишок, якщо його платити кожен місяць протягом року.За допомогою бінарного пошуку
Примітка: Мінімальний Платіж це фіксована сума протяг усіх 12 місяців.
Для цього дається дві змінні на вхід в функцію:
- outStandingBalance - непогашений залишок на кредитній карті.
- yearlyPercentRate - річна процентна ставка.
Примітка: Якщо ви хочете дізнатися, як порахувати непогашений залишок після одного місяця, дивіться в розділі нижче Приклад.
Завдання:
Написати функцію, яка повертає такий рядок: "Мінімальний Платіж щомісяця складає: b | Спроб використано: c", де b - непогашений залишок (заокруглений до другої цифри після коми), який повернула функція і c - кількість спроб, які використовувала функція для пошуку мінімального платежу.
Приклад:
Щоб знайти непогашений залишок після одного місяця, потрібно дотримуватися такого алгоритму:
-
Рахуємо місячну процентну ставку:
monthlyPercentRate = yearlyPersentRate/12
-
Рахуємо нижньою і верхньою межами:
lowerPay = start_balance/12
upperPay = (start_balance * (1 + monthlyPercentRate)**12)/12.0
-
Рахуємо мінімальний платіж, який можемо зробити в місяці:
minPay = (upperPay + lowerPay)/2
-
Рахуємо ннепогашений залишок, одною дією. Розгорнуте рішення дивіться в 2.Katas (Little Python), перейшовши за посилання:
utStandingBalance = outStandingBalance - minPay + ((outStandingBalance - minPay) * monthlyPercentRate)
Примітка: Основна частина алгоритму бінарного пошуку, залишається за вами.
Дані для перевірки:
creditCardMinPay_BS - назва функції
- creditCardMinPay_BS(320000,0.2) --> "Мінімальний Платіж щомісяця складає: 29157.09 | Спроб використано: 17"
- creditCardMinPay_BS(999999,0.18) --> "Мінімальний Платіж щомісяця складає: 90325.02 | Спроб використано: 22"
- creditCardMinPay_BS(999999,0.18) --> "Мінімальний Платіж щомісяця складає: 32809.62 | Спроб використано: 20"
де "-->" означає після запуску програми
Примітка: Для порівняння можете запустити одне зі значень за допомогою програми, яку ми робили в 2.Katas (Median Python). Алгоритми це сила?
Що далі ?
Программа не виходить або працює не зовсім точно, перейдіть за посиланням solution і подивіться пояснення до вирішення проблеми, це вам допоможе.
Якщо у вас все вийшло, можете перейти по посиланню solution і порівняти своє рішення з тим яке там є.
Якщо ваше рішення не збігається з моїм рішення, то я за вас дуже радий. Поділітся їм зі мною, я буду вам дуже вдячний і тоді я додам його в папку solution. Як додати своє рішення дивіться тут.