yuin #1690(2007/08/02 06:47 GMT) [ Scala ] Rating2/2=1.00
1 2 3 4 5 6
def fact(s:int, e:int) = s.until(e,-1).foldLeft(1){_*_} def invHash(x:int, m:int, n:int):List[int] = fact(m-1,m-1-n)/fact(n,0) match { case v if x >= v => 1::invHash(x-v,m-1,n-1) case _ if m > 0 => 0::invHash(x,m-1,n) case _ => Nil }
Rating2/2=1.00-0+
[ reply ]
yuin
#1690()
[
Scala
]
Rating2/2=1.00
def fact(s:int, e:int) = s.until(e,-1).foldLeft(1){_*_} def invHash(x:int, m:int, n:int):List[int] = fact(m-1,m-1-n)/fact(n,0) match { case v if x >= v => 1::invHash(x-v,m-1,n-1) case _ if m > 0 => 0::invHash(x,m-1,n) case _ => Nil }Rating2/2=1.00-0+
[ reply ]