Расчет средней квадратической взвешенной: блок-схема и программа

Photo

Задание 13

Необходимо составить блок-схему алгоритма и программу для расчета средней квадратической взвешенной по формуле:

\(x = \sqrt{\frac{\sum x^2 f}{\sum f}}\)

где:
- \(x\) - варианты;
- \(f\) - частоты.

Блок-схема алгоритма:

  1. Начало
  2. Ввод данных: Ввод вариантов (\(x_i\)) и соответствующих частот (\(f_i\)).
  3. Инициализация: \(\text{sum\_x2f} = 0\), \(\text{sum\_f} = 0\).
  4. Цикл по всем вариантам:
    • Для каждого \(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\).
  5. Вычисление средней квадратической взвешенной:
    • Если \(\text{sum\_f} > 0\), то \(x = \sqrt{\frac{\text{sum\_x2f}}{\text{sum\_f}}}\).
    • Иначе, вывести сообщение об ошибке (деление на ноль).
  6. Вывод результата: Вывести значение \(x\).
  7. Конец

Пример программы на 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)
thinking img
progress gif

Текст скопирован
Готово
Ошибка
×