2019-09-12 10:33:56 -07:00
|
|
|
subtractgen :: Int -> [Int]
|
|
|
|
|
subtractgen seed = drop 220 out
|
|
|
|
|
where
|
|
|
|
|
out = mmod $ r ++ zipWith (-) out (drop 31 out)
|
|
|
|
|
where
|
|
|
|
|
r = take 55 $ shuffle $ cycle $ take 55 s
|
|
|
|
|
shuffle x = head xx : shuffle xx
|
|
|
|
|
where
|
|
|
|
|
xx = drop 34 x
|
|
|
|
|
s = mmod $ seed : 1 : zipWith (-) s (tail s)
|
|
|
|
|
mmod = map (`mod` 10 ^ 9)
|
2013-04-11 01:07:29 -07:00
|
|
|
|
2019-09-12 10:33:56 -07:00
|
|
|
main :: IO ()
|
2013-04-11 01:07:29 -07:00
|
|
|
main = mapM_ print $ take 10 $ subtractgen 292929
|