diff --git a/TEMA7/task.md b/TEMA7/task.md new file mode 100644 index 0000000..436abd6 --- /dev/null +++ b/TEMA7/task.md @@ -0,0 +1,88 @@ +# Общее контрольное задание по теме 7 + +Криштул Александр, А-03-23 + +## Задание + +Разработайть и проверить функции, реализующие: + +## Решение + +* Разработайте и проверьте функцию, реализующую для момента времени t расчет выхода y(t) для устройства задержки: на вход поступает сигнал, а на выходе повторяется этот сигнал с задержкой на заданное время Т. + +```py + +>>> 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] +>>> + +``` + +* Разработайте и проверьте функцию, реализующую расчет гистограммы по выборке случайной величины с каким-то распределением. Гистограмма при выводе на экран представляется в виде таблицы: границы интервала, число элементов выборки в интервале. Аргументы функции: выборка, число интервалов разбиения диапазона изменения случайной величины. Возвращаемый результат функции: список с числами элементов выборки в интервалах разбиения. + +```py + +>>> 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] + +``` + +* Разработайте и проверьте анонимную функцию, вычисляющую значение оценки отклика Y линейной регрессии при значении переменной Х +Y=b1+b2*X +и имеющую аргументы b1, b2 и X. + +```py + +>>> regression = lambda X, b1, b2: b1 + b2 * X +>>> regression(3, 7, 1) + 10 + +``` \ No newline at end of file