VVarisel Desk
Сценарии

Сценарии работы с кодом · Исправленная дисперсия по Уэлфорду

03
Вокруг ваших задач

Конкретная отправная точка

Вычислите исправленную выборочную дисперсию 2–10000 значений с модулем не более 1e150 по алгоритму Уэлфорда. Проверьте постоянные данные и большое смещение, отклоняя булевы и неконечные значения и неверное число элементов.

01

Откройте контекст

Выберите папку проекта и обозначьте нужные файлы или поведение.

02

Опишите изменение

Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.

03

Изучите работу

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

04

Проверьте результат

Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

Исправленная дисперсия по Уэлфорду

Конкретная отправная точка
from math import isfinite
def sample_variance(values):
    if type(values) not in (list, tuple) or not 2 <= len(values) <= 10000:
        raise ValueError("sample count")
    if any(type(x) not in (int, float) or not -1e150 <= x <= 1e150
           or not isfinite(x) for x in values):
        raise ValueError("bounded finite samples")
    mean, m2 = 0.0, 0.0
    for n, x in enumerate(values, 1):
        delta = x - mean
        mean += delta / n
        m2 += delta * (x - mean)
    return m2 / (len(values) - 1)

Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.

Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