Возникли сложности с динамическим программированием. Помогите пожалуйста!
Суть задачи такова -
Есть схема, состоящая из компонент.
У каждой компоненты есть цена и вероятность выхода из строя.
Если хотя бы один компонент сломается, то перестанет работать и вся схема.
Так вот вопрос: Сколько компонент дублеров надо купить, имея определенную сумму,
чтобы вероятность успешной работы была максимальной.
В итоге я пришла к такой формуле:
где
вероятность успешной работы N-й ступени с mN - компонентами дублерами.
pN - вероятность выхода из строя.
Так вот, здесь то всё понятно.
Я не очень понимаю, как нужно реализовывать цикл с динамическим программированием.
Т.е предположим у нас имеется четыре компонента на схеме.
Тогда придется реализовывать 4 цикла, где в каждом будем перебирать mN.
Но это получится полный перебор)
Пыталась и с рекурсией, но там не понимаю как надо mN перебирать.