19
Курс «Информатика» тема № 1 «Теория информации и структуры данных» заведующий кафедрой доктор физико-математических наук Роман Вячеславович Шамин shamin.ru, lector.ru, calcs.ru МИРЭА – Российский технологический университет кафедра информатики Института комплексной безопасности и специального приборостроения Москва, 2019 г. Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Курс «Информатика»

тема № 1

«Теория информации и структуры данных»

заведующий кафедрой доктор физико-математических наук

Роман Вячеславович Шамин

shamin.ru, lector.ru, calcs.ru

МИРЭА – Российский технологический университеткафедра информатики Института комплексной безопасности и специального приборостроения

Москва, 2019 г.

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Page 2: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Что такое информатика?

Информатика – это наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информациис применением компьютерных технологий, обеспечивающих возможность ее использования для принятия решений.

Большая российская энциклопедия, 2008.

Основным объектом информатики является понятие информации.«Информация – это сведения, независимо от формы их представления, воспринимаемые человеком илиспециальными устройствами как отражение фактов материального мира в процессе коммуникации». ГОСТ 7.0-99.

Свойства информации:▪ полезность▪ актуальность▪ достоверность▪ объективность▪ полнота▪ понятность

Носители информации:информация разделяется нааналоговую и цифровую. Приэтом информатика относитсяв основном к цифровойинформации, с которойработают компьютеры.

В XXI веке информация играет самуюглавную роль в нашей цивилизации иимеет самое большое значение дляразвития Человечества.«Кто владеет информацией, тот владеетмиром.» Натан Ротшильд, 1815 г. после битвы

при Ватерлоо.

Информатика в нашей жизни:телекоммуникация, математическоемоделирование, компьютерная графика,электронные банки данных, шифрование,машинное обучение и искусственныйинтеллект, цифровая экономика…

Запомните:Для успеха в жизни Вам не обойтись безинформационных технологий, поэтому кем быВы не хотели стать – учите программирование,изучайте методы машинного обучения, незабывайте о математике.

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Page 3: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Теория информации: единицы измерения

Мы будем изучать только цифровую информацию, поэтому важнейшим понятиемявляется единица измерения информации – бит. Бит – это минимальная единицаизмерения информации. Бит может принимать только два значения 0 или 1. Этосоответствует каком-либо физическому устройству, которое может быть только в двухположениях «0» или «1». Такие устройства легко конструируются.

Бит можно рассматривать как два варианта какого-либовысказывания, которое может быть истинным илиложным, хотя можно себе представить и вопрос, накоторый можно ответить «да», «нет» или «не знаю».Такая логика называется троичной логикой.

Бит – двоичное число. Игра слов: binary digit, англ. bit – это кусочек, частица.

С помощью битов формируются сообщения, при этом биты являются дискретными.

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Page 4: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Теория информации: единицы измерения

В современных компьютерахиспользуют следующие единицыизмерения:1 Б (байт) = 8 бит1 Кбайт (килобайт) = 1024 Б1 Мбайт (мегабайт) = 1024 Кбайт1 Гбайт (гигабайт) = 1024 Мбайт1 Тбайт (терабайт) = 1024 Гбайт

Задача:Сколько битов в 3 Мбайт?Решение:3 Мбайт = 3 * 1024 Кбайт = 3* 1024 * 1024 Б == 3* 1024 * 1024 * 8 бит = 25165824 бит

Цифровое сообщение – это упорядоченныйконечный набор битов. Длиной сообщения мыбудем называть количество бит, которое содержитданное сообщение и писать |S| = N, если сообщениеS = (s1, s2, …, sN).Сколько разных сообщений длины N? Ответ: 2N

различных сообщений.

