繁体   English   中英

用Java解决两个代数方程

[英]Solving two algebraic equations in java

我有两个方程需要在Java中评估

y=(x+1)*2-3
y=5

这些方程本质上是动态的

y= x*8x6-5*5
y= 3

y在这些方程式中是已知的,我需要确定x的值

用Java编写程序的最佳简便方法是什么?

似乎有两种方法可以解决此问题。 我的第一个想法(一如既往地过于复杂,除了有趣之外,很可能不值得做),是使用创建语法来解析操作顺序,可以求出变量与常量的结果等。然后以编程方式解决方程。 但是,这并非易事。 如果这是针对编译器类的,则可能值得一看,否则将其忽略。

我的第二个想法是只使用蛮力。 虽然您将需要弄清楚如何处理x的负值。

public int solve(int y){
    int x=0;
    while(y>(x+1)*2-3)
        x++;
}

几年后,希望这对某人有帮助,使它变得更简单,我将使用库exp4j( https://www.objecthunter.net/exp4j/ )和IDE netbeans 8.2( https://netbeans.org/ ) 。 创建这样的框架

稍后在按钮上添加代码:

try { net.objecthunter.exp4j.Expression e = new ExpressionBuilder(txtFunc.getText()) .variables("x") .build() .setVariable("x", Double.parseDouble(txtVar.getText())); double result = e.evaluate(); txtRes.setText("" + result); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Revisa la función o la variable, Posibles errores de operación: División entre 0"); }

注意:这是为了评估“ x”,所以这样做的方法将有些复杂,因此我们将做一些数学运算,如果5是所评估函数的值,则我们将“ x”的值隔离。 x =(y + 1)/ 2,然后重新评估,x =(5 + 1)/ 2 = 3,x = 3,并通过代码验证这实际上是答案。
恭维

其他功能也一样。 (对不起我的技术英语)

如果通过说方程是“动态的”,我们可以推断出您正在尝试构建一个程序来求解任意代数方程(或方程组)中的x,那么这已经超出了本论坛的讨论范围。 有完整的软件包设计用于执行此类操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM