gpt4 book ai didi

解析 child 教育软件的基本数学方程?

转载 作者:行者123 更新时间:2023-12-02 14:35:09 24 4
gpt4 key购买 nike

灵感来自recent TED talk ,我想写一个小教育软件。研究人员创造了一种名为“Siftables”的 block 状微型计算机。

alt text
(来源:ted.com)
[David Merril,发明家 - 后台有 Siftables。]

他在许多应用程序中使用了这些 block ,但我最喜欢的是每个 block 都是数字或基本操作符号的时候。然后,您可以将数字或操作符号 block 重新排列成一行,并且它将在另一个可筛选 block 上显示答案。

alt text

所以,我决定要在有限的范围内实现“Math Siftables”的软件版本,作为我正在学习的计算机科学类(class)的最终项目。

解析和解释数学表达式字符串的普遍接受的方法是什么?如果它们有效,则执行该操作?

在这种情况下我应该实现完整的解析器/词法分析器吗?我想解释基本的数学表达式将是计算机科学中的一个半常见问题,所以我正在寻找正确的方法来解决这个问题。

例如,如果我的 Math Siftable block 排列如下:

[1] [+] [2]

这将是一个有效的序列,我将执行必要的操作以获得“3”。

但是,如果 child 要将多个操作 block 拖到一起,例如:

[2] [\] [\] [5]

这显然是无效的。

最终,我希望能够使用用户可以拖动到一起的 block 来解析和解释任意数量的操作链。谁能向我解释或向我指出解析基本数学表达式的资源?

我更喜欢尽可能多的与语言无关的答案。

最佳答案

您可以查看 Shunting Yard Algorithm 。链接的维基百科页面包含大量信息以及指向该算法的各种示例的链接。

基本上,给定中缀数学表示法的表达式,它会返回 AST 或逆波兰表示法,无论您的偏好如何。

这个page还不错。还有一个couple related关于SO的问题。

关于解析 child 教育软件的基本数学方程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/649298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com