From b50869f571255c2a05c103c8b3120a1e7c475d69 Mon Sep 17 00:00:00 2001 From: Dmitry Kolomeytsev Date: Sat, 29 Nov 2025 21:59:02 +0300 Subject: [PATCH] task done --- TEMA7/task.md | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/TEMA7/task.md b/TEMA7/task.md index fe09f9d..c385851 100644 --- a/TEMA7/task.md +++ b/TEMA7/task.md @@ -4,4 +4,69 @@ ## Задание -## Решение \ No newline at end of file +* Разработайте и проверьте функцию, реализующую для момента времени 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 +``` \ No newline at end of file