欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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))
相关标签: # 统计