python中跟排列组合相关的习题更改?
num=[]
n=int(input("请输入总共的数"))
for a in range(1,n+1):
for b in range(1,n+1): for c in range(1,n+1):
if a!=b and b!=c and a!=c:
li=[a, b, c]
num.append(li)
print(f"共有{len(num)}种组合,分别是:{num}")
这是我写的从多个数中选取三个的排列组合,现在我想把它改成选取m个,m为一个后期输入的不定的数怎么改?完全没思路!!
回答:
这个问题和昨天某位同学的问题有一定相似,其实思路都正确,只是相对需要逻辑的地方多了一点点。
python案例求教?
同样,你的这道题调用itertool模块的函数也会很简单,行数少,而且清晰易懂。
from itertools import combinations, permutationsn = int(input("请输入总共的数:"))
nums = list(range(1, n+1))
m = int(input("请输入选取的数字个数:"))
# 组合
combinations_result = list(combinations(nums, m))
print(f"共有{len(combinations_result)}种组合,分别是:{combinations_result}")
# 排列
permutations_result = list(permutations(nums, m))
print(f"共有{len(permutations_result)}种排列,分别是:{permutations_result}")
以上是 python中跟排列组合相关的习题更改? 的全部内容, 来源链接: utcz.com/p/938927.html