gpt4 book ai didi

java - 虚数

转载 作者:行者123 更新时间:2023-11-29 06:10:44 24 4
gpt4 key购买 nike

我有一个方法需要 3 double s 并通过二次公式计算根:

public static double[] quadraticFormula(double a, double b, double c) throws ArithmeticException {
double root1 = 0;
double root2 = 0;

//sqrt(b^2 - 4ac)
double discriminant = (b * b) - (4 * a * c);

if (Double.isNaN(discriminant)) {
throw new ArithmeticException(discriminant + " is not a number!");
}

if (discriminant > 0) {
//Two roots
root1 = (-b + Math.sqrt(discriminant)) / (2 * a);
root2 = (-b - Math.sqrt(discriminant)) / (2 * a);
} else if (discriminant == 0) {
//One root
root1 = (-b + Math.sqrt(discriminant)) / (2 * a);
} else if (discriminant < 0) {
//Imaginary roots
}

return new double[] { root1, root2 };
}

我想对此进行扩展并添加对虚数的支持。我将如何做到这一点?我的第一个想法是,在 else if (discriminant < 0) ,我会得到判别式的绝对值并分解根式。我将向用户输出根,所以不要为 i 而烦恼,我有一个字符串解析器,它确切地知道将 i 放在哪里。关于更有效的方法有什么想法吗?

最佳答案

如果您真的想继续研究复数/虚数,我建议您实现一个表示复数的类。

可以在这里找到一个例子: http://www.math.ksu.edu/~bennett/jomacg/c.html

如果您以某种方式构建混合 double 、数组和字符串的计算,一段时间后它肯定会变得困惑。

关于java - 虚数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6959220/

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