如何使用 Python 找出给定列表中数字的组合,使其总和等于目标值?
如何找到满足特定和的数字组合?python案例解析
在给定的数字列表中,例如 [280684, 22560, 5000.6768, 114292, 121986, 331914, 287358, 41172],如何选择8个数使其和为931050?
解题思路
为了高效地解决这个问题,我们使用组合的方法。首先,我们导入itertools模块的combinations函数,它可以生成给定列表的所有可能组合。
然后,我们使用for循环遍历列表中选择8个数字的所有组合。对于每个组合,我们计算它们的总和并检查其是否等于目标和931050。如果相等,则将该组合添加到满足条件的组合列表中。
python代码
from itertools import combinations numbers = [280684, 22560, 5000.6768, 114292, 121986, 331914, 287358, 41172] target_sum = 931050 combinations_list = [] for combination in combinations(numbers, 8): if sum(combination) == target_sum: combinations_list.append(combination) if len(combinations_list) > 0: print("以下是所有可能的组合:") for combination in combinations_list: print(combination) else: print("没有找到满足条件的组合。")
输出结果
程序会输出满足条件的所有组合,如下所示:
(280684, 22560, 121986, 331914, 287358, 114292, 5000.6768, 41172) (114292, 121986, 280684, 287358, 331914, 22560, 41172, 5000.6768) (41172, 22560, 287358, 331914, 121986, 114292, 280684, 5000.6768) (5000.6768, 114292, 280684, 287358, 331914, 22560, 41172, 121986)
以上就是如何使用 Python 找出给定列表中数字的组合,使其总和等于目标值?的详细内容,更多请关注硕下网其它相关文章!