# Общее контрольное задание по теме 7 Коломейцев Дмитрий, А-02-23 ## Задание * Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т. * Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения. * Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X. ## Решение ```py >>> #1 >>> >>> def create_delay(x, t): ... """Функция для реализации задержки сигнала ... x - исходный сигнал ... t - заданная задержка""" ... return [0] * t + x ... >>> x = [1, 2, 3, 4, 5] >>> y = create_delay(x, 5) >>> print(y) [0, 0, 0, 0, 0, 1, 2, 3, 4, 5] >>> >>> #2 >>> >>> def create_histogram(x, bins): ... minimum = min(x) ... maximum = max(x) ... step = (maximum - minimum) / bins ... counts = [] ... for i in range(bins): ... left = minimum + i * step ... right = minimum + (i + 1) * step ... amount = len([g for g in x if left <= g < right]) # количество элементов в диапазоне от левой до правой границы ... if i == bins - 1: ... amount += x.count(right) ... counts.append(amount) ... print(f"""Интервал: {i + 1} ... Нижняя граница: {left} ... Верхняя граница: {right} ... Число элементов: {amount} ... """) ... return counts ... >>> import random >>> data = [random.gauss(10, 3) for _ in range(50)] result = simple_histogram(data, 5) ... ... Интервал 1: 2.916449318775017 - 5.538945966727603, элементов: 3 ... Интервал 2: 5.538945966727603 - 8.161442614680189, элементов: 7 ... Интервал 3: 8.161442614680189 - 10.783939262632774, элементов: 20 ... Интервал 4: 10.783939262632774 - 13.40643591058536, элементов: 13 ... Интервал 5: 13.40643591058536 - 16.028932558537946, элементов: 7 >>> print(result) ... [3, 7, 20, 13, 7] >>> #3 >>> >>> regression = lambda x, b1, b2: b1 + b2 * x >>> regression(3, 7, 1) 10 ```