繁体   English   中英

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

[英]Function that check if two algebraic expressions are equal in javascript

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。 我的问题是我的答案和用户输入是一个字符串,比较时它们不相等。 然而,用户已经正确地解决了最初的问题。

尽管某些形式的代数表达式——例如低次多项式——显然很容易检验相等或等价,但不存在通用和完整的方法(以及算法),因为存在代数表达式的形式(决定它们相等的)问题是不可判定的,正如理查森定理所证明的那样:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM