我想找一个有条件的号码

问题描述 投票:0回答:1

我有这个问题,我认为有一个解决方案,但我没有找到一个

a*x = z
b*y = t
a+b < z && a+b < t && z<=t

这是我的代码

public static double solveEquation(double a, double x, double y) {
    double z = a * x; // Calculate z
    System.out.println("z: " + z);
    double b = z / y - a; // Calculate b
    System.out.println("b: " + b);
    double t = b * y;  // Calculate t
    System.out.println("t: " + t);
    
    

    if (a + b < z && a + b < t && z <= t) {
        return b;
    }
    return Double.NaN; // Return NaN if no solution found
}

最好的情况是,如果我只给出“x”和“y”,然后它会找到“a”和“b”

我尝试了上面的方法,但无法得到正确的结果

java math
1个回答
0
投票

目前,假设值

a
x
y
为正(且非零):-

自从

z <= t
以来,我们在技术上只需要满足两个条件:

  1. z <= t
    翻译为
    a * x <= b * y
  2. a + b < z

由于正数限制,我们可以将第一个简化为:

b >= (a * x) / y

所以,我认为这段代码应该满足您的要求:

public static double solveEquation(double a, double x, double y) {
    double z = a * x; // Calculate z
    System.out.println("z: " + z);
    double b = z / y; // Calculate b
    System.out.println("b: " + b);
    double t = b * y;  // Calculate t
    System.out.println("t: " + t);
    
    

    if (a + b < z && z <= t) {
        return b;
    }
    return Double.NaN; // Return NaN if no solution found
}
© www.soinside.com 2019 - 2024. All rights reserved.