packages feed

stochastic-0.1.0.0: test/Swindler.hs

import Data.Sample
import Data.Sample.Lib
import Data.Sample.Types

import qualified Data.Sequence as S

import System.Random

swindler :: Int -> Bool
swindler i = i == 1

die :: Sampler Int
die = uniform [1, 2, 3, 4, 5, 6]

swindlersDice :: Sampler Bool
swindlersDice = do
    s1 <- die
    s2 <- die
    s3 <- die
    return (swindler s1 || swindler s2 || swindler s3)

main = do
    gen <- newStdGen
    let a = sampleN 100000 swindlersDice gen
    print $ length $ S.filter id a
    print $ length $ S.filter (not . id) a