Минимальный Платеж для Кредитной Карты с помощью Бинарного поиска
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. Как добавить свое решение смотрите тут.