【发布时间】:2021-05-29 22:16:32
【问题描述】:
我必须开发一个递归 Python 函数,它返回 setpairs 中所有最大对的集合。 例如 maximalpairs({(1, 0), (0, 3), (1, 2)}) 应返回 {(1, 2), (0, 3)}。
这是我的实现
def maximalpairs(pairs):
if len(pairs)==1:
return pairs
for tup1 in pairs:
for tup2 in pairs:
if all(i > j for i, j in zip(tup1,tup2)):
pairs.remove(tup2)
return maximalpairs(pairs)
pairs.remove(tup1)
return maximalpairs(pairs)
pairs={ (1, 0), (0, 3), (1, 2) }
print(maximalpairs(pairs))
只返回 (0,3)。 我怎样才能得到正确的结果?
【问题讨论】:
-
“最大对”的定义是什么?
-
自然数对 (x, y) 在给定的对 setpairs 集合中是最大的,如果它不被集合中的任何其他对 (w, z) 支配,即它不认为:w >= x 和 z >= y 并且至少有一个不等式是严格的。
标签: python python-3.x list set tuples