import math import random import pickle print("\n1. Ввод имени функции") func_name = input("Введите имя функции из библиотеки math: ") func = eval(f"math.{func_name}") print("\n2. Создание кортежа случайных чисел") temp_list = [] for i in range(20): number = random.randint(11, 40) temp_list.append(number) numbers_tuple = tuple(temp_list) print("Сгенерированный кортеж:") print(numbers_tuple) print("\n3. Применение функции к элементам кортежа") result_list = [] for value in numbers_tuple: result = func(value) result_list.append(result) print("\n4. Запись в бинарный файл") filename = "M2_11.bin" print(f"Имя файла: {filename}") file = open(filename, 'wb') pickle.dump(numbers_tuple, file) pickle.dump(result_list, file) file.close() print("Данные успешно записаны в файл") print("\nПроверка записи (чтение из файла):") file = open(filename, 'rb') read_tuple = pickle.load(file) read_list = pickle.load(file) file.close() print(f"Прочитанный кортеж (первые 5 элементов): {read_tuple[:5]}") print(f"Прочитанный список (первые 5 элементов): {[round(x, 3) for x in read_list[:5]]}") # 5. Расчет среднего значения разностей элементов на соседних четных и нечетных позициях print("\n5. Расчет среднего значения разностей") differences = [] i = 0 while i < len(result_list) - 1: diff = result_list[i] - result_list[i+1] differences.append(diff) i = i + 2 print(f"Найдено {len(differences)} разностей") if len(differences) > 0: sum_diff = 0 for d in differences: sum_diff = sum_diff + d average_diff = sum_diff / len(differences) print("\nРазности между соседними четными и нечетными позициями:") for j in range(len(differences)): d_1 = j * 2 print(f" {result_list[d_1]:.3f} - {result_list[d_1+1]:.3f} = {differences[j]:.3f}") print(f"\nСреднее значение разностей: {average_diff:.6f}") else: print("Недостаточно элементов для вычисления разностей")