3

I have tried Javaluator which helped me in evaluating the expressions like (A OR B) AND C . But now I only want to expand the expression (A OR B) AND C to A AND C OR A AND B can any body tell me how can I do this in Java any API or any other help?

4

4 回答 4

2

如果你不需要自己做,你可以使用 Wolfram|Alpha API,它有很多布尔代数相关的功能,比如转换成各种范式等等。如果这是一个家庭作业并且您应该发明自己的轮子,您可以使用一些解析工具(或再次发明您的轮子)来标记字符串,然后应用 set ob 布尔代数规则: http: //mathworld.wolfram.com/布尔代数.html

我认为我应该让这个更具体——在一般情况下,如果不在代码中编写那组规则(硬编码),你就无法解决这个问题。最简洁的方法是使用诸如ANTLR之类的东西来生成布尔规则约束的语言,然后将您的输入提供给它。

于 2013-08-12T13:06:26.670 回答
1

(A OR B) AND C 到 A AND C OR A AND B

这是错误的......(A或B)和C等于(a和c)或(B和C)............

于 2013-08-12T13:05:17.190 回答
1

这被称为德摩根规则。我认为最好的选择是使用卡诺图来做到这一点。这个真值表生成器将在您的道路上为您提供帮助。

于 2013-08-12T12:59:39.653 回答
0

如果变量的数量不是很大,您可以测试每组变量的表达式。如果它在现场A = true, B = false, C = true添加到结果中是真的OR (A and !B and C)

这种形式称为“完全析取范式

于 2013-08-12T13:08:53.380 回答