用python实现求组合数的函数

  • Post category:Python

当需要计算组合数时,我们可以使用数学公式$C_n^m=\frac{n!}{m!(n-m)!}$,其中$n$为该集合中元素的总数,$m$为需要选出的元素个数。

通过Python语言实现上述公式很简单,我们可以使用如下代码实现:

import math

def combination(n, m):
    return math.factorial(n) / (math.factorial(m) * math.factorial(n-m))

以上代码中,我们使用了math库中的factorial函数来计算$n$阶乘,使用组合数公式计算并返回结果。

这里我们还可以使用递归来进行实现,可以实现如下:

def combination(n, m):
    if m == 0 or m == n:
        return 1
    else:
        return combination(n-1, m-1) + combination(n-1, m)

以上代码中,我们将递推式$C_n^m=C_{n-1}^{m-1}+C_{n-1}^m$进行了递归实现,如果$m=0$或$m=n$,则返回1。

使用以上两种方法,我们就可以轻松实现组合数求解的功能,便于在程序设计中进行调用。