python中跟排列组合相关的习题更改?

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, permutations

n = 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

回到顶部