【发布时间】:2015-01-20 00:09:36
【问题描述】:
我正在使用以下 Haskell 代码编写一百万个伪随机位的文件:
import System.Random
rbits= do
g <- getStdGen
writeFile "haskellbits.txt" (take 1000000 (randomRs ('0', '1') g))
但是,我也有兴趣编写用于获取序列的种子。怎么输出?
【问题讨论】:
-
好吧,
StdGen有一个Show实例。您可以简单地使用print g。 (请正确缩进您的代码并确保您已复制所有内容) -
另外,考虑使用不同的生成器。 Haskell 不再指定官方的,
StdGen有很多不足。 -
我正在尝试比较不同的生成器,看看哪种生成器在哪种情况下最好。 @Thomas
stdGen有哪些不足之处? -
@user2962685
StdGen不是加密安全的,StdGenisn't even statistically good random,与某些生成器相比,它确实很慢,默认情况下它只是从时间开始播种,你不能重新播种生成器,可用的抽象(RandomGen)不允许失败,RandomGen甚至不允许创建新的生成器,并且没有跟踪周期。
标签: haskell random binary seed prng