Можно ли это решить, составить формулу/алгоритм?

Задача про монахов
Имеется 3 группы монахов: ведущие, простые, ученики. M монахов едят N пирогов по чину.
Ведущий по N1 пирогов, простой по N2 пирогов, ученики по N3 пирогов (N, N1, N2, N3 - могут быть целыми и дробными числами).
Сколько было монахов: ведущих (M1), простых (M2) и учеников (M3).
Исходные данные
M - количество монахов всего
N - количество пирогов всего
N1 - количество пирогов, съедаемым одним ведущим монахом
N2 - количество пирогов, съедаемым одним простым монахом
N2 - количество пирогов, съедаемым одним монахом-учеником
Результаты
M1 - количество ведущих монахов
M2 - количество простых монахов
M3 - количество монахов-учеников
  • Вопрос задан
  • 822 просмотра
Решения вопроса 1
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Для каждого M1 от 0 до N/N1
    M2 = (N - M1*N1 -M*N3 + M1*N3) / (N2 - N3)
    M3 = M - M1 - M2
        если M2 целое число и М3>0
            то вернуть ответ М1, М2, М3
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
SagePtr
@SagePtr
Еда - это святое
В данном виде - решить нельзя, так как в условии не сказано, как выходные данные зависят от входных. И не указано, что означают переменные М и П.
Ответ написан
NeiroNx
@NeiroNx
Программист
Можно двумя вложенными циклами - перебираем М1 и М2, а М3 находим из системы уравнений.
M1 + M2 + M3 = М
М1*П1 + М2*П2 + М3*П3 = П
Ответ написан
tzlom
@tzlom
тут вопрос в условии, если читать буквально, то система уравнений такая:
N = N1*M1 + N2*M2 +N3*M3
M = M1 + M2 + M3
M1>=0
M2>=0
M3>=0
очевидно - её можно решить, но решений может быть больше 1го
тривиальный алгоритм - перебором всех возможных M1,M2,M3
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы