当前位置:   article > 正文

排列组合——n个人平均分成m组_n个人平均分成m组的公式

n个人平均分成m组的公式

  本文介绍了排列组合经典问题——n个人平均分成m组的解法(公式),并给出其Python程序,详情如下。


1 解法公式

  求n个人平均分成m组的分配法。设分配方法共 N N N种,每组 k = n m k=\frac{n}{m} k=mn人,则:
N = { 0 , n < m  or  n % m ≠ 0 1 , n = m C n k C n − k k C n − 2 k k ⋯ C 2 k k C k k A m m , n > m  and  n % m = 0 N =

{0,n<m or n%m01,n=mCnkCnkkCn2kkC2kkCkkAmm,n>m and n%m=0
N=0,1,AmmCnkCnkkCn2kkC2kkCkk,n<m or n%m=0n=mn>m and n%m=0式中,除以 A m m A_m^m Amm是为去重

2 Python程序

  Python程序如下:

'''
Author: xyyang
date: 2022-11-11
qq: 1391650991
'''
from scipy.special import comb,perm#组合、排列

def PC_n2m(n,m):
    if n<0 or m<0 or (not isinstance(n,int)) or (not isinstance(m,int)):
        print("人数或分组数据有误!")
        return
    if n<m or n%m!=0:
        return 0
    if n==m: #n%m=0
        return 1
    if n>m and n%m==0:
        k=n//m
        N=1
        for i in range(m):
            N*=comb(n-i*k,k)
        N=N/perm(m,m) #去重
        return N
    
if __name__=='__main__':
    n=6;m=3
    print("{0}人平均分成{1}组,共{2}种方法".format(n,m,PC_n2m(n,m))) #15
    #print(f"{n}人平均分成{m}组,共{PC_n2m(n,m)}种方法")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

或者

'''
Author: xyyang
date: 2022-11-11
qq: 1391650991
'''
from scipy.special import comb,perm#组合、排列

def PC_n2m(n,m):
    if n<0 or m<0 or (not isinstance(n,int)) or (not isinstance(m,int)):
        print("人数或分组数据有误!")
        return
    if n%m!=0:
        return 0
    else:
        if n==m:
            return 1
        else:
            k=n//m
            N=1
            for i in range(m):
                N*=comb(n-i*k,k)
            N=N/perm(m,m) #去重
            return N

if __name__=='__main__':
    n=6;m=3
    print("{0}人平均分成{1}组,共{2}种方法".format(n,m,PC_n2m(n,m))) #15
    #print(f"{n}人平均分成{m}组,共{PC_n2m(n,m)}种方法")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/744392
推荐阅读
相关标签
  

闽ICP备14008679号