Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

отчет лаба 3 Дианов

.docx
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
70.05 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНСТВО ВОЗДУШНОГО ТРАНСПОРТА

(РОСАВИАЦИЯ)

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ГРАЖДАНСКОЙ АВИАЦИИ» (МГТУ ГА)

Кафедра вычислительных машин, комплексов, сетей и систем.

Лабораторная работа защищена с оценкой ____________________

____________________

(подпись преподавателя, дата)

ЛАБОРАТОРНАЯ РАБОТА №3

по дисциплине «Теория информации и кодирования».

Тема: «Расчет количества информации в подмножестве по Шеннону».

Выполнила студентка группы ИС3-1

Магальник Екатерина Борисовна

Руководитель: Дианов Сергей Вячеславович

МОСКВА – 2024

  1. Цель работы

Целью лабораторной работы является закрепление навыков по расчету количества информации в подмножестве по формуле Шеннона.

  1. Задание

Придумать самостоятельно множество, состоящее из подмножеств по Шеннону. Просчитать количество информации выбора 1 элемента из каждого подмножества. Достаточно 3 подмножества.

  1. Выполнение

Количество информации в подмножестве по Шеннону рассчитывается по формуле:

где:

  • p(xi) — вероятность выбора i-го элемента,

  • n — количество элементов в подмножестве.

Энтропия показывает, сколько бит информации содержится в выборе элемента из множества с заданным распределением вероятностей.

Пусть задано множество пирожных в кондитерском магазине.

Подмножества:

  • Эклеры 5 штук;

  • Картошка 7 штук;

  • Заварные пирожные 4 штуки;

  • Макаруны 10 штук;

  • Корзиночки 8 штук.

  1. Листинг программы

import math from prettytable import PrettyTable mytable = PrettyTable() mytable.field_names = ["Продукт", "Вероятность"] data = [0.04, 0.029, 0.05, 0.02, 0.025] mytable.add_row(["Эклеры", 0.04]) mytable.add_row(["Эклеры", 0.04]) mytable.add_row(["Эклеры", 0.04]) mytable.add_row(["Эклеры", 0.04]) mytable.add_row(["Эклеры", 0.04]) mytable.add_row(["Картошка", 0.029]) mytable.add_row(["Картошка", 0.029]) mytable.add_row(["Картошка", 0.029]) mytable.add_row(["Картошка", 0.029]) mytable.add_row(["Картошка", 0.029]) mytable.add_row(["Картошка", 0.029]) mytable.add_row(["Картошка", 0.029]) mytable.add_row(["Заварные пирожные", 0.05]) mytable.add_row(["Заварные пирожные", 0.05]) mytable.add_row(["Заварные пирожные", 0.05]) mytable.add_row(["Заварные пирожные", 0.05]) mytable.add_row(["Макаруны", 0.02]) mytable.add_row(["Макаруны", 0.02]) mytable.add_row(["Макаруны", 0.02]) mytable.add_row(["Макаруны", 0.02]) mytable.add_row(["Макаруны", 0.02]) mytable.add_row(["Макаруны", 0.02]) mytable.add_row(["Макаруны", 0.02]) mytable.add_row(["Макаруны", 0.02]) mytable.add_row(["Макаруны", 0.02]) mytable.add_row(["Макаруны", 0.02]) mytable.add_row(["Корзиночки", 0.025]) mytable.add_row(["Корзиночки", 0.025]) mytable.add_row(["Корзиночки", 0.025]) mytable.add_row(["Корзиночки", 0.025]) mytable.add_row(["Корзиночки", 0.025]) mytable.add_row(["Корзиночки", 0.025]) mytable.add_row(["Корзиночки", 0.025]) mytable.add_row(["Корзиночки", 0.025]) print(mytable) print("Количество информации в эклерах: ", -math.log(data[0], 2)) print("Количество информации в картошках: ", -math.log(data[1], 2)) print("Количество информации в заварных пирожных: ", -math.log(data[2], 2)) print("Количество информации в макарунах: ", -math.log(data[3], 2)) print("Количество информации в корзиночках: ", -math.log(data[4], 2))

  1. Результат работы программы

+-------------------+-------------+

| Продукт | Вероятность |

+-------------------+-------------+

| Эклеры | 0.04 |

| Эклеры | 0.04 |

| Эклеры | 0.04 |

| Эклеры | 0.04 |

| Эклеры | 0.04 |

| Картошка | 0.029 |

| Картошка | 0.029 |

| Картошка | 0.029 |

| Картошка | 0.029 |

| Картошка | 0.029 |

| Картошка | 0.029 |

| Картошка | 0.029 |

| Заварные пирожные | 0.05 |

| Заварные пирожные | 0.05 |

| Заварные пирожные | 0.05 |

| Заварные пирожные | 0.05 |

| Макаруны | 0.02 |

| Макаруны | 0.02 |

| Макаруны | 0.02 |

| Макаруны | 0.02 |

| Макаруны | 0.02 |

| Макаруны | 0.02 |

| Макаруны | 0.02 |

| Макаруны | 0.02 |

| Макаруны | 0.02 |

| Макаруны | 0.02 |

| Корзиночки | 0.025 |

| Корзиночки | 0.025 |

| Корзиночки | 0.025 |

| Корзиночки | 0.025 |

| Корзиночки | 0.025 |

| Корзиночки | 0.025 |

| Корзиночки | 0.025 |

| Корзиночки | 0.025 |

+-------------------+-------------+

Количество информации в эклерах: 4.643856189774724

Количество информации в картошках: 5.107803289534515

Количество информации в заварных пирожных: 4.321928094887363

Количество информации в макарунах: 5.643856189774724

Количество информации в корзиночках: 5.321928094887363

  1. Вывод

  • В ходе работы были рассчитаны значения энтропии по формуле Шеннона для заданного множества, состоящего из трёх подмножеств.

  • Увеличение числа элементов в подмножестве приводит к росту энтропии, так как выбор становится менее однозначным.

  • Подсчёт энтропии является полезным инструментом для количественной оценки неопределённости при выборе из множества.

  • Программа корректно реализует расчёт метрик и может быть использована для анализа множеств с различным количеством подмножеств и элементов.