使用修改的反向波兰符号求解方程

Solving equations with modified Reverse Polish Notation

本文关键字:符号 方程 修改      更新时间:2023-10-16

我必须编写一个程序,用四个基本运算来求解方程。程序必须看起来像:

示例输入:

SET a = 1
SET b = 3 
SOLVEFOR c ( 4 * ( b - c + 2) + a ) = ( 2 - a )

输出:

c = 5.000000

我使用反向波兰符号来评估方程右侧的值(我知道那里只有已知的数字)。至于左边,那是我的问题。我知道必须有一种方法来修改RPN以获得该变量,但我不知道应该如何完成。有什么建议吗?

编辑:我知道这可以用二叉树完成,但我正在尝试使用RPN。

如果可以用二叉树求解,那么就可以用RPN求解。

首先在纸上用二叉树画出你的解决方案。当你能看到的时候,思考会更容易。您将在不影响方程式结果的情况下对树进行再平衡操作。

一旦将未知隔离在左手边,你就完了。每个再平衡操作在RPN中都有一个等价的操作(它是树的平面表示)。

当你看到你绘制的解决方案时,洞察力就会到来。