Привет, я нашел программу для вычисления коэффициента корреляции. Но когда я ввожу число 100 <в массив, как это показано ниже, оно не работает. </p>
Предполагается напечатать 0,874801238.
import java.math.*;
public class GFG {
// function that returns correlation coefficient.
static float correlationCoefficient(int X[],
int Y[], int n)
{
int sum_X = 0, sum_Y = 0, sum_XY = 0;
int squareSum_X = 0, squareSum_Y = 0;
for (int i = 0; i < n; i++)
{
// sum of elements of array X.
sum_X = sum_X + X[i];
// sum of elements of array Y.
sum_Y = sum_Y + Y[i];
// sum of X[i] * Y[i].
sum_XY = sum_XY + X[i] * Y[i];
// sum of square of array elements.
squareSum_X = squareSum_X + X[i] * X[i];
squareSum_Y = squareSum_Y + Y[i] * Y[i];
}
// use formula for calculating correlation
// coefficient.
float corr = (float)(n * sum_XY - sum_X * sum_Y)/
(float)(Math.sqrt((n * squareSum_X -
sum_X * sum_X) * (n * squareSum_Y -
sum_Y * sum_Y)));
return corr;
}
// Driver function
public static void main(String args[])
{
int X[] = {330,100,50,70,140,300,440};
int Y[] = {12000,4000,500,600,1000,3000,15000};
// Find the size of array.
int n = X.length;
// Function call to correlationCoefficient.
System.out.println(correlationCoefficient(X, Y, n));
}
}