[Haskell-beginners] randmomR produces only even values
martin.drautzburg at web.de
Fri Oct 30 18:43:23 UTC 2015
When I read:
mkStdGen :: Int -> StdGen
The function mkStdGen provides an alternative way of producing an initial generator, by mapping an Int into a generator.
Again, distinct arguments should be likely to produce distinct generators.
I thought, that
> fst $ R.randomR (1,10) (R.mkStdGen s)
should get me a random value between 1 and 10 and that I get different values depending on the seed s. But this
> length $ filter even $ map (\s -> fst $ randomR (1::Int,10) (mkStdGen s))[1..1000]
gives my 1000, i.e. all random numbers are even numbers.
However, when I use random instead of randomR
> length $ filter even $ map (\s -> fst $ random (mkStdGen s) ::Int)[1..1000]
I get 499 (okay)
Why is that so?
More information about the Beginners