乱数発生器

Haskell の乱数発生器。説明できるほど理解してないが何とか動いたサンプルを紹介する。乱数発生もIOモナドの世界で行われるので do の中で実行しないといけない。

範囲指定の乱数を1個発生(サイコロの目):
import System.Random

rollDice :: IO Int
rollDice = getStdRandom (randomR (1,6))

main = do
  c <- rollDice
  print c
  c <- rollDice
  print c

乱数のリストを発生:
import System.Random

main = do
  gen <- getStdGen
  let ns = randoms gen :: [Int]
  print $ take 10 ns

指定範囲の乱数のリストを発生:
import System.Random

main = do
  gen <- getStdGen
  let ns = (randomRs (1, 6) gen) :: [Int]
  print $ take 10 ns
[PR]
by tnomura9 | 2009-09-06 21:55 | Haskell | Comments(0)
<< 組み合わせ 日付の取得 >>