gpt4 book ai didi

java - 比较数学表达式

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:56:02 25 4
gpt4 key购买 nike

这是我的情况:我有两个包含变量(x、y、z 等)的数学表达式。我已经使用 shunting yard algorithm 将它们编译为后缀用于执行,现在我需要一种方法来测试它们在数学上是否相等。

例子:

x+5==5+x
x*2==x+x
4/(x/2)==8/x

我最初的想法是只抛出几千个不同的随机输入,看看评估结果是否相同。

我预见到这种方法的问题:精度问题、NaN 情况和可能的溢出。

所有的计算都是用Java的double类型完成的。

有什么想法吗? :)

编辑:由于这是一款休闲游戏,解决方案不需要完美,只要足够好即可!

最佳答案

对于您提供的示例表达式,您可以转换函数以生成一个多项式除以另一个多项式,除数的最重要系数是一个,没有公因数。这会给你一个规范的形式——如果有差异,这两个函数就会真正不同。但是,您还需要将系数表示为任意精度有理数或命中精度问题,到那时您将已经编写了大部分基本计算机代数系统,例如 http://en.wikipedia.org/wiki/List_of_computer_algebra_systems 中列出的那些。 - 其中确实包括一些免费系统。

关于java - 比较数学表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14547149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com