N = 1: количество = 2; N = 2: количество = 2 * (количество дляN-1) = 4; …;количество для N = 2 * (количество N-1) = 2*2*…*2 = 2N.

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Page 5: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Теория информации

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Рассмотрим задачу: какое минимальноеколичество бит нужно для описания всех Kсостояний системы?Для этого нужно найти такое минимальное N,которое будет удовлетворять уравнению K = 2N.Логарифмируя по основанию 2, получаем N =log2K. Если в этой формуле N не будет четной, тоего нужно округлить (вверх!) до целого.

Формула N = log2K, где K –количество возможных состояний, аN – минимальное количествоинформации в битах, необходимоедля описания состояний системыназывается формулой Хартли. Пример:

Сколько нужно бит, чтобы описать состояниясистемы из 5 состояний? Нужно:

log25 = 2,322 => N = 3 бита.Заметим, что тремя битами можно описать исистемы и из 6, 7 и 8 состояний, но не из 9состояний. Почему? Потому что log29 = 3,17 > 3.

Буквы русского языка (без различия порегистру) можно описать 5-ю битами,если не различать Е и Ё, а еслиразличать, то 6-ю битами с избытком:

log232= 5; log233 = 5,044.

Page 6: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Теория информации: энтропия

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Пусть теперь система может находиться в одном из K состояний с разнымивероятностями. В состоянии 1 с вероятностью p1, в состоянии 2 с вероятностью p2 и т.д. всостоянии K с вероятностью pK, где pk ≥ 0. Тогда ценность знания, что система находится всостоянии pk зависит от распределения вероятностей.

Фундаментальное понятие теории информации – энтропияинформации. Под энтропией понимается мера неопределенностисистемы. Общей энтропией по Шеннону называется число H, ачастной для каждого состояния – число pilog2pi.

Прирост информации – это уменьшение энтропии.

H = – ∑ pilog2pi

сумма по всем состояниям

Если двоечник не поступил в РТУ МИРЭА, то тут мало информации,потому что «мы это и так знали», а вот если он поступил, то это«новость»!Полагая, что двоечник не поступает с вероятностью 0,9, а поступает свероятностью 0,1 то, общая энтропия равна: H = 0.469.А частная энтропия для не поступления равна: -0,9 * log20,9 = 0.137,а для поступления равна: -0,1 * log20,1 = 0,332.

Page 7: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Системы счисления

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Использование битов в качестве алфавита {0, 1} наводит на мысль, что компьютерамлучше использовать двоичную систему счисления.

Натуральное число в десятичной системесчисления представимо в виде:x = aN…a2a1a0, где каждое an – это цифра0..9. При этом число равно

x = a0100 + a1101 + … + aN10N.

В двоичной системе счисления число имеетвид: x = aN…a2a1a0, где каждое an – это цифра0 или 1.При этом число равно

x = a020 + a121 + … + aN2N.

В k-ичной системе счисления число имеет вид: x = aN…a2a1a0, где каждое an – это цифра от0 до k-1. А число равно x = a0k0 + a1k1 + … + aNkN. Если k > 10, то в качестве цифриспользуются заглавные буквы латинского языка, например в шестнадцатеричнойсистеме счисления цифры: 0, 1, …, 9, A, B, C, D, E, F.

Если число x записано в k-ичной системе счисления, то пишут xk.Наиболее распространены в информатике кроме десятичнойсистемы счисления еще двоичная и шестнадцатеричная.

Page 8: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Системы счисления

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Как перевести число из одной системы счисления в другую?

Чтобы любое число в k-ичной системе исчисления перевести в десятичную системунужно воспользоваться формулой: x = a0k0 + a1k1 + … + aNkN.Чтобы число X из десятичной системы перевести в k-ичную, нужно:Разделить X на k: пусть X1 – это целая часть отношения, а a0 – остаток от деления. Если X1

не равно нулю, то делим X1 на k, обозначаем через X2 целую часть, через a1 – остаток.Повторяем эту процедуру до тех пор пока целая часть от деления не станет равной нулю.В результате X = aNa(N-1)…a1a0 – это представление числа X в k-ичной системе счисления.

