检查javascript中两个代数表达式是否相等的函数

时间:2020-03-26 21:14:15

标签: javascript algebra

var Answer = '2a + 5b' // downloaded from database
var input = '5*b+ 2*a' // user input after calculating some algebraic expression. 

if (Answer == input){
    // tell student he solved the math problem correctly. 
}

我想要一个函数,以便上面的if语句返回true。我的问题是我的答案和用户输入是一个字符串,并且在比较时它们不相等。但是,用户正确地解决了最初的问题。

1 个答案:

答案 0 :(得分:0)

即使某些形式的代数表达式 - 例如低次多项式 - 显然很容易测试相等或等价,但不存在通用和完整的方法(以及算法),因为存在代数表达式的形式其问题(决定它们的相等性)是不可判定的,正如 Richardson's theorem 所证明的那样:

<块引用>

理查森定理建立了一个限制的范围 算法可以决定某些数学表达式是否为 平等的。它指出,对于某个相当自然的类 表达式,无法确定特定表达式 E 满足方程 E = 0,同样不可判定 由表达式 E 和 F 定义的函数处处相等(在 事实上,E = F 当且仅当 E − F = 0)。 1968 年证明了 巴斯大学计算机科学家 Daniel Richardson。