【激突】関数型言語 VS オブジェクト指向言語2
レス数が900を超えています。1000を超えると表示できなくなるよ。
0901デフォルトの名無しさん
2012/05/21(月) 19:50:14.051.6GHz Core i5 で12秒
{-# LANGUAGE BangPatterns #-}
import Control.Applicative
import Control.Monad
import Data.Maybe
import Data.Ord
import Data.List
import Data.MultiSet as S
import System.Random.Mersenne
cardNum = 10
iterateNum = 1000000
completeSet = fromList [0..cardNum-1]
main = do
s <- replicate iterateNum <$> newMTGen Nothing >>=
foldM (\(!s) g -> flip S.insert s <$>
S.size . fromJust . find (completeSet `isSubsetOf`) .
scanl (\x n -> S.insert (n `mod` cardNum) x) S.empty <$>
(randoms g :: IO [Int])) S.empty
print $ (findMin s, findMax s, maximumBy (comparing snd) $ toAscOccurList s)
レス数が900を超えています。1000を超えると表示できなくなるよ。