Господа выручайте пл если что это надо делать на python
Дана последовательность натуральных чисел x1, x2, ..., xn. Стандартным отклонением называется величина σ=(x1−s)2+(x2−s)2+…+(xn−s)2n−1−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√ где s=x1+x2+…+xnn — среднее арифметическое последовательности. Определите стандартное отклонение для данной последовательности натуральных чисел, завершающейся числом 0
заранее
Конечно, для такой популярной задачи есть готовая имплиментация - например, она есть в пакете numpy, искомая функция numpy.std. Единственное, чтобы в знаменателе был n - 1, а не n, нужно добавить ddof=1
Можно посчитать и руками (и проверить, совпадает ли результат)
# python 3
from math import sqrt # квадратный корень
from numpy import std # готовая реализация для проверки
x = []
while True:
temp = int(input()) # считываем значение во временную переменную
x.append(temp) # добавляем в массив
if temp == 0: # если это 0, то это последний элемент массива
break
n = len(x) # количество элементов
s = sum(x) / n # среднее арифметическое
s2_1 = 0
for el in x:
s2_1 += (el - s) ** 2 # вычисление суммы квадратов, вариант 1
s2_2 = sum((el - s) ** 2 for el in x) # вычисление суммы квадратов, вариант 2
std_1 = sqrt(s2_1/(n - 1))
std_2 = sqrt(s2_2/(n - 1))
std_3 = std(x, ddof=1)
print(std_1) # первый вывод - вариант с вычислением суммы квадратов по методу 1
print(std_2) # второй вывод - вариант с вычислением суммы квадратов по методу 2
print(std_3) # третий вывод - готовая функция из библиотеки numpy
Пример ввода:
1
1
1
1
1
100
0
Пример вывода:
37.48332962798263
37.48332962798263
37.48332962798263