На самом деле это не вопрос программирования, на самом деле это скорее алгоритмический вопрос. Одно из моих требований к функциональности требует от меня ограничить разницу средних значений определенным диапазоном.
Возьмем, к примеру:
a: {1, 2, 3, 4, 5} // avg: 3
b: {2, 3, 3, 4, 6} // avg: 3.4
c: {4, 4, 5, 7, 6} // avg: 5.2
Если максимальная разница средних была 2, то:
- Разница между средними значениями
a
иb
будет допустимой. - Разница между средними значениями
b
иc
будет допустимой. - Разница между средними значениями
a
иc
недействительна.
Затем мне нужно изменить порядок (например, поменять местами 1 с a
на 7 с b
, чтобы средние значения стали ближе друг к другу, а их различия были в пределах указанного максимума.
Тогда мой вопрос: как я могу наиболее эффективно (с наименьшим количеством ходов) переставить элементы так, чтобы средние значения сходились в пределах указанной максимальной средней разницы?
На самом деле я не ищу однозначного ответа, но если кто-то имеет представление о том, что мне следует искать, я был бы более чем счастлив услышать от вас. Если это не относится к StackOverflow, мои извинения, возможно, вы могли бы направить меня в другое место?
Большое вам спасибо за ваше время!