[算法][动态规划]用于计算组合与排列
发布时间
阅读量:
阅读量
1.公式法
公式法是计算过程中最为直接的实现方式,具体如下所示:
- 组合数:C_n^m=\frac{n!}{m!(n-m)!}
- 排列数:A_n^m=\frac{n!}{(n-m)!} (亦可表示为P_n^m)
可以明显看出,两者之间存在转换关系:C_n^m=\frac{A_n^m}{m!},同时组合数还满足以下等式:C_n^m=C_n^{n-m}
相应的公式法对应的编程实现代码如下:
def C(n, m): # O(M)
res = base = 1
for x in range(m):
res *= (n - x)
base *= (x + 1)
return res // base
def P(n, m): # O(M)
res = 1
for x in range(m):
res *= (n - x)
return res
然而,需要指出的是,采用该方式在计算C与P时,无法一次性批量
全部评论 (0)
还没有任何评论哟~
