МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГАОУ ВО «Крымский федеральный университет имени В. И. Вернадского» Физико-технический институт Кафедра компьютерной инженерии и моделирования Лабораторная работа № 1 по курсу «Теория информации и кодирования» на тему: «Количество информации и неопределенность сообщения» Выполнил: студент 3 курса группы ПИ-203(1) Прокопович Сергей Валерьевич Симферополь, 2022 «Количество информации и неопределенность сообщения». На вход информационного устройства подается совокупность сообщений {xk}, k=1N. Вероятности сообщений задаются в виде счетчика случайных чисел. Определить среднее количество информации в совокупности сообщений {xk} и максимальную энтропию сообщений. № 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 1 0 1 2 1 4 1 6 1 8 2 0 2 2 2 4 2 6 2 8 3 0 3 2 3 4 3 6 3 8 4 0 4 2 4 4 4 6 4 8 № 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 5 0 5 2 5 4 5 6 5 8 6 0 6 2 6 4 6 6 6 8 7 0 7 2 7 4 7 6 7 8 8 0 8 2 8 4 8 6 8 8 N N Вероятности сообщений на входе должны удовлетворять свойству: N px 1 i i 1 Среднее количество информации в совокупности сообщений: N I X pxi log 2 i 1 N 1 pxi log 2 pxi , pxi i 1 Максимальная энтропия сообщений: N H X max i 1 1 1 log 2 log 2 N . N N Рис. 1 – Интерфейс программы В Label “Ответ” Выводится энтропия. По нажатию на кнопку “Найти энтропию” производятся все вычисления { var rand = new Random(); int i = 1; double b = 1; double otvet = 0; double[] numbers = new double[26]; for(i=1; i<=26; i++) { double a = rand.NextDouble() * b; // Присваивание случайных значений b = 1 - a; // Корректировка вероятности, чтобы не вышла за значение 1. double ent = a * Math.Log(a, 2); // Основное уравнение нахождения энтропии otvet += ent; } Рис. 2 – Результат Вычислений Результат вычислений зависит от случайных значений вероятностей. Энтропия будет колебаться от 7 до 13 бит. Вывод: в ходе лабораторной работы я выяснил, что энтропия зависит от разностей вероятностей. Если все вероятности равны, то энтропия будет максимальна и наоборот, если одна вероятность является максимальной, а другие минимальны, то энтропия будет стремится к минимуму. namespace Teor_i_kod_1 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { var rand = new Random(); int i = 1; double b = 1; double otvet = 0; double[] numbers = new double[26]; for(i=1; i<=26; i++) { double a = rand.NextDouble() * b; //numbers[i] = a; b = 1 - a; double ent = a * Math.Log(a, 2); otvet += ent; } L1.Content = - otvet + " Бит" ; } } }