例如,将abcdefg,分给甲乙丙三人,每人至少一个,有多少种方案,分别列举出来。
1条回答 默认 最新
- CSDN专家-孙老师 2021-10-19 14:25关注
这种排列组合就行了,利用itertools库中的combinations方法进行排列组合,思路如下。
import itertools set_all=set('abcdefg') count=0 #共有7个元素,循环7次 for i in range(1,8): #第一个人 for L1 in itertools.combinations(set_all, i): #第一个人分配后剩余的 rem=set_all-set(L1) #对剩余的进行循环 for j in range(1,7-i): #第二个人 for L2 in itertools.combinations(rem, j): #剩下的是第三个人的 L3=rem-set(L2) count+=1 print(count,end=' ') #输出分配方案 print("甲:{},乙:{},丙:{}".format(set(L1),set(L2),L3))
输出:
1 甲:{'b'},乙:{'c'},丙:{'a', 'g', 'd', 'f', 'e'}
2 甲:{'b'},乙:{'a'},丙:{'c', 'g', 'd', 'f', 'e'}
3 甲:{'b'},乙:{'g'},丙:{'c', 'a', 'd', 'f', 'e'}
4 甲:{'b'},乙:{'d'},丙:{'c', 'a', 'g', 'f', 'e'}
5 甲:{'b'},乙:{'f'},丙:{'c', 'a', 'g', 'd', 'e'}
6 甲:{'b'},乙:{'e'},丙:{'c', 'a', 'g', 'd', 'f'}
7 甲:{'b'},乙:{'a', 'c'},丙:{'d', 'e', 'g', 'f'}
8 甲:{'b'},乙:{'g', 'c'},丙:{'d', 'e', 'a', 'f'}
9 甲:{'b'},乙:{'d', 'c'},丙:{'e', 'a', 'g', 'f'}
10 甲:{'b'},乙:{'f', 'c'},丙:{'d', 'a', 'g', 'e'}
11 甲:{'b'},乙:{'e', 'c'},丙:{'d', 'a', 'g', 'f'}
12 甲:{'b'},乙:{'a', 'g'},丙:{'d', 'f', 'e', 'c'}
13 甲:{'b'},乙:{'d', 'a'},丙:{'f', 'g', 'e', 'c'}
14 甲:{'b'},乙:{'a', 'f'},丙:{'d', 'e', 'g', 'c'}
15 甲:{'b'},乙:{'a', 'e'},丙:{'d', 'f', 'g', 'c'}
16 甲:{'b'},乙:{'d', 'g'},丙:{'f', 'a', 'e', 'c'}
17 甲:{'b'},乙:{'g', 'f'},丙:{'d', 'e', 'a', 'c'}
18 甲:{'b'},乙:{'g', 'e'},丙:{'d', 'f', 'a', 'c'}
19 甲:{'b'},乙:{'d', 'f'},丙:{'e', 'a', 'g', 'c'}
20 甲:{'b'},乙:{'d', 'e'},丙:{'f', 'a', 'g', 'c'}
......
共有1806种组合。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效