Как нормализовать список номеров в эликсире? - PullRequest
0 голосов
/ 26 августа 2018

Какой самый эффективный способ? (Для огромного списка номеров)? Я не смог найти надежного ответа на этот вопрос.

1 Ответ

0 голосов
/ 26 августа 2018

Начинается с Enum.min_max/2 или Enum.min_max_by/3, если нормализация как-то настроена пользователем. Затем нужно просто Enum.map/2 исходный список нормализовать, используя значения из шага 1.

input = [1, 5, -2]
{min, max} = Enum.min_max(input)
{new_min, new_max} = {0, 1}
Enum.map(input,
  & new_min+((&1-min)/(max-min)*(new_max-new_min)))
#⇒ [0.42857142857142855, 1.0, 0.0]
...