【问题标题】:Datalog-find duplicates数据记录查找重复项
【发布时间】:2013-04-29 17:28:29
【问题描述】:

我想创建一个约束来过滤 nxn 矩阵中的所有重复行,其中每个字段由 0 或 1 组成。矩阵最多可以有 10x10 行和列。 例如。我们有以下 4x4 矩阵:

0 1 0 1

1 1 1 0

0 1 0 1

1 0 1 1

那么第 1 行和第 3 行将是相同的,这是不可能的。我已经思考了 4 个小时来解决这个问题,但没有运气。

有人可以给我一个提示吗?

【问题讨论】:

    标签: datalog


    【解决方案1】:

    正如您所注意到的,您不能“仅仅”让行 (1,0,1,1) 在数据记录关系中出现两次。当然,问题在于数据记录关系存储集合,而不是元素的列表或多集合。处理这个问题的最好方法是添加额外的数据来跟踪一行出现的频率,以将矩阵视为从索引到值的映射。您可以尝试以下方法:

    myUnorderedMultiset[x,y,z,w]=count -> int(x), int(y), int(z), int(w), int(count).
    

    myMatrix[rowIndex, columnIndex] = value -> int(rowIndex), int(columnIndex), int(value).
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-24
      • 2016-07-03
      • 1970-01-01
      • 2014-03-18
      • 2019-04-27
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多