From e8d77920f89b88a0bf36d72cc25d7fc4bbc6fb3b Mon Sep 17 00:00:00 2001 From: TerekhovFV Date: Fri, 24 Oct 2025 11:35:06 +0300 Subject: [PATCH] =?UTF-8?q?=D0=93=D0=BE=D1=82=D0=BE=D0=B2=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TEMA4/report.md | 176 ++++++++++++++++++++++++++++++++++++++++++++++++ TEMA4/task.md | 87 ++++++++++++++++++++++++ TEMA4/task7.py | 22 ++++++ TEMA4/taskO.py | 43 ++++++++++++ 4 files changed, 328 insertions(+) create mode 100644 TEMA4/task.md create mode 100644 TEMA4/task7.py create mode 100644 TEMA4/taskO.py diff --git a/TEMA4/report.md b/TEMA4/report.md index 37a83b3..9a252b2 100644 --- a/TEMA4/report.md +++ b/TEMA4/report.md @@ -1279,3 +1279,179 @@ pylab.show() ![Task6.5](images/task6.5.png) + +## 7. Модуль statistics. + +***Импорт модуля.*** + +```python +import statistics +print(dir(statistics)) +``` + +Ответ программы: + +```shell +['Counter', 'Decimal', 'Fraction', 'LinearRegression', 'NormalDist', 'StatisticsError', '_SQRT2', '__all__', '__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_coerce', '_convert', '_decimal_sqrt_of_frac', '_exact_ratio', '_fail_neg', '_float_sqrt_of_frac', '_integer_sqrt_of_frac_rto', '_isfinite', '_mean_stdev', '_normal_dist_inv_cdf', '_sqrt_bit_width', '_ss', '_sum', 'bisect_left', 'bisect_right', 'correlation', 'covariance', 'defaultdict', 'erf', 'exp', 'fabs', 'fmean', 'fsum', 'geometric_mean', 'groupby', 'harmonic_mean', 'hypot', 'linear_regression', 'log', 'math', 'mean', 'median', 'median_grouped', 'median_high', 'median_low', 'mode', 'mul', 'multimode', 'namedtuple', 'numbers', 'pstdev', 'pvariance', 'quantiles', 'random', 'reduce', 'repeat', 'sqrt', 'stdev', 'sys', 'tau', 'variance'] +``` + +### 7.1. Среднее арифметическое - statistics.mean(). + +```python +import statistics + +grades = [85, 90, 78, 92, 88, 76, 95, 85, 80, 82, 91, 85] + +print("Список оценок:", grades) +print("Количество студентов:", len(grades)) +print() + +average_grade = statistics.mean(grades) +print(f"1. Средний балл (mean): {average_grade:.2f}") +``` + +Ответ программы: + +```shell +Список оценок: [85, 90, 78, 92, 88, 76, 95, 85, 80, 82, 91, 85] +Количество студентов: 12 + +1. Средний балл (mean): 85.58 +``` + +### 7.2. Медиана - statistics.median(). + +```python +import statistics + +grades = [85, 90, 78, 92, 88, 76, 95, 85, 80, 82, 91, 85] + +print("Список оценок:", grades) +print("Количество студентов:", len(grades)) +print() + +average_grade = statistics.mean(grades) +print(f"1. Средний балл (mean): {average_grade:.2f}") + +median_grade = statistics.median(grades) +print(f"2. Медианный балл (median): {median_grade}") +``` + +Ответ программы: + +```shell +Список оценок: [85, 90, 78, 92, 88, 76, 95, 85, 80, 82, 91, 85] +Количество студентов: 12 + +1. Средний балл (mean): 85.58 +2. Медианный балл (median): 85.0 +``` + +### 7.3. Мода - statistics.mode(). + +```python +import statistics + +grades = [85, 90, 78, 92, 88, 76, 95, 85, 80, 82, 91, 85] + +print("Список оценок:", grades) +print("Количество студентов:", len(grades)) +print() + +average_grade = statistics.mean(grades) +print(f"1. Средний балл (mean): {average_grade:.2f}") + +median_grade = statistics.median(grades) +print(f"2. Медианный балл (median): {median_grade}") + +mode_grade = statistics.mode(grades) +print(f"3. Наиболее частый балл (mode): {mode_grade}") +``` + +Ответ программы: + +```shell +Список оценок: [85, 90, 78, 92, 88, 76, 95, 85, 80, 82, 91, 85] +Количество студентов: 12 + +1. Средний балл (mean): 85.58 +2. Медианный балл (median): 85.0 +3. Наиболее частый балл (mode): 85 +``` + +### 7.4. Стандартное отклонение - statistics.stdev(). + +```python +import statistics + +grades = [85, 90, 78, 92, 88, 76, 95, 85, 80, 82, 91, 85] + +print("Список оценок:", grades) +print("Количество студентов:", len(grades)) +print() + +average_grade = statistics.mean(grades) +print(f"1. Средний балл (mean): {average_grade:.2f}") + +median_grade = statistics.median(grades) +print(f"2. Медианный балл (median): {median_grade}") + +mode_grade = statistics.mode(grades) +print(f"3. Наиболее частый балл (mode): {mode_grade}") + +stdev_grades = statistics.stdev(grades) +print(f"4. Стандартное отклонение (stdev): {stdev_grades:.2f}") +``` + +Ответ программы: + +```shell +Список оценок: [85, 90, 78, 92, 88, 76, 95, 85, 80, 82, 91, 85] +Количество студентов: 12 + +1. Средний балл (mean): 85.58 +2. Медианный балл (median): 85.0 +3. Наиболее частый балл (mode): 85 +4. Стандартное отклонение (stdev): 5.87 +``` + +### 7.5. Дисперсия - statistics.variance(). + +```python +import statistics + +grades = [85, 90, 78, 92, 88, 76, 95, 85, 80, 82, 91, 85] + +print("Список оценок:", grades) +print("Количество студентов:", len(grades)) +print() + +average_grade = statistics.mean(grades) +print(f"1. Средний балл (mean): {average_grade:.2f}") + +median_grade = statistics.median(grades) +print(f"2. Медианный балл (median): {median_grade}") + +mode_grade = statistics.mode(grades) +print(f"3. Наиболее частый балл (mode): {mode_grade}") + +stdev_grades = statistics.stdev(grades) +print(f"4. Стандартное отклонение (stdev): {stdev_grades:.2f}") + +variance_grades = statistics.variance(grades) +print(f"5. Дисперсия (variance): {variance_grades:.2f}") +``` + +Ответ программы: + +```shell +Список оценок: [85, 90, 78, 92, 88, 76, 95, 85, 80, 82, 91, 85] +Количество студентов: 12 + +1. Средний балл (mean): 85.58 +2. Медианный балл (median): 85.0 +3. Наиболее частый балл (mode): 85 +4. Стандартное отклонение (stdev): 5.87 +5. Дисперсия (variance): 34.45 +``` + diff --git a/TEMA4/task.md b/TEMA4/task.md new file mode 100644 index 0000000..ce9276e --- /dev/null +++ b/TEMA4/task.md @@ -0,0 +1,87 @@ +# Общее контрольное задание. + +* Напишите и исполните единое выражение, реализующее последовательное выполнение следующих операций: вычисление фазы комплексного числа 0.2+0.8j, округление результата до двух знаков после запятой, умножение полученного значения на 20, получение кортежа из двух значений: округленное вниз значение от деления результата на 3 и остатка от этого деления. + +* Создайте объект класса struct_time с временными параметрами для текущего московского времени. Создайте строку с текущим часом и минутами. + +* Создайте список с элементами – названиями дней недели. Сделайте случайную выборку из этого списка с тремя днями недели. + +* Напишите инструкцию случайного выбора числа из последовательности целых чисел от 14 до 32 с шагом 3. + +* Сгенерируйте нормально распределенное число N с математическим ожиданием 15 и стандартным отклонением 4 и округлите его до целого значения. Создайте список с N элементами – случайно выбранными буквами латинского алфавита. + +* Напишите инструкцию для определения временного интервала в минутах, прошедшего с момента предыдущего (из п.2) определения временных параметров. + +## Решение: + +```python +import math +import time +import random +import cmath + +print("1. Вычисление фазы комплексного числа и последующие операции:") +result = math.floor((round(cmath.phase(0.2+0.8j), 2) * 20) / 3), (round(cmath.phase(0.2+0.8j), 2) * 20) % 3 +print(f"Результат: {result}") +print() + +print("2. Создание объекта struct_time для московского времени:") +moscow_time = time.localtime() +print(f"Московское время: {moscow_time}") +time_str = time.asctime(moscow_time) +print(f"Строка с часом и минутами: '{time_str}'") +print() + +print("3. Случайная выборка дней недели:") +week_days = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'] +random_days = random.sample(week_days, 3) +print(f"Дни недели: {week_days}") +print(f"Случайная выборка: {random_days}") +print() + +print("4. Случайный выбор числа из последовательности:") +sequence = list(range(14, 33, 3)) +random_number = random.choice(sequence) +print(f"Последовательность: {sequence}") +print(f"Случайно выбранное число: {random_number}") +print() + +print("5. Генерация нормально распределенного числа и создание списка букв:") +N = round(random.gauss(15, 4)) +# Создаем список букв латинского алфавита +alphabet = [chr(i) for i in range(65, 91)] # A-Z +random_letters = random.choices(alphabet, k=N) +print(f"N = {N}") +print(f"Случайные буквы: {random_letters}") +print() + +print("6. Определение временного интервала в минутах:") +time_diff = (time.time() - time.mktime(moscow_time))/ 60 +print(f"Прошло минут: {time_diff:.2f}") +``` + +Ответ программы: + +```shell +1. Вычисление фазы комплексного числа и последующие операции: +Результат: (8, 2.6000000000000014) + +2. Создание объекта struct_time для московского времени: +Московское время: time.struct_time(tm_year=2025, tm_mon=10, tm_mday=24, tm_hour=11, tm_min=34, tm_sec=15, tm_wday=4, tm_yday=297, tm_isdst=0) +Строка с часом и минутами: 'Fri Oct 24 11:34:15 2025' + +3. Случайная выборка дней недели: +Дни недели: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'] +Случайная выборка: ['Вторник', 'Четверг', 'Пятница'] + +4. Случайный выбор числа из последовательности: +Последовательность: [14, 17, 20, 23, 26, 29, 32] +Случайно выбранное число: 17 + +5. Генерация нормально распределенного числа и создание списка букв: +N = 16 +Случайные буквы: ['F', 'H', 'H', 'D', 'B', 'U', 'A', 'E', 'V', 'F', 'H', 'L', 'L', 'X', 'A', 'I'] + +6. Определение временного интервала в минутах: +Прошло минут: 0.01 +``` \ No newline at end of file diff --git a/TEMA4/task7.py b/TEMA4/task7.py new file mode 100644 index 0000000..29612ed --- /dev/null +++ b/TEMA4/task7.py @@ -0,0 +1,22 @@ +import statistics + +grades = [85, 90, 78, 92, 88, 76, 95, 85, 80, 82, 91, 85] + +print("Список оценок:", grades) +print("Количество студентов:", len(grades)) +print() + +average_grade = statistics.mean(grades) +print(f"1. Средний балл (mean): {average_grade:.2f}") + +median_grade = statistics.median(grades) +print(f"2. Медианный балл (median): {median_grade}") + +mode_grade = statistics.mode(grades) +print(f"3. Наиболее частый балл (mode): {mode_grade}") + +stdev_grades = statistics.stdev(grades) +print(f"4. Стандартное отклонение (stdev): {stdev_grades:.2f}") + +variance_grades = statistics.variance(grades) +print(f"5. Дисперсия (variance): {variance_grades:.2f}") \ No newline at end of file diff --git a/TEMA4/taskO.py b/TEMA4/taskO.py new file mode 100644 index 0000000..b230a6b --- /dev/null +++ b/TEMA4/taskO.py @@ -0,0 +1,43 @@ +import math +import time +import random +import cmath + +print("1. Вычисление фазы комплексного числа и последующие операции:") +result = math.floor((round(cmath.phase(0.2+0.8j), 2) * 20) / 3), (round(cmath.phase(0.2+0.8j), 2) * 20) % 3 +print(f"Результат: {result}") +print() + +print("2. Создание объекта struct_time для московского времени:") +moscow_time = time.localtime() +print(f"Московское время: {moscow_time}") +time_str = time.asctime(moscow_time) +print(f"Строка с часом и минутами: '{time_str}'") +print() + +print("3. Случайная выборка дней недели:") +week_days = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'] +random_days = random.sample(week_days, 3) +print(f"Дни недели: {week_days}") +print(f"Случайная выборка: {random_days}") +print() + +print("4. Случайный выбор числа из последовательности:") +sequence = list(range(14, 33, 3)) +random_number = random.choice(sequence) +print(f"Последовательность: {sequence}") +print(f"Случайно выбранное число: {random_number}") +print() + +print("5. Генерация нормально распределенного числа и создание списка букв:") +N = round(random.gauss(15, 4)) +# Создаем список букв латинского алфавита +alphabet = [chr(i) for i in range(65, 91)] # A-Z +random_letters = random.choices(alphabet, k=N) +print(f"N = {N}") +print(f"Случайные буквы: {random_letters}") +print() + +print("6. Определение временного интервала в минутах:") +time_diff = (time.time() - time.mktime(moscow_time))/ 60 +print(f"Прошло минут: {time_diff:.2f}") \ No newline at end of file