【问题标题】:Parsing and Solving a Formula in Java SE 8在 Java SE 8 中解析和求解公式
【发布时间】:2017-12-09 01:16:12
【问题描述】:

免责声明:不是家庭作业

我已经使用标记器在 Java 中编写了非常基本的计算器解析器,但我最近开始编写一个问题来帮助我理解化学。随着我开始编写越来越多的公式,越来越明显的是,求解每个方程所需的复杂性几乎比掌握方程本身更乏味。以方程 PV = nRT 为例,我怎样才能编写一个解析器,让我输入所有已知变量并在它可解的情况下求解?我可以做可解性背后的逻辑,但这里有一些要求:

  • 必须能够求解任何未知变量。

  • 解析应该能够用于任何大小的公式(例如:我想实现多个公式,例如 π = MRT 和越来越复杂的公式,并且只想定义一次。)

再一次,这纯粹是为了我的享受并用作学习工具。任何帮助将不胜感激,因为在谷歌和 StackOverflow 上搜索这个问题给了我模糊或不适用的答案。

【问题讨论】:

  • PV = nRT 的长格式是什么?是PV = nRT 还是PV = n * RT 还是PV = n * R * T?方程中的变量需要有规则。
  • 这个(符号代数)是一个非常复杂的问题,为许多博士论文提供了肥沃的土壤。行业标准是 Mathematica 和 Wolfram Alpha(尽管它们也做得更多)。这两种产品都代表了数百人年的工作,我们无法解释如何作为 StackOverflow 的答案来做到这一点。这是一个很好的起点:en.wikipedia.org/wiki/Computer_algebra
  • 如果我的问题过于宽泛,我深表歉意。我不想要像胡安这样的解决方案。还有 PV = n *RT。如果有的话,我可以发布一些生产风格的代码,但我觉得有一个大部分是空的方法会分散注意力并降低可能答案的整体质量。

标签: java parsing token formula equation


【解决方案1】:

由于您没有发布任何代码,所以我将说出我的想法。

我曾经有一个 hp48G 计算器,它有一个库,其中包含许多涵盖不同领域的公式。

您必须通过菜单选择要应用的公式,而不是解析一行,然后计算器会分别询问每个参数,并将其应用于公式以提供结果。

如果您遵循这种方法,并帮助使用 java 的接口,我认为您可以按照您的要求进行操作。

【讨论】:

  • 这绝对有帮助。感谢您提供宝贵的意见,今晚我会检查一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-24
  • 1970-01-01
  • 2018-09-04
  • 1970-01-01
相关资源
最近更新 更多