# Пример запуска import M0 import M1 import M2 if __name__ == "__main__": print("=== M3_27: Анализ выборки с группировкой ===") создать_тестовые_файлы() print("Созданы тестовые файлы: выборка1_M3_27.bin и выборка2_M3_27.bin") # Тестовый пример тест_выборка = [1, 5, 3, 8, 2, 7, 4, 6] min_idx, max_idx = функция1(тест_выборка) средние = функция2(тест_выборка, 3) print(f"Тестовая выборка: {тест_выборка}") print(f"Min индекс: {min_idx}, Max индекс: {max_idx}") print(f"Средние по группам: {средние}") M0()# Модуль для создания тестовых данных import pickle import random import numpy as np def создать_тестовые_файлы(): """ Создает два бинарных файла с тестовыми выборками для проверки программы """ # Первый файл - нормальное распределение print("Создание первого тестового файла...") данные1 = [random.gauss(50, 15) for _ in range(30)] # 30 элементов, μ=50, σ=15 with open('выборка1_M3_27.bin', 'wb') as f: pickle.dump(данные1, f) print(f"Файл 'выборка1_M3_27.bin' создан. Элементов: {len(данные1)}") print(f"Диапазон значений: {min(данные1):.2f} - {max(данные1):.2f}") # Второй файл - равномерное распределение print("\nСоздание второго тестового файла...") данные2 = [random.uniform(-10, 10) for _ in range(25)] # 25 элементов, от -10 до 10 with open('выборка2_M3_27.bin', 'wb') as f: pickle.dump(данные2, f) print(f"Файл 'выборка2_M3_27.bin' создан. Элементов: {len(данные2)}") print(f"Диапазон значений: {min(данные2):.2f} - {max(данные2):.2f}") # Третий файл - с явными min/max для демонстрации print("\nСоздание демонстрационного файла...") данные3 = [2, 8, 3, 1, 9, 4, 7, 5, 6] # Явные min=1, max=9 with open('демо_выборка_M3_27.bin', 'wb') as f: pickle.dump(данные3, f) print(f"Файл 'демо_выборка_M3_27.bin' создан. Элементов: {len(данные3)}") print(f"Значения: {данные3}") print(f"Min: {min(данные3)} (индекс {данные3.index(min(данные3))})") print(f"Max: {max(данные3)} (индекс {данные3.index(max(данные3))})") print("\n" + "=" * 50) print("ТЕСТОВЫЕ ФАЙЛЫ СОЗДАНЫ:") print("1. выборка1_M3_27.bin - 30 элементов (нормальное распределение)") print("2. выборка2_M3_27.bin - 25 элементов (равномерное распределение)") print("3. демо_выборка_M3_27.bin - 9 элементов (демонстрационный)") print("=" * 50) def показать_содержимое_файлов(): """ Показывает содержимое созданных тестовых файлов """ файлы = ['выборка1_M3_27.bin', 'выборка2_M3_27.bin', 'демо_выборка_M3_27.bin'] for имя_файла in файлы: try: with open(имя_файла, 'rb') as f: данные = pickle.load(f) print(f"\n{имя_файла}:") print(f" Элементов: {len(данные)}") print(f" Min: {min(данные):.3f}, Max: {max(данные):.3f}") print(f" Первые 5 элементов: {[f'{x:.3f}' for x in данные[:5]]}") except FileNotFoundError: print(f"\nФайл {имя_файла} не найден. Сначала создайте тестовые данные.") if __name__ == "__main__": print("СОЗДАНИЕ ТЕСТОВЫХ ДАННЫХ ДЛЯ M3_27") print("=" * 40) создать_тестовые_файлы() print("\nСОДЕРЖИМОЕ СОЗДАННЫХ ФАЙЛОВ:") показать_содержимое_файлов() print("\nИнструкция по запуску:") print("1. Запустите M0.py для выполнения основной программы") print("2. При запросе введите имя одного из созданных файлов") print("3. Рекомендуется начать с 'демо_выборка_M3_27.bin' для демонстрации")