Math 如何自动求解这类方程?

Math 如何自动求解这类方程?,math,equation,boolean-logic,Math,Equation,Boolean Logic,i、 e 假设x,y,z都是这些等式中的8位数字,这意味着加法运算将发生进位运算 是否有某种程序或算法可以通过编程方式求解这些方程 进步,如果把移位运算引入方程呢?假设将第二个等式改为 x = z + (x^y)v(x^z) y = z + (x^z) z = (x^y) y=z+(x^z)看一看。基本上,任何一组布尔方程都可以简化为一个标准形式的表达式(a V b V…V c)^(x V y V…V z)。BSAT问题询问是否存在一组表示表达式计算结果为true的布尔值。从计算的角度来说,这

i、 e

假设x,y,z都是这些等式中的8位数字,这意味着加法运算将发生进位运算

是否有某种程序或算法可以通过编程方式求解这些方程

进步,如果把移位运算引入方程呢?假设将第二个等式改为

x = z + (x^y)v(x^z)
y = z + (x^z)
z = (x^y)
y=z+(x^z)看一看。基本上,任何一组布尔方程都可以简化为一个标准形式的表达式(a V b V…V c)^(x V y V…V z)。BSAT问题询问是否存在一组表示表达式计算结果为true的布尔值。从计算的角度来说,这是一个NP完全问题,基本上需要大量的计算能力来解决涉及大量变量的表达式。在页面下方有一些程序可以解决这一问题,用于处理大量的值

如果变量的数量很小,最简单的将是蛮力算法。尽一切可能。如果有n个变量,则将有2^n组值可供尝试。如果n=10,则仅需测试1024组,这将在眨眼之间完成

如果没有+或移位运算符,您可以按位处理方程,例如
x=(x1、x2、x3、x4、x5、x6、x7、x8)
为每组位提供一组方程,这些方程可以独立求解。添加+和shift会使事情变得更复杂,但它们仍然是一组按位方程。对于只有三个变量的暴力仍然是合理的2^24=16777216套尝试,这可以在现代硬件上在一秒钟内解决。四个变量需要256倍的时间,五个变量开始变慢

y = z + (x^z)<<<5
y = z + (x^z)<<<x