# Общее контрольное задание по теме 7 Степанов Артём, А-02-23 ## Задание * Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т. * Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения. * Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х Y=b1+b2*X и имеющую аргументы b1, b2 и X. ## Решение ```py >>> #1 >>> >>> def createDelay(x, T): ... """Функция для реализации задержки сигнала в определенный момент времени ... x - исходный сигнал ... T - заданная задержка""" ... return [0] * T + x ... >>> x = [1, 2, 3, 4, 5] >>> y = createDelay(x, 5) >>> print(y) [0, 0, 0, 0, 0, 1, 2, 3, 4, 5] >>> >>> #2 >>> >>> def createHistogram(x, bins): ... lowerBound = min(x) ... upperBound = max(x) ... binWidth = (upperBound - lowerBound) / bins ... binsElements = [] ... for i in range(bins): ... lower = lowerBound + i * binWidth ... upper = upperBound if i == bins - 1 else lowerBound + (i + 1) * binWidth ... binsElements.append(len(list(filter(lambda elem: lower <= elem and elem < upper, x)))) ... if i == bins - 1: binsElements[i] += x.count(upper) ... print(f"""Интервал: {i + 1} ... Нижняя граница: {lower} ... Верхняя граница: {upper} ... Число элементов: {binsElements[i]} ... """) ... return binsElements ... >>> import random >>> x = [random.gauss(5, 10) for i in range(100)] >>> elementsNum = createHistogram(x, 4) Интервал: 1 Нижняя граница: -22.9123782025076 Верхняя граница: -8.994907250763529 Число элементов: 7 Интервал: 2 Нижняя граница: -8.994907250763529 Верхняя граница: 4.922563700980543 Число элементов: 50 Интервал: 3 Нижняя граница: 4.922563700980543 Верхняя граница: 18.840034652724615 Число элементов: 39 Интервал: 4 Нижняя граница: 18.840034652724615 Верхняя граница: 32.75750560446868 Число элементов: 4 >>> print(elementsNum) [7, 50, 39, 4] >>> >>> #3 >>> >>> regression = lambda X, b1, b2: b1 + b2 * X >>> regression(3, 7, 1) 10 ```