用python语言编写一个脚本给定n个不重复的数要求生成由给定的数组成的长度为m的数的所有组合方式
以下是一个使用递归的Python脚本,用于生成由给定的数组成的长度为m的所有组合方式:
def generate_combinations(nums, m):
result = []
current_combination = []
def backtrack(start):
if len(current_combination) == m:
result.append(current_combination[:])
return
for i in range(start, len(nums)):
current_combination.append(nums[i])
backtrack(i + 1)
current_combination.pop()
backtrack(0)
return result
# 示例用法
nums = [1, 2, 3, 4]
m = 3
combinations = generate_combinations(nums, m)
for combination in combinations:
print(combination)
在这个脚本中,generate_combinations函数接受两个参数:nums是给定的不重复的数数组,m是所需的组合长度。函数通过调用内部的backtrack辅助函数来生成所有可能的组合。backtrack函数采用回溯算法来生成组合,它从给定的start索引开始遍历数组,将当前数字添加到current_combination中,并递归调用自身来生成下一个数字的组合。当current_combination的长度达到m时,将其添加到result中。最后,返回所有生成的组合。
示例用法中,给定了一个长度为4的数组nums和所需的组合长度m为3。脚本会生成所有可能的长度为3的组合,并将它们打印出来
原文地址: http://www.cveoy.top/t/topic/iXHz 著作权归作者所有。请勿转载和采集!