# Общее контрольное задание Зеленкина Катерина, А-02-23 ## Задание 1. Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с за-держкой на заданное время Т. 2. Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: вы-борка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения. 3. Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y ли-нейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X. ## Решение ```py def signal_delay(current_input, delay_time, output_history, input_history): """ Расчет выходного сигнала устройства задержки current_input - текущее значение входного сигнала delay_time - время задержки output_history - история выходных значений input_history - история входных значений """ if len(input_history) < delay_time: return 0 else: return input_history[-delay_time] d = 4 output_signal = [] input_signal = [1, 2, 3, 4, 5, 6, 7] input_history = [] for x in input_signal: input_history.append(x) y = signal_delay(x, d, output_signal, input_history) output_signal.append(y) print("Входной сигнал:", input_signal) print("Выходной сигнал:", output_signal, "(задержка 4)") Входной сигнал: [1, 2, 3, 4, 5, 6, 7] Выходной сигнал: [0, 0, 0, 1, 2, 3, 4] (задержка 4) ``` ```py # Пункт 2 def raschet_giostogrammy(viborka, kol_int): """ Расчет гистограммы по выборке случайной величины Аргументы: viborka - список значений выборки kol_int - число интервалов разбиения Возвращает: w - список с числами элементов в интервалах """ minn = min(viborka) maxx = max(viborka) shirina = (maxx - minn) / kol_int # Исправлена ошибка в формуле w = [0] * kol_int for znachenie in viborka: num_int = int((znachenie - minn) / shirina) # Исправлено: от minn if num_int == kol_int: num_int = kol_int - 1 w[num_int] += 1 # Вывод таблицы print("Гистограмма:") print("Интервал\t\tКоличество") for i in range(kol_int): start = minn + i * shirina end = minn + (i + 1) * shirina print(f"{start:.2f} - {end:.2f}\t\t{w[i]}") return w # Проверка функции import random viborka = [random.gauss(0, 1) for _ in range(100)] kol_interv = 5 resultat = raschet_giostogrammy(viborka, kol_interv) Гистограмма: Интервал Количество -2.11 - -1.31 13 -1.31 - -0.52 12 -0.52 - 0.28 30 0.28 - 1.07 34 1.07 - 1.86 11 ``` ```py anonim_func = lambda b1, b2, X: b1 + b2 * X print(anonim_func (1, 2, 3)) 7 ```