Моя программа по поиску коэффициента корреляции не работает - PullRequest
0 голосов
/ 01 июля 2019

Привет, я нашел программу для вычисления коэффициента корреляции. Но когда я ввожу число 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)); 


    } 
}
...