什么是确定两个数组之间差异的项目?

时间:2010-11-15 04:01:40

标签: algorithm

我想找到两个数组中哪些元素使两个数组不同。

例如,如果我从

开始
known_unacceptable_array = [bad, bad, good, good, good, bad, good]
known_acceptable_array = []

如果有三个bad(但我当时不知道),那么数组是不可接受的,但是我能够评估阵列是可接受的还是不可接受的,我想找到使阵列不可接受的最小数组

possibly_minimal_unacceptable = [bad, bad, bad]
maximal_acceptable = [bad, bad] # Third bad required to make the array unacceptable

这个问题叫什么,有什么算法呢?

编辑:元素无法按顺序更改,添加元素只能将列表从可接受更改为不可接受或无效 - 它无法将其更改为不可接受的。

后台:我随机生成了数以千计的指令,这些指令会让ruby解释器崩溃,我想隔离导致它崩溃的具体指令,当时我认为多次坏需要说明才能使其崩溃。一种非常天真的尝试,以确定this link

中的错误指令

2 个答案:

答案 0 :(得分:0)

  

决定产生差异的因素是什么?   在两个数组之间调用?

通常称为差异 减法。

  

我想确定两个数组中的哪些元素   两个阵列不同。

再次,那是减法(至少 某种形式):
     给定A = {x,y,z} B = {x,y a},
     A - B = {z,-a}

或“只有A有z,只有B有”,或“z和a”才能生成它们 不同。

  

例如,如果我从

开始
known_bad = [bad, bad, good, good, good, bad, good] >
known_good = []

为什么从一个完整的数组和一个空数组开始?不是这个 极端情况,或者这些“两个阵列”不是你的两个 正试图确定“差异”。

  

possible_minimal_bad = [坏,坏,坏]
  maximal_good = [bad,bad]#使列表变坏所需的第三个错误

这只是一套规则吗?或者这是结果 找到前面两个数组之间的差异 (known_good,bad)设置?

  

这个问题叫什么,有什么算法   对此?

  1. 如果它不被称为“差异”或“减法”那么为什么 这样介绍一下吗?
  2. 问题是:a。来自 前两个数组(known_xx)到第二个数组(min,max); 或者是:b。对“好”字的有限序列进行分类 并且“糟糕。”
    a)我看不出前两者之间的关系 数组和第二个。你是如何从前两个得到的 到第二个?
    b)对一系列单词进行分类即可 “解析语言”,或解码消息,识别a 模式等。
  3. 是“模式识别”吗?

    您正在寻找测试输入(或测试点)数据中的模式,以及它与产品故障的关系,  并希望用某些代码来表示这种关系 表格进一步分析。或者在某些测试点和产品故障之间搜索关联。这使得这个问题变得相当 有趣。但是,问题的提出 很混乱。也许那些群体 方程式可以再解释一下,澄清它们是否相关,如果是,那么:以什么方式?

答案 1 :(得分:0)

我不完全确定我是否理解这个问题。如果我的答案不能令人满意,请将您的问题改写为更清楚。我的答案就是基于此。

  

我想确定两个数组中哪些元素使两个数组不同。

这是三组操作联合,交集和差异的组合。不同的组合可以达到相同的效果。

  • 补充是A的子集,不在B中。
  • Intersection 是A和B中的元素集,但不仅仅是A B.
  • Union 是A或B中的子集(无重复)。

听起来你想要两个补语的结合,即:

A\B ∪ B\A

交叉点与联合之间的补充:

A∩B \ A∪B

有关详细信息,请参阅http://en.wikipedia.org/wiki/Set_operations_(Boolean