有比较if语句的算法吗?

时间:2014-06-05 04:01:29

标签: algorithm

是否有算法和/或工具用于检测具有相同条件的两组if语句是否相同?当我说'#34;等同于" - 我的意思是他们为所有给定的输入执行相同的代码。例如:

# set 1
if a
  if b
    someMethod()
  end
end

# set 2
if a && b
  someMethod()
end

# set 3
if a || b
  someMethod()
end

鉴于这3组if语句,你可以考虑设置1和设置2为"等效"因为someMethod仅在a和b为真时执行。同样,集合1和集合3不相等,因为当a为真且b为假时,someMethod不会被集合1执行,但是在相同条件下将在集合3中执行。

1 个答案:

答案 0 :(得分:3)

我会使用Karnaugh Maps,这是非顺序逻辑综合和分析的标准。

  1. 为每组if 创建卡诺图

  2. 比较地图

    如果地图相同,那么if语句是等价的,如果没有,则它们是不同的。

  3. 很抱歉找到一个简短的回答,但我不知道还有什么要补充,因为这是基本知识。

    [edit1]只是你的情况......

    example

    • set1 == set2
    • set3不同