Anonymous user
Sleeping Beauty problem: Difference between revisions
→{{header|Haskell}}: added solution
(→{{header|Haskell}}: added solution) |
|||
Line 303:
Percentage probability of heads on waking = 33.310582%
</pre>
=={{header|Haskell}}==
<lang haskell>import Data.Monoid (Sum(..))
import System.Random (randomIO)
import Control.Monad (replicateM)
import Data.Bool (bool)
data Toss = Heads | Tails deriving Show
sleepingBeautyExperiment = foldMap anExperiment
where
anExperiment toss = moreWakenings <>
case toss of
Heads -> headsOnWaking
Tails -> moreWakenings
moreWakenings = (1,0)
headsOnWaking = (0,1)
main = do
tosses <- map (bool Heads Tails) <$> replicateM 1000000 randomIO
let (Sum w, Sum h) = sleepingBeautyExperiment tosses
let ratio = fromIntegral h / fromIntegral w
putStrLn $ "Ratio: " ++ show ratio</lang>
<pre>*Main> main
Ratio: 0.33339378051805013</pre>
=={{header|Julia}}==
|