如果你想从时钟上播种,你可以得到时间
getPOSIXTime
. 使用可能更有意义
createSystemRandom
就像西尔维奥·马约洛建议的那样。下面的代码演示了这两种方法。
import Data.Random
import Data.Vector (singleton)
import Data.Time.Clock.POSIX (getPOSIXTime)
import System.Random.MWC
logNormal :: Double -> Double -> RVar Double
logNormal mu sigmaSq = do
x <- normal mu sigmaSq
return (exp x)
main = do
t0 <- getPOSIXTime
mwc <- initialize (singleton (floor t0))
y <- sampleFrom mwc (logNormal 5 1)
print y
mwc2 <- createSystemRandom
z <- sampleFrom mwc2 (logNormal 5 1)
print z