我如何以编程方式解决此类系统:
A = !B
B = !C
D = !B
E = !A
E = !B
所以我可以替换A = C = D (3)
和E = B (2)
。我只需要2组的数量。如果无法获得2个组,则会显示错误消息。
答案 0 :(得分:3)
如果在上一个问题中我的answer没有以欺骗方式关闭:
解决形式的方程式
X 1 = NOT X 3
X 5 = NOT X 2
等
形成一个图形,其节点为X i 并连接X i 和X j iff等式X i = NOT X j 出现。
现在尝试使用广度优先搜索对图形进行双色处理。
答案 1 :(得分:-1)
考虑一串位ABCDE
。对于此字符串的每个subset,将该子集中的所有变量设置为true
,将不在子集中的所有变量设置为false
。查看哪个子集符合您的条件。
您可以通过从0
到2^(num variables) - 1
的二进制计数来实现此目的。对于每个数字,其二进制表示形式为您提供哪些变量为true
,哪些变量为false
。所以你只需要获取一个数字的所有位并进行检查。