それほどひどく見えないように配列を調整するにはどうすればよいですか?
つまり、読み取り可能なテーブルをフォーマットするにはどうすればよいですか?
これSystem.out.print(" ");
は、テーブルの間隔を設定するための非常に非効率的な方法です...
public class TaylorSin {
public static void main(String[] args ) {
double[][] ArrayX = new double[201][4];
for (int i = 0; i < ArrayX.length; i++) {
System.out.print(ArrayX[i][0] = - 1 + (i * 0.01));
System.out.print(" ");
System.out.print(ArrayX[i][1] = Math.sin(- 1 + (i * 0.01)));
System.out.print(" ");
System.out.print(ArrayX[i][2] = taylorSin(- 1 + (i * 0.01)));
System.out.print(" ");
System.out.print(ArrayX[i][3] = Math.abs(Math.sin(- 1 + (i * 0.01)) - taylorSin(- 1 + (i * 0.01))));
System.out.println();
}
}
public static int calculateFactorial(int n)
{
int facto = 1;
for (int i = 1; i <= n; i++)
{facto = facto * i;}
return facto;
}
public static double calculateExponent(double base, int exponent)
{
if(exponent == 0){return 1;}
else {return base * calculateExponent(base, exponent - 1);}
}
public static double calculateTerm(double base, int exponent, int n)
{
double term = 0.0;
term = (calculateExponent(base, exponent)/calculateFactorial(n));
return term;
}
public static double sumOfTerms(double base, int exponent, int n)
{
double summation = 0;
for (int i = 1; i <= 21; i = i +2)
{
if (i == 3 || i == 7 || i == 11 || i == 15 || i == 19)
{
summation = summation - calculateTerm(base, i, i);
}
else
{
summation = summation + calculateTerm(base, i, i);
}
}
return summation;
}
public static double taylorSin(double base)
{
double result = 0;
int exponent = 1;
int n = 1;
result = sumOfTerms(base, exponent, n);
return result;
}
}