2.5 KiB
Индивидуальное контрольное задание по теме 8
Капитонов Михаил, А-02-23
Задание
По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
Функция: Разработайте функцию с 3 аргументами: N, V, W, создающую кортеж с заданным числом N элементов - результатов вычисления функции sin(X)/X, где Х – случайное, нормально распределенное число с математическим ожиданием V и стандартным отклонением W. Значение sin(X)/X должно вычисляться с помощью анонимной функции. Результат основной функции – созданный кортеж. Проверить эту функцию на примере.
Решение
#Модуль 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)