我会尽力描述我的问题。 我正在尝试编写一个程序来处理类似的方程式:
F = (X∨A) ↔ (X∨B) ( (X OR A) is equivalent to (X OR B) )!
我必须通过' X'来解决它,或者更好地说,写出析取和/或连接的正常形式。
所以,从理论上讲,它是这样的:
当写出真值表时,你必须看F何时等于1(重言式),并写出连词/析取正常形式。
例如(给定表的析取范式): 对于A = 0,B = 0且A = 1,B = 1,X的值无关紧要,对于A = 0,B = 1 AND A = 1,B = 0,X必须为1。
最后, X =A∨B。
由于我是用C#编写的,所以方程式写在TextBox中。 困扰我的是,我应该如何分离我的字符串,以便我可以逐个解决它?
答案 0 :(得分:0)
首先尝试"分裂()" C#中String类的方法(或其他方法)?首先,您最好推动您的用户在每对令牌(例如A和B)之间插入一个空白(作为Split()的分隔符),这样您就可以专注于您的主要逻辑求解。
答案 1 :(得分:0)
我明白了。它基本上是一个简化的计算器,它不一定(通常)通过按钮进行顺序输入,而是在文本框中键入或粘贴现成的公式。
因此,您需要做的是
或者只是点击此链接(Java但仍然): Boolean expression solver/simplifier,使用工具bc2cnf或其他任何链接的库,通过限制允许来避免自己的头痛输入到使用过的库允许的一个。
希望这有帮助。