使用随机和唯一编号创建列表

oka*_*56k 3 random erlang unique elixir

我正在尝试列出一定长度的独特随机整数.

end_list = for x <- 0..10, do: :rand.uniform(50)
> [41, 9, 8, 50, 49, 1, 1, 7, 7, 47, 20]
Run Code Online (Sandbox Code Playgroud)

我可以写什么来传达块中的"if not already present"条件do:

oka*_*56k 6

Stream.repeatedly/1从其他地方使用了这个单线程:

Stream.repeatedly(fn -> :rand.uniform(50) end) |> Stream.uniq |> Enum.take(10)
Run Code Online (Sandbox Code Playgroud)

  • 这是正确答案,它在每次迭代中返回10个元素,每个项目都是唯一的. (2认同)