公式处理算法

时间:2013-01-09 14:22:12

标签: java algorithm formula

我想制作一个程序,当给出一个公式时,它可以操纵公式来使公式的主题产生任何值(或在同时公式的情况下,一个公共值)。

例如,如果给定:

a + b = c
d + b = c

因此,该计划应该说:

b = c - a, d = c - b    etc.

当我将原始公式作为输入时,我不确定java是否可以自动执行此操作。我对解决方程并得到每个变量的结果并不感兴趣,我只想回归一个被操纵的公式。

如果我需要为此制作算法,请告诉我,如果是,我将如何进行此操作。此外,如果您有任何有用的链接,请发布。

此致

4 个答案:

答案 0 :(得分:1)

看看JavaCC。起初它有点令人生畏,但它是适合这种情况的正确工具。此外,您已经尝试了examples。{/ p>

答案 1 :(得分:1)

我读了道格拉斯·霍夫施塔特(Douglas Hofstadter)的一本名为Fluid Concepts and Creative Analogies的书,他谈到了这种代数操作,它会以其他方式自动重写方程式,试图将方程式连接到其他方程式,给出规则的无限(但有限制)方式。这是试图通过暴力证明尚未证实的定理/证据。

http://en.wikipedia.org/wiki/Fluid_Concepts_and_Creative_Analogies

Douglas Hofstadter的Numbo计划试图做你想做的事。他没有给你消息来源,只描述了它的工作原理。

听起来你想要一个程序来做高中学生在解决代数问题时所做的事情,从你知道某事的位置移动,修改它并将其与其他方程结合起来,以证明以前未知的东西。这需要强大的人工智能。这样做的大脑部分是Neo Cortex,它是科学的,它的工作原理尚未被理解。

如果你想要一些大学生在微积分中操纵方程式时会做的事情,你就必须建立一个相当强大的人工智能。

http://en.wikipedia.org/wiki/Neocortex

当我们可以对人类新皮质进行全脑仿真时,我会在这里发布答案。

答案 2 :(得分:1)

不确定你到底发生了什么,但是这个问题很难解决。很难。

事实上,给定一组“公式”(公理)和演绎规则(数学等价运算),我们无法推断给定公式是否正确。这个问题实际上是undecideable

这个问题首先由希尔伯特解决Entscheidungsproblem

答案 3 :(得分:1)

是的,你需要编写一些算法来做这种计算机代数。至少

  • 用于解释输入的解析器
  • 代数模型,用于关联已解析的操作数('a','b',...)和运算符('+','=')
  • 实施任何适当的规则以支持您希望进行的操作