Расчет средней квадратической взвешенной: блок-схема и программа
Задание 13
Необходимо составить блок-схему алгоритма и программу для расчета средней квадратической взвешенной по формуле:
\(x = \sqrt{\frac{\sum x^2 f}{\sum f}}\)
где:
- \(x\) - варианты;
- \(f\) - частоты.
Блок-схема алгоритма:
- Начало
- Ввод данных: Ввод вариантов (\(x_i\)) и соответствующих частот (\(f_i\)).
- Инициализация: \(\text{sum\_x2f} = 0\), \(\text{sum\_f} = 0\).
- Цикл по всем вариантам:
- Для каждого \(i\) от 1 до \(n\):
- Вычислить \(x_i^2 * f_i\).
- \(\text{sum\_x2f} = \text{sum\_x2f} + x_i^2 * f_i\).
- \(\text{sum\_f} = \text{sum\_f} + f_i\).
- Для каждого \(i\) от 1 до \(n\):
- Вычисление средней квадратической взвешенной:
- Если \(\text{sum\_f} > 0\), то \(x = \sqrt{\frac{\text{sum\_x2f}}{\text{sum\_f}}}\).
- Иначе, вывести сообщение об ошибке (деление на ноль).
- Вывод результата: Вывести значение \(x\).
- Конец
Пример программы на Python:
import math
def weighted_quadratic_mean(data):
sum_x2f = 0
sum_f = 0
for x, f in data.items():
sum_x2f += (x**2) * f
sum_f += f
if sum_f > 0:
return math.sqrt(sum_x2f / sum_f)
else:
return "Error: Division by zero"
# Пример использования
data = { # варианты: частоты
10: 5,
15: 8,
20: 3
}
result = weighted_quadratic_mean(data)
print("Средняя квадратическая взвешенная:", result)
Текст скопирован
Готово
Ошибка