首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分目控制向量

分目控制向量
EN

Stack Overflow用户
提问于 2022-05-06 08:35:18
回答 1查看 25关注 0票数 0

我有几个相同大小的0,1雷亚尔的列表。例如:

代码语言:javascript
复制
[0.33, 0.0, 0.0, 0.33, 0.33, 0.33, 0.0]
[0.0, 0.33, 0.0, 0.33, 0.33, 0.33, 0.0]
[0.0, 0.33, 0.0, 0.33, 0.0, 0.33, 0.0]

我怀疑有些列表严格地被其他列表所控制;例如,第三个列表被第二个列表所控制;在l3i <= l2i for all I的意义上;l3j < l2j表示至少一个j。我想去掉这些;所以我编写了以下两个函数:

代码语言:javascript
复制
        # R correspond to the original list of lists. 
        # Rp is the list where the striclty dominated lists have been removed.

        def minor_solution(r, R):
            """determines if there exists r2 in R such that r <= r2 for all value and r<r2 for at least one value"""
            for r2 in R:
                if strict_domination(r, r2):
                    return True
            return False

        def strict_domination(r1,r2):
            """return true iff r1 is stricly dominated by r2."""
            strict = False
            dom = True
            for i in range(len(r1)):
                strict = strict or (r1[i] < r2[i])
                dom = dom and (r1[i] <= r2[i])
            return dom and strict

        Rp = []
        for ri in R:
            if minor_solution(ri, R) == False:
                Rp.append(ri)

我的问题是这是行不通的。一些清单最终被删除,但一些应该删除的清单仍然存在。例如,我给出的示例中的第三个列表没有被删除。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-06 09:23:26

对于这样的比较,您不需要遍历所有元素,只需检查以下元素就足够了:

代码语言:javascript
复制
l1 = [0,2,5]
l2 = [0,2,5]

l1==l2
True

or

l1 = [0,2,5]
l2 = [0,2,10]

l1<l2
True

而python将为您完成元素方面的工作。我的问题来了,你需要一个“适者生存”吗?“适者生存”是最主要的list,因为从你给出的描述来看,还不清楚列表元素与其他元素的关系应该是什么。也许更详尽的例子,你想要收到的将是有帮助的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72138521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档