C/C++教程

combination

本文主要是介绍combination,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C52 5*4/2*1

(m!)/(n!*(m-n)!)
=(m*(m-1)*(m-2)*…*(m-n+2)*(m-n+1))/(n!)
= ((m-n+1)/1)*((m-n+2)/2)*((m-n+3)/3)*…*((m-n+n)/n)
=  ∏((m-n+k)/k)【k=1,2,3,…,n】



func cn(n, k u) u {
   if k > (n>>1) {
      k = n - k
   }
   numerator := u(1)
   umax := u(0)
   umax -= 1
   for i := u(1); i <= k; i++ {
      //(a, 0) (b, r)
      if numerator > umax / n {
         panic(i)
      }
      numerator *= n
      n--
      numerator /= i //denominator
   }
   return numerator
}
这篇关于combination的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!