gpt4 book ai didi

elixir - 为什么 Elixir 的 Enum.sum 这么快?

转载 作者:行者123 更新时间:2023-12-04 22:03:30 24 4
gpt4 key购买 nike

运行时

1..10000000000000000000 |> Enum.sum

结果是在看似恒定的时间内计算的 - 我假设它使用公式 1+ 2+ ... + n = n(n+1) / 2
是什么让 elixir 能够进行这种优化?是 1..n 符号不同于将普通列表声明为 [1,2,3] 。当我检查 1..100000 时,它​​似乎返回一个字符串。这里发生了什么?

最佳答案

1..10000000000000000000 是一个 Range 并且 Elixir 在 Enum.sum 中有一个特殊情况,用于使用整数求和公式的范围:

def sum(first..last) when last > first do
div((last + first) * (last - first + 1), 2)
end

Source

关于elixir - 为什么 Elixir 的 Enum.sum 这么快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42077342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com