gpt4 book ai didi

java - 简化二次公式中的根?

转载 作者:行者123 更新时间:2023-11-29 03:49:03 25 4
gpt4 key购买 nike

我是 java 的新手,需要帮助编写代码来简化二次公式。现在我的程序将两个解决方案截断到小数点后两位。但我不知道如何简化判别式的平方。例如,如果判别式是 8,那么我希望程序输出 2√2。能否向我提供执行此操作所需的代码?

package quadraticprogram;

//This imports the DecimalFormat class, Scanner class, and all other Java classes.
import java.text.DecimalFormat;
import java.util.Scanner;
import java.util.*;

public class QuadraticProgram {

public static void main(String[] args) {
int a, A;

Scanner scan = new Scanner (System.in);
System.out.println ("Use integer value, enter minimum value of a:");
a = scan.nextInt();

System.out.println ("Use integer value, enter maximum value of A:");
A = scan.nextInt();
Random generator = new Random();

// Generate random integers in the range from a to A
// and assign them to numa, numb, and numc
double numa = generator.nextInt(A - a + 1) + a;
double numb = generator.nextInt(A - a + 1) + a;
double numc = generator.nextInt(A - a + 1) + a;

System.out.println ("numa" + numa);
System.out.println ("numb" + numb);
System.out.println ("numc" + numc);

// Define d as the discriminant and take its square root
double d;
d = ((numb*numb)-(4*numa*numc));
double r = Math.sqrt(d);

// Calculate the two solutions
double s = ((-numb + r)/(2*numa));
double S = ((-numb - r)/(2*numa));

// Truncate the two solutions to two decimal places.
DecimalFormat fmt = new DecimalFormat ("0.##");

// If the discriminant is negative there are no real solutions.
if (d<0) {
System.out.println("No Real Solutions");
} else {
// Print both solutions if the discriminant is not negative
System.out.print(fmt.format(s));
System.out.println("," + fmt.format(S));
}
}
}

现在程序让用户输入一个最小整数 a 和一个最大整数 A。然后生成介于 a 和 A 之间的随机 double 值 numa、numb 和 numc。然后程序计算判别式, d,作为双。然后取 d 的平方根,即 r。然后程序计算完两个解s和S。然后程序打印两个解,如果判别式不小于0,则将它们截断到小数点后两位。

最佳答案

基本算法非常简单:

  1. 将数字分解为判别式
  2. 从部首中取出出现两次的因子

这是一个例子:

sqrt(180) = sqrt(2*2*3*3*5) = 2*3*sqrt(5) = 6*sqrt(5)

请注意,如果判别式不是整数,这将不起作用。

关于java - 简化二次公式中的根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9595343/

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