📅  最后修改于: 2023-12-03 15:39:57.481000             🧑  作者: Mango
组合数学是数学中的一个分支,研究的是从一个给定集合中选择出一些元素构成子集的情形。数学中,从n个不同元素中取出m个元素的组合数表示为C(n,m)或者C^m_n。
其中,n,m均为非负整数且n≥m。组合数也叫做二项式系数。
本文将讨论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实现方法。