是否有一个算法和/或工具用于检测具有相同条件的两组if
语句是否相同?当我说“等价”时 - 我的意思是他们对所有给定的输入执行相同的代码。例如:是否有比较if语句的算法?
# 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都是真实的,只有得到执行的“等价”。同样,set 1和set 3不等价,因为当a为真且b为false时,someMethod
将不会被set 1执行,但在相同条件下将在set 3中执行。
有没有通用的方法,因为'if'条件可能是任意复杂的 - 例如他们可能取决于pi的百万位数。 –
这听起来像是一个众所周知的可满足性应用程序,它是NP完整的。 – Sinkingpoint
@j_random_hacker - 我已经修改了我的问题,指定所有if语句集都必须具有与条件相同的输入。 – mralexlau