Я только что узнал о функции random.
Насколько я понимаю, функция random принимает значение типа, которое является экземпляром RandomGen и возвращает случайное значение, значение которого мы можем указать. С другой стороны, mksdGen принимает Int и генерирует случайный генератор, которому нужна функция random.
Я пытался генерировать случайные значения Bool. Для этого я сделал функцию randomBool.
randomBool :: Int -> Bool
randomBool = fst . random . mkStdGen
Тогда я нашел намного больше True, чем False с малыми числами.
И мне было любопытно, и я проверил его как
> length $ takeWhile randomBool [1..]
53667
Я думаю, это означает, что для первых 53667 положительных целых чисел random . mkStdGen возвращает True, что для меня не кажется очень случайным.
Это нормально? Или я делаю что-то не так, что облегчить True?