форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
38 строки
769 B
Python
38 строки
769 B
Python
|
|
import math as m
|
|
|
|
def f1(d):
|
|
"Функция 1: среднее, дисперсия, откл, медиана"
|
|
if not d:
|
|
return 0, 0, 0, 0
|
|
|
|
n = len(d)
|
|
mx = sum(d) / n
|
|
|
|
v = sum((x - mx) ** 2 for x in d) / (n - 1) if n > 1 else 0
|
|
sx = m.sqrt(v) if v > 0 else 0
|
|
|
|
sd = sorted(d)
|
|
if n % 2 == 1:
|
|
med = sd[n // 2]
|
|
else:
|
|
med = (sd[n // 2 - 1] + sd[n // 2]) / 2
|
|
|
|
return mx, v, sx, med
|
|
|
|
def f2(d):
|
|
"""Функция 2: коэффициент асимметрии"""
|
|
if not d:
|
|
return 0
|
|
|
|
mx, _, sx, _ = f1(d)
|
|
|
|
if sx == 0:
|
|
return 0
|
|
|
|
n = len(d)
|
|
sc = sum((x - mx) ** 3 for x in d)
|
|
ma = sc / ((n - 1) * (sx ** 3)) if n > 1 else 0
|
|
|
|
return ma
|