【问题标题】:How to normalize a list of numbers in Elixir?如何规范化 Elixir 中的数字列表?
【发布时间】:2018-08-26 12:28:51
【问题描述】:

什么是最有效的方法? (对于大量的数字)? 我找不到这个问题的可靠答案。

【问题讨论】:

    标签: elixir normalization


    【解决方案1】:

    如果标准化以某种方式自定义,则以 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 是错误的和不可接受的。为什么?
    • 为什么0是错的?你有自己的标准化概念吗?然后提供预期结果。
    • 啊哈,我的错,我不知何故感到困惑。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-01-03
    • 2012-11-02
    • 2016-06-09
    • 2021-07-11
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 2015-05-24
    相关资源
    最近更新 更多