+ −
val m = 16+ −
val a = 5+ −
val c = 1+ −
val X0 = 10+ −
+ −
def ran(n: Int, X: Int) : Set[Int] = n match {+ −
case 0 => Set()+ −
case n => {+ −
val X_new = (a * X + c) % m+ −
Set(X) ++ ran(n - 1, X_new) + −
}+ −
}+ −
+ −
for (i <- 0 to 16) {+ −
val l = ran(16, i)+ −
println(l.size.toString + " " + l.toString)+ −
}+ −