我有一个像1+(x*10) = 21
这样的字符串形式的等式。我必须像任何语言中的x = (21-1)/10
一样转换它。我不想要一个确切的解决方案,但请给我一些提示。
答案 0 :(得分:2)
答案 1 :(得分:2)
最简单的方法 - 从命令行传递方程式调用一些CAS(计算机代数系统)程序来解决。像:
function b({ a }) {
return {
console.log(a) // returns undefined
}
}
从标准输出中获得结果。但当然这应该在服务器端完成,
即,如果来自PHP - 可以使用maxima --very-quiet -r 'solve ([1+(x*10) = 21], [x]);'
函数执行。
答案 2 :(得分:0)
对我来说,这个问题可分为两个阶段,找到x的一侧(" ="的左侧或右侧),以及扫描和转换文字以及相应的操作
对于第一阶段,您可以通过简单地比较" ="的索引来找到等式x的哪个部分。和" x"在字符串中。
现在需要担心两种类型的组件,即操作数(值)和操作(+, - 等)。 您可以尝试从" x-side"中转移操作数。另一方面,只需转换与值相关的操作(+变为 - 反之亦然,*和/相同)。例如,1 + x = 7。1是操作数,' +'是与1相关联的操作,它被转换为' - '当它移动到另一边时。
每次将操作数和操作移动到另一侧时,请务必在右侧的开头和末尾添加一个括号,以便等式保持需要完成的计算顺序。
希望这有帮助!