@adiletmurzaliev

Можно ли выразить алгоритм в виде математической формулы?

Подскажите пожалуйста, что-то туплю дико. Как выразить следующую логику математической формулой (типа последовательностями x1 ... xn, ну или как-нибудь еще):

1) Первый случай

X1 - Ячейка A = 500
X2 - Ячейка B = 500
X3 - Ячейка C = 500
Z - Платеж = 700

По убыванию c > b > a платеж распределится и новые суммы будут выглядеть так:

Y1 - Ячейка A = 500
Y2 - Ячейка B = 300
Y3 - Ячейка C = 0

2) Второй случай

X1 - Ячейка A = 500
X2 - Ячейка B = 500
X3 - Ячейка C = 500
Z - Платеж = 300

По убыванию c > b > a платеж распределится и новые суммы будут выглядеть так:

Y1 - Ячейка A = 500
Y2 - Ячейка B = 500
Y3 - Ячейка C = 200

3) Тертий случай, когда платеж равен сумме в ячейке C.

Т.е. хочу примерно получить что-то типа такого: y2 = x2 - (z - x3 - ...), y3 = ..., y1 = ...
Это вообще возможно?) Может системы тут должны помочь?
Или без условий типа: if (z > x3) ? 0 : x3 - z тут не обойтись?
Думаю вся проблема заключается, в невозможности использования негативных значений...
  • Вопрос задан
  • 321 просмотр
Решения вопроса 1
wataru
@wataru Куратор тега Математика
Разработчик на С++, экс-олимпиадник.
Используйте функцию max.

Значение в каждой ячейке будет
max(0, (тукущее значение) - max(0, (платеж) - (сумма всех следующих ячеек)))


Поскольку нужны будут все частичные суммы, то есть смысл в соседних ячейках подсчитать все эти суммы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks
Ничего не понятно, но очень похоже на линейное программирование.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы