gpt4 book ai didi

Haskell QuickCheck 唯一随机数生成

转载 作者:行者123 更新时间:2023-12-04 23:29:50 31 4
gpt4 key购买 nike

有没有人确切地知道如何使用 QuickCheck 在 Haskell 中定义生成器,以便仅选择一次所选元素?

我已经意识到我可能需要一个“Gen(Maybe Positive)”生成器,但这当然会产生重复的数字。我想要它,以便选择的数字不会重复。在返回数字的情况下,我希望返回 Just,而在随机数全部用尽的情况下,我希望 Gen Nothing 返回。

谢谢,

标记

最佳答案

你不能。看definition of Gen .到目前为止,它无法携带有关已选择内容的任何状态。给定相同的随机生成器和大小限制,它必须始终生成相同的结果。但是你可以写一个 Eq a => Gen [a]生成一个没有重复的值列表。一个简单的(但有点天真)就是这样的。

uniques :: Eq a => Gen a -> Gen [a]
uniques gen = fmap nub $ listOf gen

关于Haskell QuickCheck 唯一随机数生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6830010/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com