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}}==
Anonymous user