Преобразование 3 значений в масштаб [0->100]

#math

#математика

Вопрос:

У меня возникли проблемы с поиском преобразования, соответствующего следующим критериям:

  1. 3 входных числа могут быть отрицательными, положительными или 0
  2. Масштаб неизвестен для одного трио чисел, однако я мог бы просмотреть данные, чтобы найти минимальные и максимальные значения для всего набора данных, если это поможет.
  3. 3 выходных числа должны быть в диапазоне от 0 до 100 (включительно) и суммироваться до 150, причем 50 является «новым нулем». Таким образом, для 3 входных чисел 0, 0, 0 на выходе будет 50, 50, 50. Отрицательные числа окажутся ниже 50 (но > = 0), а положительные числа окажутся выше 50 (но <= 100).

Вот два реальных примера входных чисел:

  • -19, 253, -267

  • -479, 137, -179

Ваша помощь была бы оценена.

Комментарии:

1. Предположим, у вас есть входные числа 10, 10, 10 . В вашем третьем требовании указано, что выходные числа должны быть > 50 . Но в то же время они должны суммироваться до 150 . Как это возможно? Если у вас есть два отрицательных значения (любое значение) и одно положительное, 49, 49, 52 было бы тогда допустимым решением? И аналогично для одного отрицательного и двух положительных; и один отрицательный, один нулевой, один положительный.

2. Вы упоминаете «три числа», а затем «весь набор данных». Какова связь между тремя числами и набором данных?

3. Я думаю, ты прав, Нико, я должен отказаться от требования «сумма до 150».

4. Я мог бы также определить сумму 3 чисел, а затем разделить каждое число на сумму. С этими 3 значениями я мог бы повторно добавить требование «сумма до 150», нет? Например, для: -19, 253, -267 они суммировались бы до -33, и их части были бы: 0,575, -7,504, 7,929 (каждое число делится на -33), теперь суммируя до 1.

5. Стеф, у меня тысячи таких тройных чисел. Я не уверен, что между этими трио есть какая-то прямая связь. Но у меня есть доступ ко всему набору данных, поэтому я мог бы найти min, max и т.д.