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 Enum.reduce_while用法及代码示例
- Elixir Enum.reject用法及代码示例
- Elixir Enum.reverse_slice用法及代码示例
- Elixir Enum.reverse用法及代码示例
- Elixir Enum.reduce用法及代码示例
- Elixir Enum.unzip用法及代码示例
- Elixir Enum.min_max用法及代码示例
- Elixir Enum.at用法及代码示例
- Elixir Enum.split_with用法及代码示例
- Elixir Enum.dedup用法及代码示例
- Elixir Enum.sum用法及代码示例
- Elixir Enum.zip用法及代码示例
- Elixir Enum.find_value用法及代码示例
- Elixir Enum.product用法及代码示例
- Elixir Enum.map_join用法及代码示例
- Elixir Enum.zip_with用法及代码示例
- Elixir Enum.intersperse用法及代码示例
- Elixir Enum.flat_map用法及代码示例
- Elixir Enum.count用法及代码示例
- Elixir Enum.fetch用法及代码示例
- Elixir Enum.frequencies用法及代码示例
- Elixir Enum.drop用法及代码示例
- Elixir Enum.slice用法及代码示例
- Elixir Enum.max_by用法及代码示例
- Elixir Enum.zip_reduce用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Enum.random(enumerable)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。