форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
50 строки
2.5 KiB
Markdown
50 строки
2.5 KiB
Markdown
# Индивидуальное контрольное задание по теме 8
|
|
|
|
Капитонов Михаил, А-02-23
|
|
|
|
## Задание
|
|
По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
|
|
|
|
Функция:
|
|
Разработайте функцию с 3 аргументами: N, V, W, создающую кортеж с заданным числом N элементов - результатов вычисления функции sin(X)/X, где Х – случайное, нормально распределенное число с математическим ожиданием V и стандартным отклонением W. Значение sin(X)/X должно вычисляться с помощью анонимной функции. Результат основной функции – созданный кортеж. Проверить эту функцию на примере.
|
|
|
|
## Решение
|
|
|
|
```py
|
|
#Модуль 1
|
|
import random
|
|
import math
|
|
def create_tuple(N, V, W):
|
|
sin_func = lambda x: math.sin(x)/x if x != 0 else 1
|
|
results = []
|
|
for i in range(N):
|
|
x = random.gauss(V, W)
|
|
result = sin_func(x)
|
|
results.append(round(result, 6))
|
|
return tuple(results)
|
|
|
|
#Модуль 2
|
|
import Mod1
|
|
print('Тестируем функцию create_tuple...\n')
|
|
test_cases = [
|
|
(5, 0, 1),
|
|
(3, 2, 0.5),
|
|
(4, -1, 0.2),
|
|
]
|
|
for i, (N, V, W) in enumerate(test_cases, 1):
|
|
result = Mod1.create_tuple(N, V, W)
|
|
print(f"Тест {i}: N={N}, V={V}, W={W}")
|
|
print(f"Результат: {result}\n")
|
|
|
|
Тестируем функцию create_tuple... #Запустил модуль 2
|
|
|
|
Тест 1: N=5, V=0, W=1
|
|
Результат: (0.994858, 0.249104, 0.91095, 0.98991, 0.949274)
|
|
|
|
Тест 2: N=3, V=2, W=0.5
|
|
Результат: (0.557395, 0.425528, 0.456684)
|
|
|
|
Тест 3: N=4, V=-1, W=0.2
|
|
Результат: (0.771282, 0.927371, 0.854999, 0.878237)
|
|
|
|
``` |