【发布时间】:2013-06-30 11:52:08
【问题描述】:
我想要一个随机生成的 6 位数字。保证我调用这个函数的次数不会超过 1000 次。该函数应该能够在我每次调用它时返回不同的数字。
我想像nextRandom 这样不带任何参数地调用这个函数。 Haskell 中是否有适合我的图书馆?我无法维持一颗种子。 Haskell 可以使用当前时间为seed。
更新:问题的背景。
我正在生成一个图形(点格式),我想确保所有顶点都有不同的标签。我可以通过将生成时间附加为标签来做到这一点,但我被这个想法所困扰,因为这样做是通过生成随机数来实现的。
【问题讨论】:
-
“因此,我可以期望该函数每次都返回不同的数字” - 疯狂的假设。如果您只是生成随机数,则有可能重复。事实上,概率比你的直觉说的更糟。检查生日悖论。
-
@KarolyHorvath 谢谢。修正了语言。
-
卡罗莉,虽然你说的是真的,但我不喜欢使用“悖论”这个词,因为它不是不合逻辑或类似的:P 就像说“蒙蒂霍尔悖论”一样,我更喜欢“蒙蒂霍尔问题”。
-
[1..1000] 给你 1000 个随机数。 :)
-
如果@augustss 随机列表可能缺少某种令人惊讶的元素:-),您可以随时在其上调用“shuffle”。