Java Math完成方形计算器

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

嘿,我对整个编程场景很陌生,我只是一个学习java计算机科学课程的高中生。我试图用我目前所知的方法测试我的能力,并尝试理解东西和练习。因此,我试图为某些事情制作几个数学计算器。我正在努力完成广场。所以像(2 + 4x ^ 2)^ 2将会出现(4 + 16x + 4x ^ 2)。我的问题是我无法让它完全发挥作用,而且代码有点像klanky。

import java.util.Scanner;

public class SquaringDoubles {

    public static void main(String[] args) {

        //declaring
        Scanner input = new Scanner(System.in);

        //inputs
        System.out.println("Enter in the double with this format ( A + B )^2");

        System.out.print("A --> ");
        double A = input.nextInt();

        System.out.print("B --> ");
        double B = input.nextInt();
        input.close();

        System.out.println("You're Equation: " + A + " + " + B + "x");

        //Math
        //A + C + B
        double A2 = Math.pow(A, 2);
        double B2 = Math.pow(B, 2);
        double C = 2 * (A * B);

        //final
        System.out.print("You answer: ");
        System.out.println(A2 + " + "+ C + "x" + " + "+ B2+ "x^2");
    }
}
java math calculator algebra
1个回答
1
投票

插入是从一个公式到等价形式方程的最简单的一般方法

Y(x) = A2 + B2x + C2(x)^2

由于有三个变量(A2,B2,C2),我们需要三个方程来解决系统问题。为了获得这些方程式,我们可以简单地将三个x选择和他们计算的Y(x)放入我们想要的形式。并解决方程组。

所以从本质上讲,我们为我们选择的三个x计算Y(x),并将它们粘贴到公式中。可以采用任何(定义的)值,但有些可以使生活更轻松。

所以

X = 0是第一个候选者,因为它用x消除了所有东西,直接给你A2。

Y(0)= C2*(0)^2+B2*(0)+A2 = A2
A2 = Y(0)

x = 1:你明白了

 Y(1)= C2*(1)^2+B2*(1)+A2 = C2+B2+A2

x = -1:你明白了

Y(-1)= C2*(-1)^2+B2*(-1)+A2= C2-B2+A2

消除C2:

Y(-1)+B2-A2 = Y(1) -B2 -A2
-> 2*B2=Y(1)-Y(-1)
B2=(Y(1)-Y(-1))/2

通过插入C2 + B2 + A2 = Y(1)最终计算C2:

C2=Y(1) -B2 -A2

所以一般情况下 - 对于任何给定(有效)方程式,得到A2 + B2·x + C2·x²形式:

  • A2 = Y(0)
  • B2 =(Y(1)-Y(-1))/ 2
  • C2 = Y(1)-B2-A2 =(Y(1)+ Y(-1))/ 2-Y(0)

在你的例子中,由于正方形,Y(1)= Y(-1),所以

Y(x) = (A + B * (x)^2)^2

Y(1) = (A + B * (1)^2)^2   =(A+B)^2  // x=1
Y(-1) = (A + B * (-1)^2)^2 =(A+B)^2  // x=-1
B2 =(Y(1)-Y(-1))/2 =0

所以

C2= Y(1) -A2 = (A+B)^2 - A2

所以对于(A + B *(x)^ 2)^ 2:

  • A2 = Y(0)= A ^ 2
  • B2 = 0
  • C2 = Y(1)-Y(0)=(A + B)^ 2-A2

码:

public static void main(String[] args) {

        //declaring
        Scanner input = new Scanner(System.in);

        //inputs
        System.out.println("Enter in the double with this format (A + B(x)^2)^2");

        System.out.print("A --> ");
        double A = input.nextInt();

        System.out.print("B --> ");
        double B = input.nextInt();
        input.close();

        System.out.println("You're Equation: (" + A + " + " + B + "x^2)^2");

        //Math
        //A + C + B
        double A2 = Math.pow(A, 2);
        /**  old code:
         * 
        double B2 = Math.pow(B, 2);

        double C = 2 * (A * B);
        */     
        /** replacement : */
        //Y(1)=(A + B*(1)^2)^2 = (A+B)^2
        //Y(-1)=(A + B*(-1)^2)^2 = (A+B)^2
        //B2 = (Y(1)-Y(-1))/2 = ((A+B)^2 -(A+B)^2)/2 = 0
        double B2=0; // it is always 0 in this case
        //Y(1)=(A + B*(1)^2)^2 = (A+B)^2
        double C2=(A+B)*(A+B) - A2; //Y(1) -A2 
        //final
        System.out.print("You answer: ");
        System.out.println(A2 + " + " + B2 + "x" + " + " + C2 + "x^2");
    }

我添加了一些评论,以显示正在发生的事情以及如何与其他方程式相似。

© www.soinside.com 2019 - 2024. All rights reserved.