【发布时间】:2009-04-30 15:35:36
【问题描述】:
我正在为班级编写一些儿童数学教育软件。
我将尝试以有趣的方式通过随机生成的不同类型的数学问题向不同技能水平的学生提出问题。
使用基于计算机的数学软件的一个挫折是它的死板。如果有人参加了在线数学课程,您就会知道参加在线测验并因为您的问题没有完全按照他们的形式或一些奇怪的间距问题而被丢弃正确答案的挫败感。
所以,最初我想,“我知道!我将在答案框上使用表达式解析器,这样我就可以评估他们输入的任何内容,即使它的形式不同,我也会能够检查它是否是相同的答案。”所以我启动了我的 IDE 并开始实现 Shunting Yard Algorithm.
这将解决它不采取最小形式的分数和其他问题。
然而,我突然想到,一个狡猾的学生只需将大部分问题输入答案框,我的表达式解析器就会尽职尽责地解析并评估它以获得正确的答案!
那么,我不应该在这种情况下使用表达式解析器吗?我真的必须生成单一形式的答案并进行字符串比较吗?
【问题讨论】:
-
真是个好问题!请让我们知道你最终要做什么——我很好奇。
-
你能举一个问题的例子吗?
-
@Greg:他在谈论类似:“500 / 2 的值是多少?” “正确”答案是 250,但有进取心的学生只需在复制粘贴中输入“500 / 2”,表达式评估器就会接受。
标签: math expression-trees evaluation