【发布时间】:2021-04-14 18:59:57
【问题描述】:
问题如下:如果有一个集合S = {x1, ..., x_n}和一个函数f: set -> number,它将一个集合作为输入并返回一个数字作为输出,那么最好的联合是什么结构(联盟结构S的一组子集。即找到子集,使得S中每个子集s_i的f(s_i)之和最大)。联合中的集合不应重叠,它们的联合应为S。
一个模板是这样的:
def optimal_coalition(coalitions):
"""
:param coalitions: a dictionary of the form {coalition: value}, where coalition is a set, and value is a number
:return:
"""
optimal_coalition({set(1): 30, set(2): 40, set(1, 2): 71}) # Should return set(set(1, 2))
【问题讨论】:
标签: python algorithm math logic