Python计算排列组合
程序员文章站
2022-07-10 23:27:14
...
- 预备:阶乘计算
def factorial(self, n):
"""
阶乘
:param n:
:return:
"""
if n < 0:
return
if n == 0 or n == 1:
return 1
return n * self.factorial(n - 1)
- 排列
def perm_compute(self):
"""
排列:带顺序
:return:
"""
perm_my = self.factorial(self.a) / self.factorial(self.a - self.b)
perm_math = math.factorial(self.a) / math.factorial(self.a - self.b)
perm_sp = perm(self.a, self.b)
def perm_list(arr, a):
"""
排列:从arr中不放回且带顺序的取出a个元素的所有可能
:return:
"""
if a > len(arr):
return
return list(permutations(arr, a))
- 组合
def comb_compute(self):
"""
组合:不带顺序
:return:
"""
comb_my = self.factorial(self.a) / self.factorial(self.a - self.b) / self.factorial(self.b)
comb_math = math.factorial(self.a) / math.factorial(self.a - self.b) / math.factorial(self.b)
comb_sp = comb(self.a, self.b)
def comb_list(arr, a):
"""
排列:从arr中不放回且不带顺序的取出a个元素的所有可能
:return:
"""
if a > len(arr):
return
return list(combinations(arr, a))
上一篇: Redis数据结构使用场景
下一篇: 电商进入村尚需要打通“最后一公里”