勉強のためにListのAPIはなるべく使わない方向。
// P24 (*) Lotto: Draw N different random numbers from the set 1..M. // Example: // scala> lotto(6, 49) // res0: List[Int] = List(23, 1, 17, 33, 21, 37) import scala.util.Random def lotto(n: Int, to: Int) = { val rand = new Random() def r(acc: List[Int]): List[Int] = { def next(): Int = { val i = rand.nextInt(to) if(acc.count(_ == i) == 0) i else next } if(acc.size < n) r(next :: acc) else acc } if(n < 1 || to < n) throw new IllegalArgumentException else r(Nil) }解答例
こりゃ一本とられたわい
No comments:
Post a Comment