Haskellで疑似乱数列

  • Haskellでは、無限長のリストを作れるので、疑似乱数列を作るときは、それを作って、必要な数だけ抜き出すのがよいそうだ
  • 以下のソースはシードsを指定した上で、無限0-1乱数を作っている
import System.Random

randomSeq :: Int -> [Double]
randomSeq seed = randomRs (0,1) (mkStdGen seed)

s = 12345
rlist = randomSeq s
  • 取り出すには
Prelude> :load "MyTestRandom1.hs"
[1 of 1] Compiling Main             ( MyTestRandom1.hs, interpreted )
Ok, modules loaded: Main.
*Main> take 3 rlist
[7.205885020084679e-2,0.7664593514055014,0.1850078806746751]