当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Enum.random用法及代码示例


Elixir语言中 Enum.random 相关用法介绍如下。

用法:

random(enumerable)
@spec random(t()) :: element()

返回 enumerable 的随机元素。

如果 enumerable 为空,则引发 Enum.EmptyError

该函数使用 Erlang 的:rand 模块来计算随机值。检查其文档以设置不同的随机算法或不同的种子。

该实现基于reservoir sampling 算法。它假设返回的样本可以放入内存;输入 enumerable 不必这样做,因为它只遍历一次。

如果将范围传递给函数,则此函数将在范围限制之间选择一个随机值,而不遍历整个范围(因此在恒定时间和恒定内存中执行)。

例子

下面的示例使用 :exsss 伪随机算法,因为它是 Erlang/OTP 22 的默认值:

# Although not necessary, let's seed the random algorithm
iex> :rand.seed(:exsss, {100, 101, 102})
iex> Enum.random([1, 2, 3])
2
iex> Enum.random([1, 2, 3])
1
iex> Enum.random(1..1_000)
309

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Enum.random(enumerable)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。