2013-06-24 72 views
0

我有下表中的2个布尔值。C# - 具有2个变量的逻辑运算符 - 组合运算符以避免if语句

我从左至右调用一行声明。

a  b  result 
------------------------ 
false false false 
false true false 
true  false false 
true  true true 

现在我必须编写代码,以使所有这些结果发生。

我可以通过使用一些if语句,switch-command和逻辑操作符来解决这个问题。

是否有可能创建一个单一堆复杂逻辑运算符的表达式。

喜欢的东西:

(a^b)||(a&&b)&(a??b) 

..(这是OBV只是一个例子,好让你能理解我后)

进一步的问题:

有什么软件那能够创建多个随机排列的布尔语句(对于2个变量)?

这样的软件有什么限制? (以及行数/语句数量如何影响可能适合作为表达式的可能解决方案的数量,由逻辑运算符组成)

回答

0

总是可以将任意数量的布尔变量和状态解析为canonical form。尽管只有2个变量,但保留16个可能结果的查找表并且根据需要使用更容易。

+0

对不起,我不想粗鲁,但我怀疑你正确地理解了这个问题。 我正在寻找一个表达式,以规范的形式(谢谢你)。与上面表格中的这四个状态匹配。还有多少可能的规范形式是这样做的。有没有软件? –

+0

对于双变量表达式,与表16中的特定真值表匹配的条目将包含'a && b'。 –

+0

您好,谢谢你的努力,但我不满意的答案 –