import matplotlib.pyplot as plt import math import statistics def func1(sps): variation_series = sorted(list(sps)) mean_val = statistics.mean(variation_series) median_val = statistics.median(variation_series) if len(variation_series) > 1: std_val = statistics.stdev(variation_series) else: std_val = 0 params = [mean_val, median_val, std_val] return variation_series, params def func2(sps, nint): data = list(sps) min_val = min(data) max_val = max(data) interval_width = (max_val - min_val) / nint bins = [min_val + i * interval_width for i in range(nint + 1)] hist = [] bin_edges = [] for i in range(nint): bin_start = bins[i] bin_end = bins[i + 1] if i == nint - 1: count = sum(1 for x in data if bin_start <= x <= bin_end) else: count = sum(1 for x in data if bin_start <= x < bin_end) hist.append(count) bin_edges.append((bin_start, bin_end)) plt.figure(figsize=(10, 6)) plt.hist(data, bins=nint, edgecolor='black', alpha=0.7) plt.title(f'Гистограмма выборки ({nint} интервалов)') plt.xlabel('Значения') plt.ylabel('Частота') plt.grid(True, alpha=0.3) plt.text(0.02, 0.98, f'Интервалов: {nint}', transform=plt.gca().transAxes, verticalalignment='top', bbox=dict(boxstyle='round', facecolor='wheat', alpha=0.5)) plt.show() histogram_result = [bin_edges, hist] return histogram_result