У меня есть формула, которая содержит 3 переменные.Давайте назовем их x1
, x2
и x3
.Пользователь может ввести число, которое является суммой этих переменных и хранится в z
, поэтому z=10
равно x1 + x2 +x3 =10
и z=20
равно x1+x2+x3 = 20
.
Формула будет иметь следующий результат:2000 или 4591 и т. Д. Теперь я хотел бы найти x1
, x2
, x3
для z
, чтобы он имел самый высокий результат.x1= 2 x2=3 x3=5
может дать 2500, но x1=3 x2=6 x3=1
может дать 2983 и т. Д. Для z =10
Так что если z =10
, я могу попробовать цикл for и начать с X1 =0
, X2=0
, X3=10
, а затем переберите все ситуации и сохраните результаты, но мне это кажется неэффективным.Я хотел бы найти направление для того, как я могу решить эту проблему эффективно для различных значений z
и вернуть что-то вроде:
Для z = 10 наибольшее значение достигается x1=4 x2=3 x3=4
с результатом 3465.
Что касается языка программирования, я могу использовать PHP, JS, Java, C ++, Haskell.Так что дело не в языке, а в том, как решить эту проблему в целом.