Comment detail

n人中m人が当選するくじ (Nested Flatten)
ナイーブに。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import System.Environment
import System.Random

main :: IO ()
main = do { (p:q:_) <- getArgs
          ; let (n,m) = (read p,read q)
          ; newStdGen >>= loop n m [1..n] >>= print
          }

loop _ 0 _ _ = return []
loop n m s g 
 = case randomR (0,n-1) g of
    (n',g') -> case splitAt n' s of
                (xs,y:ys) -> loop (n-1) (m-1) (xs++ys) g' >>= return . (y:)

Index

Feed

Other

Link

Pathtraq

loading...