17 в двоичную систему:17 / 2 = 8 ост. 1; 8 / 2 = 4 ост. 0;4 / 2 = 2 ост. 0; 2 / 2 = 1 ост. 0;1 / 2 = 0 ост. 11710 = 100012

Перевести 234 в шестнадцатеричную систему:234 / 16 = 14 ост. A; 14 / 16 = 0 ост. E;23410 = EA16.Заметим, что при записи остатка мы пишем его вшестнадцатеричной записи: 1010=A16, 1410=E16.

10102 = 1 * 23 + 0 * 22 + 1 * 21 + 0 * 20 = 1 * 8 + 0 * 4 + 1 * 2 + 0 * 1 = 1010.

Page 9: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Представление чисел в компьютере

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

В компьютере могут быть представлены числа только с конечным числом цифр послезапятой. В этом случае любое число может быть представлено в виде a,b, где a – этоцелое число, а b – целое положительное число. Например: -648,512, где a = -648, b = 512.

Более того, такое число может бытьпредставлено в виде a,b*10p, где a – целое, b –целое положительное, p – целое.Нормализованной называется запись, когда

1 ≤ |a| < 10.Например: -648,512 в нормализованной записи

-6,48512*102.

Число a,b в этой записи называетсямантиссой, а p – порядком.

Во многих языках программированияпишутa,b*10p = a.bEp, используя точку.Например: -6,48512*102 = -6,48512E2.

Следует иметь в виду, что вещественные числа часто представляются приближенно,поэтому всегда возможны ошибки машинного округления чисел.

Число ε > 0 называется машинным эпсилон, если a + ε = a, где равенство понимается каксравнение чисел на компьютере. Значение ε зависит от точности представления чисел.

Page 10: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Данные

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Основной задачей компьютера являетсяобработка данных. Под обработкой данныхпонимается как вычислительные процедуры, так ипроцедуры, преобразующие одни данные вдругие данные.

Данные – это форма представлениеинформации, доступная дляобработки.Формат представления данных – этопоследовательность бит (байт).

Физически данные хранятся в виде файлов или потоковданных на физических носителях информации.Поток данных – это абстракция для доступа к данным изфайлов, периферийных устройств и т.д.

Данные организованы в определенном формате, который определяется различнымиструктурами данных.

Строительным элементом данных является переменная.Переменная – это именованная область памяти определенноготипа. Тип переменной определяет и формат хранения данных.

Page 11: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Переменные

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Переменная – это понятие языка программирования. В языкахпрограммирования каждая переменная иметь уникальное имя,которое, как правило, содержит буквы, цифры и подчеркивания,при этом имя переменной не может начинаться с цифры.Большинство языков программирования различают большие ималые буквы.

Вот примеры именпеременных:Abc, ABC, _abc, a20,abc_20.

Неправильно: 20abc, _20.

