符号计算器符号表示结构

问题描述

我正在尝试制作一个可以进行符号计算的小程序。没有什么比五种基本运算(求和、减法、乘法、除法和求幂)更复杂的了。这些事情在纸面上看起来很简单,但我发现让计算机理解如何进行这些计算非常困难。

现在的问题是,如何表示一个符号以便于计算?

我尝试了以下方法: 数字是具有数字(整数)分子和分母的有理数。其余的是带有标签 (x,y) 的符号,它们具有由其他符号和有理数组成的计数,即相加的符号在一个数组中,相乘的符号是符号的计数.因此,(x+y)*z 变成符号 z,计数为 [符号 x,符号 y],x*y*z 变成符号 z,计数为 [符号 y,计数为 [符号 x]]。

加法很简单,如果其他符号标签匹配,则将两个计数相加: 3x+yx => 带有 [有理数 3/1,符号 y] 计数的符号 x

减法和加法一样简单,只需将负数的有理数加到另一个上即可: 3x+(-yx) => 符号 x 计数为 [有理数 3/1,符号 y 计数为 [有理数 -1/1]

乘法变得更难,但是对于符号的每个元素计数,将乘数添加到它们的计数中: (1+y)x * z => 带有 [符号 z] 计数的符号 x,带有 [符号 z] 计数的符号 y]

除法是我没搞懂的东西,因为如何找到一个东西是否可整除实际上很难,因为需要为符号计数的每个元素找到它是否可整除,包括原始符号计数,然后找出可以消除的地方。

所以在这一点上我有点迷茫,想知道是否有一种相当好的方法来表示符号计算中的符号。我做得对吗,或者如果我继续下去,这个烂摊子会变得更糟。

我也尝试过使用二叉树,但那里的划分也变得太难了。

将符号表示为字符串并尝试逐个字符计算是否更有意义?如果是,那么除法如何再次起作用,特别是如果涉及到分数?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)