Как узнать отклонение от массива чисел? - PullRequest
0 голосов
/ 12 марта 2020

Новый Java здесь! Мне нужно, чтобы пользователь ввел 10 чисел и сохранил их в массиве (двойных чисел). После этого мне нужно вычислить:

Среднее значение: Я сделал это, и мне нужно это, чтобы получить дисперсию, а для разработки стандартного отклонения требуется знание.

Дисперсия: ака среднее квадратов расстояния от среднего. Часть, с которой я запутался. Для каждого числа в массиве я должен вычесть число из среднего значения, возвести в квадрат результат и затем добавить квадрат к промежуточной сумме. После этого мне нужно разделить промежуточную сумму на количество значений (10).

Наконец, Стандартное отклонение: aka квадрат root дисперсии

Я должен напечатать все результаты, округленные до 2 десятичных знаков.

Пример: если мой набор данных был просто {4, 7,5, 8}, то среднее значение (4 + 7,5 + 8) / 3 = 19,5 / 3 = 6,5.

Дисперсия = ((6,5 - 4) ^ 2 + (6,5 - 7,5) ^ 2 + (6,5 - 8) ^ 2) / 3 = (6,25 + 1 + 2,25) / 3 = 9,5 / 3 = 3,17

Стандартное отклонение = √3,17 = 1,78

Мне нужна помощь по математике для определения дисперсии. Я не уверен, как взять промежуточную сумму или как заключить в скобки root чисел.

public class Statistics {
 public static void main(String[] args) {
    int userNumbers;

    Scanner scan = new Scanner(System.in);  // Creating Scanner object
    System.out.print("Enter the 10 numbers: ");
    userNumbers = scan.nextInt();

    double array[] = new double[userNumbers];
    double mean;
    double variance;

    for (int i = 0; i < array.length; i++) {
        userNumbers += userNumbers;
        mean = userNumbers / 10;
    }

    for (int i = 0; i < array.length; i++) {
        variance = mean - userNumbers;

    }

    System.out.print("The variance is:" + );
    System.out.print("The standard deviation is: " + Math.sqrt(variance));
}

}

1 Ответ

0 голосов
/ 12 марта 2020

В этом коде

for (int i = 0; i < array.length; i++) {
    variance = mean - userNumbers;
}

вы перезаписываете значение variance на каждой итерации l oop, поэтому будет сохраняться только последнее значение.

Также для обоих циклов вы хотите использовать элементы в array Попробуйте добавить к значению

for (int i = 0; i < array.length; i++) {
    variance += mean - array[i];
}
...