本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!