challenge n人中m人が当選するくじ

n人の中から公平にm人を選ぶ、くじ引きプログラムを作ってください。

Posted feedbacks - OCaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
open System;;
open List;;

let rec take n ls =
    match n, ls with
    | n, _ when n <= 0 -> []
    | _, [] -> []
    | n, (hd::tl) -> hd :: take (n-1) tl;;

let shuffle ls =
    let rnd = new Random() in
    sort (fun x y-> rnd.Next(-1,2)) ls;;

let choice m n = take m (shuffle (init n (fun x -> x)));;

Index

Feed

Other

Link

Pathtraq

loading...