【发布时间】:2020-03-26 21:14:15
【问题描述】:
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。我的问题是我的答案和用户输入是一个字符串,并且在比较时它们不相等。然而,用户已经正确解决了最初的问题。
【问题讨论】:
-
你需要一些复杂的代码来评估数学表达式——祝你好运
-
查看反向波兰符号和调车码算法。您必须实际解析答案和输入,然后折叠它们。这不是微不足道的。
-
你能告诉我们更多关于你正在处理的问题类型吗?如果它们都符合这种格式,那么你就可以逃脱欺骗(例如,不实际解析,只使用 RegEx 或类似的东西来检查它们是否包含相同的功能部分)。但这将是模式匹配,如果您遇到任何更难的问题,它就会中断。 我不知道我们是否可以回答这个问题,除非您编辑您的问题并给我们更多答案/输入组合。 另外,边缘情况是什么?
a*a和a^2都应该是有效答案吗?(5*b) + 2*a怎么样?等
标签: javascript algebra