Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

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)