Каждая переменная должна иметьопределенный тип данных. В некоторыхязыка программирования (C++, Java, C#)каждая переменная перед использованиемобъявляется и получает фиксированный типданных, который потом не может бытьизменен. Такие языки называются строготипизированными. В других языках (Python,PHP, JavaScript) тип данных не фиксирован именяется в зависимости от контекста.

Простейшие типы данных:▪ целочисленный (int)▪ вещественный (double, real, float)▪ строковый (string)▪ логический (bool, boolean)

Page 12: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Массивы

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

При программировании серьезных проектовнеобходимо работать не только с переменными, но и сосоставными структурами данных. Простейшейструктурой данных является массив.

Массив – структура данных,хранящая набор однотипныхпеременных, доступных поиндексу.

Как правило, массивы индексируются,начиная с нуля. Т.е. первый элементмассива имеет индекс = 0.Каждый массив имеет определенныйразмер (количество элементов). Размермассива определяется либо в моментобъявления или инициализации.

Массив – это тоже переменнаяс именем, например, A.Доступ к первому элементуA[0], а к последнему A[Count –1], если Count – это количествоэлементов в массиве.

Массивы могут быть многомерными, когда каждыйэлемент индексируется не одним индексом, анесколькими. Например, двумерный массив A[i, j], атрехмерный A[i, j, k], где i, j, k – это индексы массива.

Page 13: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Списки

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Основная проблема массивов состоит в том, что массивимеет фиксированный размер. А как быть, если мызаранее не знаем количества элементов?Для этого необходимо использовать списки.

Список – структура данных,состоящая из узлов, хранящихкак данные, так и ссылку наследующий элемент.

При добавлении нового элемента ссылка последнего элемента заменяется на ссылку нановый элемент, а новый элемент получает ссылку на Null. Таким образом, количествоэлементов ограничивается только памятью.

Современные языки имеют встроенные списки, когда добавление нового элементаделается автоматически: List.append(X) – добавление X к списку List в Python.

Page 14: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Очередь

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Часто нам нужно организовать очередь, когда мы сохраняем и имеем доступ к элементамне по индексу, а по принципу «первый вошел, первый вышел» FIFO – «first in, first out».

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

Размер очереди может быть фиксированным илидинамическим как в случае списков.

Page 15: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Стек

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Стек представляет собой структуру данных, в которой принцип: «последний вошел,первый вышел» LIFO – «last in, first out».

Стек – это очень эффективное средствоорганизации данных, которая применяется врекурсивных обходах дерева, организациивызовов подпрограмм и др.

Обычно стек поддерживает три операции:1. push(X) – поместить в стек элемент X2. pop() – получить верхний элемент, удалив его из стека3. peek() – получить верхний элемент, без удаления из стека

Стек можно сравнитьсо стопкой книг илимагазином с патронами

Page 16: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Хеш-таблица или словарь

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Классический массив представляет собой наборэлементов, доступ к которым осуществляется спомощью индекса – целого числа 0, 1, …

А почему бы не сделать массив,доступ к элементам которого будет нес помощью чисел, а произвольногоключа-имени?Такой массив называется хеш-таблицей или словарем.

Хеш-таблица позволяет эффективно организоватьдоступ по принципу «ключ – значение».

Например, для описания студентов можно использоватьследующую структуру Students:

[key=“фамилия имя отчество”, data = “адрес”]

Например: адрес Лобанова Андрея Николаевича можно найтипо запросу:

Students[“Лобанов Андрей Николаевич”]

Page 17: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Заключение

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

В этой лекции Вы познакомились со следующими понятиями:

1. Что такое информатика и информация2. Единицы измерения информации3. Энтропия информации по Шеннону4. Системы счисления и перевод из одной системы счисления в другую5. Представление чисел в компьютере6. Что такое данные7. Переменные и типы данных8. Массивы9. Списки10. Очередь11. Стек12. Хеш-таблица или словарь

Page 18: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Подготовка к тесту

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Вопрос № 1:«Что такое информация и какими она может обладать свойствами?»

Вопрос № 2:«Сколько бит в 5 гигабайтах?»

Вопрос № 3:«Какой смысл имеет энтропия информации?»

Вопрос № 4:«Чему равно F516?» «Записать в двоичной системе счисления число 21»

Вопрос № 5:«Записать в нормализованной форме число 120,34. Указать мантиссу и порядок»

Page 19: тема № 1 «Теория информации и структуры …Теория информации: единицы измерения Мыбудемизучатьтолькоцифровуюинформацию

Подготовка к тесту

Лекции по информатике, Р.В. Шамин: shamin.ru, lector.ru, calcs.ru

Вопрос № 6:«Что такое данные и чем они отличаются от информации?»

Вопрос № 7:«Какого типа данных могут быть переменные?»

Вопрос № 8:«Что такое массив?»

Вопрос № 9:«Чем список отличается от массива? от хеш-таблицы?»

Вопрос № 10:«В чем разница между стеком и очередью?»

Удачи на экзамене!