Comment detail

「組合せ型の最小完全ハッシュ関数」の逆関数 (Nested Flatten)
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
}

Index

Feed

Other

Link

Pathtraq

loading...