如何使用 Python 找出给定列表中数字的组合,使其总和等于目标值?

ID:21282 / 打印

如何使用 python 找出给定列表中数字的组合,使其总和等于目标值?

如何找到满足特定和的数字组合?python案例解析

在给定的数字列表中,例如 [280684, 22560, 5000.6768, 114292, 121986, 331914, 287358, 41172],如何选择8个数使其和为931050?

解题思路

为了高效地解决这个问题,我们使用组合的方法。首先,我们导入itertools模块的combinations函数,它可以生成给定列表的所有可能组合。

立即学习“Python免费学习笔记(深入)”;

然后,我们使用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)
上一篇: macOS 上如何正确使用 virtualenv 创建虚拟环境?
下一篇: 如何将包含重复元素的集合拆分成多个无重复元素的子集?

作者:admin @ 24资源网   2025-01-14

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。