Python排列组合的计算方法
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python排列组合的计算方法相关的知识,希望对你有一定的参考价值。
1. math.comb()
数学模块Python中的Math库包含许多数学运算,可以使用该模块轻松执行。math.comb()
Python中的method方法用于获取从n个项目中选择k个项目(不重复且无顺序)的方法数量。它本质上评估为 n!/(k!*(n-k)!)
它也被称为二项式系数,因为它等效于表达式(1 + x)的多项式展开中的k-th项的系数n。
此方法是Python版本3.8中的新增功能。
用法: math.comb(n, k)
参数:
- n:非负整数
- k:非负整数
返回:一个整数值,表示从n个项目中选择k个项目(无重复且无顺序)的方式数量。
# Python Program to explain math.comb() method
# Importing math module
import math
n = 10
k = 2
# Get the number of ways to choose
# k items from n items without
# repetition and without order
nCk = math.comb(n, k)
print(nCk)
n = 5
k = 3
# Get the number of ways to choose
# k items from n items without
# repetition and without order
nCk = math.comb(n, k)
print(nCk)
输出:
45
10
代码2:当k> n时
# Python Program to explain math.comb() method
# Importing math module
import math
# When k > n
# math.comb(n, k) returns 0.
n = 3
k = 5
# Get the number of ways to choose
# k items from n items without
# repetition and without order
nCk = math.comb(n, k)
print(nCk)
输出:
0
2. scipy 计算排列组合的具体数值
A 3 2 A^2_3 A32=6, C 3 2 C^2_3 C32=3
>> from scipy.special import comb, perm
>> perm(3, 2) # 有序
6.0
>> comb(3, 2) # 无序
3.0
3. itertools 获取排列组合的全部情况数
>> from itertools import combinations, permutations
>> permutations([1, 2, 3], 2)
<itertools.permutations at 0x7febfd880fc0>
# 可迭代对象
>> list(permutations([1, 2, 3], 2))
[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
>> list(combinations([1, 2, 3], 2))
[(1, 2), (1, 3), (2, 3)]
参考:link
以上是关于Python排列组合的计算方法的主要内容,如果未能解决你的问题,请参考以下文章