Haskell 函数生成随机数,每次该数字都与前一个不同

标签 haskell random

我想要一个随机生成的 6 位数字。保证我永远不会调用这个函数超过 1000 次。每次调用该函数时,它都应该能够返回不同的数字。

我想像 nextRandom 一样调用这个函数,不带任何参数。 Haskell 有没有适合我的图书馆?我无法维持种子。 Haskell 可以使用当前时间作为种子

更新:问题的背景。

我正在生成一个图形(点格式),我想确保所有顶点都有不同的标签。我可以通过附加生成时间作为标签来做到这一点,但我被这个想法所吸引,通过生成随机数来做到这一点。

最佳答案

纯函数(如 nextRandom,不带参数)就像数学函数。每次调用时,它们都会使用相同的参数产生相同的结果。

所以你所要求的是不可能的,因为

  • 您期望随机数。
  • 您希望该函数具有某种内存来知道已经生成了哪些数字。

只需采用 haskell 方式,并将种子或随机生成器传递给函数,或使用 monad。如果有帮助,您可以提前创建 1000 个号码,然后从列表中检索它们。

关于Haskell 函数生成随机数,每次该数字都与前一个不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17390077/

相关文章:

string - Haskell 模式不匹配 [_]

haskell - 为什么你可以用 "Just (+)"创建一个值?

c - 在 Windows 上为 Haskell 构建 GD 库时出现 ld 错误

r - R中的条件随机样本

java - 为什么 Collections#shuffle 不使用 ThreadLocalRandom?

haskell - 记录更新语法不明确的 def

android - 随机设置背景图片 - Android

random - 是否有一个随机数生成器可以在 O(1) 中跳过/丢弃 N 次绘制?

c - 如何从随机字节开始生成一个区间内的整数随机值

Haskell - 采用相同映射的函数映射