python急求简单作业给一个数组a找出是否有3个元素和为一个定值背包问题...
发布网友
发布时间:2023-12-24 14:56
我来回答
共1个回答
热心网友
时间:2024-07-25 08:27
#!/usr/bin/python
# encoding: utf-8
import itertools
def iter_result(alist, target):
for maybe in itertools.combinations(alist, 3):
if sum(maybe) == target:
yield maybe
a = [1, 5, 8, 2, 6, 55, 90]
for x in iter_result(a, 103):
print x
先不必考虑背包问题的解法,这个问题就是简单地将所提供列表的任意三个元素抽取为子集--组合问题。python的itertools提供的combinations恰巧提供了这个功能。
热心网友
时间:2024-08-11 11:15
#!/usr/bin/python
# encoding: utf-8
import itertools
def iter_result(alist, target):
for maybe in itertools.combinations(alist, 3):
if sum(maybe) == target:
yield maybe
a = [1, 5, 8, 2, 6, 55, 90]
for x in iter_result(a, 103):
print x
先不必考虑背包问题的解法,这个问题就是简单地将所提供列表的任意三个元素抽取为子集--组合问题。python的itertools提供的combinations恰巧提供了这个功能。