форкнуто от main/python-labs
Родитель
a37ffcf5b5
Сommit
2325326902
@ -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
|
||||
|
||||
```
|
||||
Загрузка…
Ссылка в новой задаче