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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。