我正在寻找一个在python中工作的命题微积分模块。
我的用户需要在文本区域中输入公式,然后我必须检查它是否正确。
我不能直接测试输入文本是否等于正确的文本,因为它没有考虑排列或类似的事情。
这样的模块存在吗?
-编辑-
以下是项目截图(设计未完成):
最佳答案
这不太难。你所需要做的就是(a)找到或(b)编写一个接受任意命题并生成真值表的实用程序。然后,对于两个命题,您只需要生成两个真值表,并检查原子变量和最后一列在所有行中是否匹配。
这是O(2^n)的原子变量数,假设每个命题包含相同数量的原子变量。如果可能包含额外无用的原子变量(如a或(b或不b)相当于a),则需要填充更简单命题的真值表,以获得相同的行数。如果允许使用不同的原子变量,那么这将变得更加困难。
假设P,你不能做得比O(2^n)好!=NP,因为多项式解可以解决命题演算上的一般可满足性问题。
要生成真值表,需要(a)生成原子变量真值的所有2^n排列的列表(有很多方法可以这样做),以及(b)评估原子变量真值的任意赋值命题。然后做两张表比较。喂!
关于python - Python中的命题演算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7105023/