判断2个表达式是否相等的算法(2)?
就像前面laughcry2002(LaughCry) 说的
所谓相等的表达式, 是指满足“加法交换律、结合律,乘法交换律、结合律,加乘混合的分配律”意义下的等价表达式。
这样怎么判断?
可以先简单点,只要能满足加法的交换律、结合律和乘法交换律就行了
如a*b=b*a, a+b=b+a, a+b+c=b+(a+c)
问题点数:100、回复次数:7Top
1 楼cooljjyy(叽叽歪歪)回复于 2002-10-25 10:28:14 得分 20
首先解开括号,然后把各个同级别的元素安字母顺序进行大小排列,最后比较字符串是否相等,这样可以么?这只是表面上看起来的算法,不过我的直觉告诉我还有更好的办法。。。嘿嘿。。。Top
2 楼cooljjyy(叽叽歪歪)回复于 2002-10-25 10:33:15 得分 30
注意排列的时候要用递归算法从最里面开始排,如
a + c*b +d
要先排 c*b 为 b*cTop
3 楼sxzbj(大家好)回复于 2002-10-25 10:57:17 得分 30
照你说的(例子)就不是判断两人表达式相等了,而是求解这些定律了,
我认为是,两 个表达式,在满足一定的范围的取值时,表达式的结果相同,就说明它两 相等了。不知对不对,Top
4 楼andymei(暗黑魔法师)回复于 2002-10-25 11:30:59 得分 0
当然不是了
1+1*2 和 2+1*1 数字相等,运算符也相等,表达式的结果相同
但很明显这两个是不等的Top
5 楼wangqiqi(polymath)回复于 2002-10-25 12:23:54 得分 20
对一元多项式可以任取n+1组同的值,n为最高阶。如果都相等,那么相等,因为最多只有n个不同的根。Top
6 楼andymei(暗黑魔法师)回复于 2002-10-28 11:23:36 得分 0
顶Top
7 楼andymei(暗黑魔法师)回复于 2002-10-31 08:43:02 得分 0
顶Top




