В чем проблема с работой цикла for?

Как найти значение первоначального взноса (ПВ), при котором новый КДН равен максимальному значению КДН (kdn_max) в данном программном коде?
  • 27 марта 2024 г. 14:19
Ответы на вопрос 4
Проблема с работой цикла for заключается в том, что условие остановки (i < 100000) может не выполняться, если значение i увеличивается на 0.1 каждую итерацию. Таким образом, цикл может продолжаться бесконечно.

Для нахождения значения первоначального взноса (ПВ), при котором новый КДН равен максимальному значению КДН (kdn_max), можно воспользоваться методом подбора. Например, можно изменять значение ПВ в цикле и проверять, не достиг ли новый КДН максимального значения. Как только это произойдет, можно вывести найденное значение ПВ. Например:

```python
kdn_max = calculate_kdn(100000, 0.1, 0.05, 0.07)  # вычисляем максимальное значение КДН

pv = 0
while True:
    new_kdn = calculate_kdn(pv, 0.1, 0.05, 0.07)  # вычисляем КДН для текущего значения ПВ
    if new_kdn >= kdn_max:
        print(f"Значение первоначального взноса (ПВ): {pv}")
        break
    pv += 0.01
```

Этот код будет пробегать значения первоначального взноса (ПВ) и находить тот, при котором новый КДН достигнет максимального значения.
Потому что i никогда не равен kdn_max??
for(int i = 0; i == kdn_max; i++) 
Значит выполнять цикл пока i == kdn_max а это условие не выпоолняется.
Наверно ты имел ввиду
for(int i = 0; i <= kdn_max; i+=0.1)
сейчас цикл для расчета down_pmt работает до 10 раз,  как сделать так чтобы она в этой промежутке прекращал работу когда new_kdn уравняется на kdn_max ?
Похожие вопросы