📜  数学 | PnC 和二项式系数(1)

📅  最后修改于: 2023-12-03 15:39:57.481000             🧑  作者: Mango

数学 | PnC 和二项式系数

介绍

组合数学是数学中的一个分支,研究的是从一个给定集合中选择出一些元素构成子集的情形。数学中,从n个不同元素中取出m个元素的组合数表示为C(n,m)或者C^m_n。

其中,n,m均为非负整数且n≥m。组合数也叫做二项式系数。

本文将讨论PnC和二项式系数的相关计算方法和使用场景。

PnC

PnC指的是排列组合的缩写,排列和组合都是组合数学中的基本概念。

排列

对于n个不同元素进行选择,如果有顺序的选择,则为排列。

当从n个元素中任选m个进行排列时,可以采用以下计算公式:

$$n\cdot(n-1)\cdot(n-2)\cdots(n-m+1)$$

即n个元素中,选出一个元素之后,剩下的元素有n-1个可选,再选一个后,还剩下n-2个可选......直到选了m个元素为止。

使用代码实现:

def permutation(n, m):
    res = 1
    for i in range(n-m+1, n+1):
        res *= i
    return res
组合

对于n个不同元素进行选择,如果没有顺序的选择,则为组合。

当从n个元素中任选m个进行组合时,可以采用以下计算公式:

$$C_n^m=\frac{n!}{m! (n-m)!}$$

即从n个元素中选择m个元素,有n!种选法。但是,因为选择的元素是无序的,因此要消除重复。

使用代码实现:

def combination(n, m):
    res = 1
    for i in range(1, m+1):
        res *= (n-m+i) / i
    return res
二项式系数

将(a+b)^n展开,可以得到二项式定理的表达式:

$$(a+b)^n=\sum_{k=0}^nC_n^ka^{n-k}b^k$$

即n个元素的组合数是二项式系数。

因为(1+x)^n展开同样是二项式定理的形式,所以在计算概率、似然函数等时,都会涉及到二项式系数的计算。

使用代码实现:

def binomial_coefficient(n, k):
    res = 1
    for i in range(1, k+1):
        res *= (n-i+1) / i
    return res
总结

PnC和二项式系数是组合数学领域的重要概念,涉及到许多计算概率、似然函数等的应用。本文介绍了它们的相关计算公式和python实现方法。