我不知道如何使用Data.Random.Source.IO
在多平台上生成随机数。
我可以使用Data.Random.Source.DevRandom
在Unix上生成随机数,在GitHub文档中有一个Windows示例使用Data.Random.Source.MWC
,但是没有Data.Random.Source.IO
的示例代码。
我不知道如何使用Data.Random.Source.IO
在多平台上生成随机数。
我可以使用Data.Random.Source.DevRandom
在Unix上生成随机数,在GitHub文档中有一个Windows示例使用Data.Random.Source.MWC
,但是没有Data.Random.Source.IO
的示例代码。
好的,我已经将Github的示例转换为使用Source.IO
import Data.Random
import Data.Random.Source.IO
logNormal :: Double -> Double -> RVar Double
logNormal mu sigmaSq = do
x <- normal mu sigmaSq
return (exp x)
main = sample (logNormal 5 1) >>= print
MonadRandom IO
定义了合适的实例。import Data.Random
import Data.Random.Source.IO
main = sample (randomElement [0..9]) >>= print
[0 .. 9]
范围内的均匀随机数吗? - mcandre
IO
定义一个MonadRandom
实例,使用DevRandom
或者MWC
。因此,您可以像使用其他实例一样使用它。 - Daniel FischerMonadRandom
的工作代码片段吗?我尝试在我的代码中将DevRandom
替换为MonadRandom
,但这并不起作用。 - mcandre