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

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

Posted feedbacks - StandardML

綺麗じゃないけど。。。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
fun choice n m =
let
  val rnd = Random.rand (Time.toNanoseconds (Time.now ()), m)
  fun loop 0 m' = m'
    | loop n' m' =
  let
    val number = Random.randRange (1, n) rnd
  in
    if List.exists (fn x => x = number) m' then loop n' m' else loop (n' - 1) (number::m')
  end
in
  loop m []
end

Index

Feed

Other

Link

Pathtraq

loading...