【发布时间】:2018-08-26 12:28:51
【问题描述】:
什么是最有效的方法? (对于大量的数字)? 我找不到这个问题的可靠答案。
【问题讨论】:
标签: elixir normalization
什么是最有效的方法? (对于大量的数字)? 我找不到这个问题的可靠答案。
【问题讨论】:
标签: elixir normalization
如果标准化以某种方式自定义,则以 Enum.min_max/2 或 Enum.min_max_by/3 开头。然后使用步骤 1 中的值将原始列表 Enum.map/2 标准化。
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]
【讨论】:
input = [800, 300, 30] 结果为[1.0, 0.35064935064935066, 0.0]。 0 是错误的和不可接受的。为什么?