我无法将问题纳入标题的150个字符限制;如果不清楚,我道歉。
让我们说我有两个相等长度的矢量(A和B)完全由1和0组成。我想知道是否存在任何对A_i和B_i,使得当B_i = 1时A_i = 0。
我的问题是效率。编写for循环很容易,逐个元素进行元素比较,设置标志并在条件满足时中断。问题出现了,我正在处理多达20000行的矩阵和数量相似的列数。我希望有一种方法可以快速执行此检查并删除任何对我来说多余的行...在此比例下,逐元素比较会花费不切实际的时间。
是否有任何优雅的线性代数技巧可以有效地解决这个问题?
编辑1:列不是随机排列的。我不能说它们是严格排序的,但我可以说,当我从左到右时,左边的列更可能覆盖左边的列而不是反之亦然(通过封面,我的意思是A覆盖所有i的B iff,如果A_i = 1,则B_i = 1)。我可以尝试对它们应用一些额外的排序,如果它可以更容易解决问题(但我宁愿避免,如果排序过程同样不切实际)。
在各个栏目中,我并不知道如何通过索引分配这些模式。