Может ли кто-нибудь помочь мне с этой формулой? (Среднеквадратичное отклонение) - PullRequest
0 голосов
/ 07 апреля 2020

Итак, я только начал учиться Java, но мой проф. просто дал нам эту дикую формулу, которую мы должны перевести в код. Я не могу понять, как сделать это возможным, кто-то может мне помочь?

σ означает стандартное отклонение µ означает среднее x означает, что массив x N означает N переменных

Formula]

1 Ответ

0 голосов
/ 07 апреля 2020

enter image description here

Сигма-символ Σ в верхнем регистре просто означает сумму.

Итак, для каждого значения данных вычтите среднее значение ( средний, с точки зрения непрофессионала) и квадратный результат. Сложите все эти значения вместе, разделите их на количество значений данных минус один, а затем возьмите квадрат root этого.

Псевдо-код для этого будет примерно таким, как показано ниже. Во-первых, функция для вычисления среднего значения:

def calcMean(collection):
    # Initialise for working out mean (sum / count).

    sum = 0, count = 0

    # Add every item to the sum and keep count.

    for item in collection:
        sum = sum + item
        count = count + 1

    # Avoid dive by zero, you choose what to do.

    if count == 0:
        handle empty collection somehow

    # Return the mean.

    return sum / count

Затем с помощью нее вычисляем стандартное отклонение:

def calcStdDev(collection):
    # Get mean of the collection, initialise accumulator and count.

    mean = calcMean(collection)
    accum = 0, count = 0
    for item in collection:
        # Accumulate each '(item-mean) squared' value.

        diff = item - mean
        accum = accum + diff * diff

    # Avoid dive by zero, you choose what to do.

    if count < 2:
        handle too-small collection somehow

    # Divide and square root for result.

    return sqrt(sum / (count - 1))

Теперь ваша задача - превратить этот псевдокод в Java, что-то, что должно быть немного проще, чем превращение формулы в Java.

...