Все мы привыкли к тому, что все вокруг можно измерить. Мы можем определить массу посылки, длину стола, скорость движения автомобиля. Но как определить количество информации, содержащееся в сообщении? Ответ на вопрос в статье.
Итак, давайте для начала выберем сообщение. Пусть это будет «Принтер — устройство вывода информации.«. Наша задача — определить, сколько информации содержится в данном сообщении. Иными словами — сколько памяти потребуется для его хранения.
Определение количества информации в сообщении
Для решения задачи нам нужно определить, сколько информации несет один символ сообщения, а потом умножить это значение на количество символов. И если количество символов мы можем посчитать, то вес символа нужно вычислить. Для этого посчитаем количество различных символов в сообщении. Напомню, что знаки препинания, пробел — это тоже символы. Кроме того, если в сообщении встречается одна и та же строчная и прописная буква — мы считаем их как два различных символа. Приступим.
В слове Принтер 6 различных символов (р встречается дважды и считается один раз), далее 7-й символ пробел и девятый — тире. Так как пробел уже был, то после тире мы его не считаем. В слове устройство 10 символов, но различных — 7, так как буквы с, т и о повторяются. Кроме того буквы т и р уже была в слове Принтер. Так что получается, что в слове устройство 5 различных символов. Считая таким образом дальше мы получим, что в сообщении 20 различных символов.
Далее вспомним формулу, которую называют главной формулой информатики:
2i=N
Подставив в нее вместо N количество различных символов, мы узнаем, сколько информации несет один символ в битах. В нашем случае формула будет выглядеть так:
2i=20
Вспомним степени двойки и поймем, что i находится в диапазоне от 4 до 5 (так как 24=16, а 25=32). А так как бит — минимальная единица измерения информации и дробным быть не может, то мы округляем i в большую сторону до 5. Иначе, если принять, что i=4, мы смогли бы закодировать только 24=16 символов, а у нас их 20. Поэтому получаем, что i=5, то есть каждый символ в нашем сообщении несет 5 бит информации.
Осталось посчитать сколько символов в нашем сообщении. Но теперь мы будем считать все символы, не важно повторяются они или нет. Получим, что сообщение состоит из 39 символов. А так как каждый символ — это 5 бит информации, то, умножив 5 на 39 мы получим:
5 бит x 39 символов = 195 бит
Это и есть ответ на вопрос задачи — в сообщении 195 бит информации. И, подводя итог, можно написать алгоритм нахождения объема информации в сообщении:
- посчитать количество различных символов.
- подставив это значение в формулу 2i=N найти вес одного символа (округлив в большую сторону)
- посчитать общее количество символов и умножить это число на вес одного символа.
Автор:
Мы ежедневно работаем с информацией из разных источников. При этом каждый из нас имеет некоторые интуитивные представления о том, что означает, что один источник является для нас более информативным, чем другой. Однако далеко не всегда понятно, как это правильно определить формально. Не всегда большое количество текста означает большое количество информации. Например, среди СМИ распространена практика, когда короткое сообщение из ленты информационного агентства переписывают в большую новость, но при этом не добавляют никакой «новой информации». Или другой пример: рассмотрим текстовый файл с романом Л.Н. Толстого «Война и мир» в кодировке UTF-8. Его размер — 3.2 Мб. Сколько информации содержится в этом файле? Изменится ли это количество, если файл перекодировать в другую кодировку? А если заархивировать? Сколько информации вы получите, если прочитаете этот файл? А если прочитаете его второй раз?
По мотивам открытой лекции для Computer Science центра рассказываю о том, как можно математически подойти к определению понятия “количество информации”.
В классической статье А.Н. Колмогорова “Три подхода к определению понятия количества информации” (1965) рассматривают три способа это сделать:
-
комбинаторный (информация по Хартли),
-
вероятностный (энтропия Шеннона),
-
алгоритмический (колмогоровская сложность).
Мы будем следовать этому плану.
Комбинаторный подход: информация по Хартли
Мы начнём самого простого и естественного подхода, предложенного Хартли в 1928 году.
Пусть задано некоторое конечное множество . Количеством информации в будем называть .
Можно интерпретировать это определение следующим образом: нам нужно битов для описания элемента из .
Почему мы используем биты? Можно использовать и другие единицы измерения, например, триты или байты, но тогда нужно изменить основание логарифма на 3 или 256, соответственно. В дальшейшем все логарифмы будут по основанию 2.
Этого определения уже достаточно для того, чтобы измерить количество информации в некотором сообщении. Пусть про стало известно, что . Теперь нам достаточно битов для описания , таким образом нам сообщили битов информации.
Пример
Загадано целое число от до . Нам сообщили, что делится на . Сколько информации нам сообщили?
Воспользуемся рассуждением выше.
(Тот факт, что некоторое сообщение может содержать нецелое количество битов, может показаться немного неожиданным.)
Можно ещё сказать, что сообщение, уменшающее пространство поиска в раз приносит битов информации. В данном примере пространство поиска уменьшилось в 1000/166 раз.
Интересно, что одного этого определения уже достаточно для того, чтобы решать довольно нетривиальные задачи.
Применение: цена информации
Загадано целое число от до . Разрешается задавать любые вопросы на ДА/НЕТ. Если ответ на вопрос “ДА”, то мы должны заплатить рубль, если ответ “НЕТ” — два рубля. Сколько нужно заплатить для отгадывания числа ?
Любой вопрос можно сформулировать как вопрос о принадлежности некоторому множеству, поэтому мы будем считать, что все вопросы имеют вид “?” для некоторого множества .
Каким образом нужно задавать вопросы? Нам бы хотелось, чтобы вне зависимости от ответа цена за бит информации была постоянной. Другими словами, в случае ответа “НЕТ” и заплатив два рубля мы должны узнать в два больше информации, чем при ответе “ДА”. Давайте запишем это формально.
Потребуем, чтобы
Пусть , тогда . Подставляем и получаем, что
Это эквивалентно квадратному уравнению Положительный корень этого уравнения . Таким образом, при любом ответе мы заплатим рублей за бит информации, а в сумме мы заплатим примернорублей (с точностью до округления).
Осталось понять, как выбирать такие множества . Будем выбирать в качестве непрерывные отрезки прямой. Пусть нам известно, что принадлежит отрезку (изначально это отрезок ). В следующего множества возмём отрезок , где. Тогда за каждый заплаченный рубль текущий отрезок будет уменьшаться в раз. Когда длина отрезка станет меньше единицы, мы однозначно определим . Поэтому цена отгадывания не будет превосходить
Приведённое рассуждение доказывает только верхнюю оценку. Можно доказать и нижнюю оценку: для любого способа задавать вопросы будет такое число , для отгадывания которого придётся заплатить не менее рублей.
Вероятностный подход: энтропия Шеннона
Вероятностный подход, предложенный Клодом Шенноном в 1948 году, обобщает определение Хартли на случай, когда не все элементы множества являются равнозначными. Вместо множества в этом подходе мы будем рассматривать вероятностное распределение на множестве и оценивать среднее по распределению количество информации, которое содержит случайная величина.
Пусть задана случайная величина , принимающая различных значений с вероятностями . Энтропия Шеннона случайной величины определяется как
(По непрерывности тут нужно доопределить .)
Энтропия Шеннона оценивает среднее количество информации (математическое ожидание), которое содержится в значениях случайной величины.
При первом взгляде на это определение, может показаться совершенно непонятно откуда оно берётся. Шеннон подошёл к этой задаче чисто математически: сформулировал требования к функции и доказал, что это единственная функция, удовлетворяющая сформулированным требованиям.
Я попробую объяснить происхождение этой формулы как обобщение информации по Хартли. Нам бы хотелось, чтобы это определение согласовывалось с определением Хартли, т.е. должны выполняться следующие “граничные условия”:
Будем искать в виде математического ожидания количества информации, которую мы получаем от каждого возможного значения .
Как оценить, сколько информации содержится в событии ? Пусть — всё пространство элементарных исходов. Тогда событие соответствует множеству элементарных исходов меры . Если произошло событие , то размер множества согласованных с этим событием элементарных исходов уменьшается с до , т.е. событие сообщает нам битов информации. Тут мы пользуемся тем, что количество информации в сообщении, которое уменьшает размер пространство поиска в раз приносит битов информации.
Примеры
Свойства энтропии Шеннона
Для случайной величины , принимающей значений с вероятностями , выполняются следующие соотношения.
-
.
-
распределение вырождено.
-
.
-
распределение равномерно.
Чем распределение ближе к равномерному, тем больше энтропия Шеннона.
Энтропия пары
Понятие энтропии Шеннона можно обобщить для пары случайных величин. Аналогично это обощается для тройки, четвёрки и т.д.
Пусть совместно распределённые случайные величины и принимают значения и , соответственно. Энтропия пары случайных величин и определяется следующим соотношением:
Примеры
Рассмотрим эксперимент с выбрасыванием двух игральных кубиков — синего и красного.
Свойства энтропии Шеннона пары случайных величин
Для энтропии пары выполняются следующие свойства.
Условная энтропия Шеннона
Теперь давайте научимся вычислять условную энтропию одной случайной величины относительно другой.
Условная энтропия относительно определяется следующим соотношением:
Примеры
Рассмотрим снова примеры про два игральных кубика.
Свойства условной энтропии
Условная энтропия обладает следующими свойствами
Взаимная информация
Ещё одна информационная величина, которую мы введём в этом разделе — это взаимная информация двух случайных величин.
Информация в о величине (взаимная информация случайных величин и ) определяется следующим соотношением
Примеры
И снова обратимся к примерам с двумя игральными кубиками.
Свойства взаимной информации
Выполняются следующие соотношения.
-
. Т.е. определение взаимной информации симметрично и его можно переписать так:
-
Или так: .
-
и .
-
.
-
.
Все информационные величины, которые мы определили к этому моменту можно проиллюстрировать при помощи кругов Эйлера.
Мы пойдём дальше и рассмотрим информационную величину, зависящую от трёх случайных величин.
Пусть , и совместно распределены. Информация в о при условии определяется следующим соотношением:
Свойства такие же как и обычной взаимной информации, нужно только добавить соответствующее условие ко всем членам.
Всё, что мы успели определить можно удобно проиллюстрировать при помощи трёх кругов Эйлера.
Из этой иллюстрации можно вывести все определения и соотношения на информационные величины.
Мы не будем продолжать дальше и рассматривать четыре случайные величины по трём причинам. Во-первых, рисовать четыре круга Эйлера со всеми возможными областями — это непросто. Во-вторых, для двух и трёх случайных величин почти все возможные соотношения можно вывести из кругов Эйлера, а для четырёх случайных величин это уже не так. И в третьих, уже для трёх случайных величин возникают неприятные эффекты, демонстрирующие, что дальше будет хуже.
Рассмотрим треугольник в пересечении всех трёх кругов , и . Этот треугольник соответствуют взаимной информации трёх случайных величин . Проблема с этой информационной величиной заключается в том, что ей не удаётся придать какой-то “физический” смысл. Более того, в отличие от всех остальных величин на картинке может быть отрицательной!
Рассмотрим пример трёх случайных величин равномерно распределённых на . Пусть и будут независимы, а . Легко проверить, что . При этом . В то же время . Получается следующая картинка.
Мы знаем, что . При этом . Получается, что , а , т.е. для таких случайных величин.
Применение энтропии Шеннона: кодирование
В этом разделе мы обсудим, как энтропия Шеннона возникает в теории кодирования. Будем рассматривать коды, которые кодируют каждый символ по отдельности.
Пусть задан алфавит . Код — это отображение из в . Код называется однозначно декодируемым, если любое сообщение, полученное применением к символам некоторого текста, декодируется однозначно.
Код называется префиксным (prefix-free), если нет двух символов и таких, что является префиксом .
Префиксные коды являются однозначно декодируемыми. Действительно, при декодировании префиксного кода легко понять, где находятся границы кодов отдельных символов.
Теорема [Шеннон]. Для любого однозначно декодируемого кода существует префиксный код с теми же длинами кодов символов.
Таким образом для изучения однозначно декодируемых кодов достаточно рассматривать только префиксные коды.
Задача об оптимальном кодировании.
Дан текст . Нужно найти такой код , что
Пусть . Обозначим через частоту, с которой символ встречается в . Тогда выражение выше можно переписать как
Следующая теорема могла встречаться вам в курсе алгоритмов.
Теорема [Хаффман]. Код Хаффмана, построенный по , является оптимальным префиксным кодом.
Алгоритм Хаффмана по набору частот эффективно строит оптимальный код для задачи оптимального кодирования.
Связь с энтропией
Имеют место две следующие оценки.
Теорема [Шеннон]. Для любого однозначно декодируемого кода выполняется
Теорема [Шеннон]. Для любых значений существует префиксный код , такой что
Рассмотрим случайную величину , равномерно распределённую на символах текста . Получим, что . Таким образом, эти две теоремы задают оценку на среднюю длину кода символа при оптимальном кодировании, т.е. и для кодирования Хаффмана.
Следовательно, длину кода Хаффмана текста можно оценить, как
Применение энтропии Шеннона: шифрования с закрытым ключом
Рассмотрим простейшую схему шифрования с закрытым ключом. Шифрование сообщения с ключом шифрования выполняется при помощи алгоритма шифрования . В результате получается шифрограмма . Зная получатель шифрограммы восстанавливает исходное сообщение : .
Мы будем анализировать эту схему с помощью аппарата энтропии Шеннона. Пусть и являются случайными величинами. Противник не знает и , но знает , которая так же является случайной величиной.
Для совершенной схемы шифрования (perfect secrecy) выполняются следующие соотношения:
-
, т.е. шифрограмма однозначно определяется по ключу и сообщению.
-
, т.е. исходное сообщение однозначно восстанавливается по шифрограмме и ключу.
-
, т.е. в отсутствие ключа из шифрограммы нельзя получить никакой информации о пересылаемом сообщении.
Теорема [Шеннон]. , даже если условие нарушается (т.е. алгоритм использует случайные биты).
Эта теорема утверждает, что для совершенной схемы шифрования длина ключа должна быть не менее длины сообщения. Другими словами, если вы хотите зашифровать и передать своему знакомому файл размера 1Гб, то для этого вы заранее должны встретиться и обменяться закрытым ключом размера не менее 1Гб. И конечно, этот ключ можно использовать только однажды. Таким образом, самая оптимальная совершенная схема шифрования — это “одноразовый блокнот”, в котором длина ключа совпадает с длиной сообщения.
Если же вы используете ключ, который короче пересылаемого сообщения, то шифрограмма раскрывает некоторую информацию о зашифрованном сообщении. Причём количество этой информации можно оценить, как разницу между энтропией сообщения и энтропией ключа. Если вы используете пароль из 10 символов при пересылке файла размера 1Гб, то вы разглашаете примерно 1Гб – 10 байт.
Это всё звучит очень печально, но не всё так плохо. Мы ведь никак не учитываем вычислительную мощь противника, т.е. мы не ограничиваем количество времени, которое противнику потребуется на выделение этой информации.
Современная криптография строится на предположении об ограниченности вычислительных возможностей противника. Тут есть свои проблемы, а именно отсутствие математического доказательства криптографической стойкости (все доказательства строятся на различных предположениях), так что может оказаться, что вся эта криптография бесполезна (подробнее можно почитать в статье о мирах Рассела Импальяццо, которая переведена на хабре), но это уже совсем другая история.
Доказательство. Нарисуем картинку для трёх случайных величин и отметим то, что нам известно.
-
.
-
, следовательно , а значит .
-
(по свойству взаимной информации), следовательно , а значит .
-
. Таким образом,
В доказательстве мы действительно не воспользовались тем, что .
Алгоритмический подход: колмогоровская сложность
Подход Шеннона хорош для случайных величин, но если мы попробуем применить его к текстам, то выходит, что количество информации в тексте зависит только от частот символов, но не зависит от их порядка. При таком подходе получается, что в “Войне и мире” и в тексте, который получается сортировкой всех знаков в “Войне и мире”, содержится одинаковое количество информации. Колмогоров предложил подход, позволяющий измерять количество информации в конкретных объектах (строках), а не в случайных величинах.
Внимание. До этого момента я старался следить за математической строгостью формулировок. Для того, чтобы двигаться дальше в том же ключе, мне потребовалось бы предположить, что читатель неплохо знаком с математической логикой и теорией вычислимости. Я пойду более простым путём и просто буду махать руками, заметая под ковёр некоторые подробности. Однако, все утверждения и рассуждения дальше можно математически строго сформулировать и доказать.
Нам потребуется зафиксировать способ описания битовой строки. Чтобы не углубляться в рассуждения про машины Тьюринга, мы будем описывать строки на языках программирования. Нужно только сделать оговорку, что программы на этих языках будут запускаться на компьютере с неограниченным объёмом оперативной памяти (иначе мы получили бы более слабую вычислительную модель, чем машина Тьюринга).
Сложностью строки относительно языка программирования называется длина кратчайшей программы, которая выводит .
Таким образом сложность “Войны и мира” относительноя языка Python — это длина кратчайшей программы на Python, которая печатает текст “Войны и мира”. Естественным образом сложность отсортированной версии “Войны и мира” относительно языка Python получится значительно меньше, т.к. её можно предварительно закодировать при помощи RLE.
Сравнение языков программирования
Дальше нам потребуется научиться любимой забаве всех программистов — сравнению языков программирования.
Будем говорить, что язык не хуже языка программирования и обозначать , если существует константа такая, что для для всех выполняется
Исходя из этого определения получается, что язык Python не хуже (!) этого вашего Haskell! И я это докажу. В качестве константы мы возьмём длину реализации интепретатора Haskell на Python. Таким образом, любая программа на Haskell переделывается в программу на Python просто дописыванием к ней интерпретатора Haskell на Python.
Соломонов и Колмогоров пошли дальше и доказали существования оптимального языка программирования.
Теорема [Соломонова-Колмогорова]. Существует способ описания (язык программирования) такой, что для любого другого способа описания выполняется .
И да, некоторые уже наверное догадались, что — это JavaScript. Или любой другой Тьюринг полный язык программирования.
Это приводит нас к следующему определению, предложенному Колмогоровым в 1965 году.
Колмогоровской сложностью строки будем называть её сложность относительно оптимального способа описания и будем обозначать .
Важно понимать, что при разных выборах оптимального языка программирования колмогоровская сложность будет отличаться, но только на константу. Для любых двух оптимальных языков программирования и выполняется и , т.е. существует такая константа , что Это объясняет, почему в этой науке аддитивные константы принято игнорировать.
При этом для конкретной строки и конкретного выбора колмогоровская сложность определена однозначно.
Свойства колмогоровской сложности
Начнём с простых свойств. Колмогоровская сложность обладает следующими свойствами.
Первое свойство выполняется потому, что мы всегда можем зашить строку в саму программу. Второе свойство верно, т.к. из программы, выводящей строку , легко сделать программу, которая выводит эту строку дважды.
Примеры
Несжимаемые строки
Важнейшее свойство колмогоровской сложности заключается в существовании сложных (несжимаемых строк). Проверьте себя и попробуйте объяснить, почему не бывает идеальных архиваторов, которые умели бы сжимать любые файлы хотя бы на 1 байт, и при этом позволяли бы однозначно разархивировать результат.
В терминах колмогоровской сложности это можно сформулировать так.
Вопрос. Существует ли такая длина строки , что для любой строки колмогоровская сложность меньше ?
Следующая теорема даёт отрицательный ответ на этот вопрос.
Теорема. Для любого существует такой, что .
Доказательство. Битовых строк длины всего . Число строк сложности меньше не превосходит число программ длины меньше , т.е. таких программ не больше чем
Таким образом, для какой-то строки гарантированно не хватит программы.
Верна и более сильная теорема.
Теорема. Существует такое, что для слов длины верно
Другими словами, почти все строки длины имеют почти максимальную сложность.
Колмогоровская сложность: вычислимость
В этом разделе мы поговорим про вычислимость колмогоровской сложности. Я не буду давать формально определение вычислимости, а буду опираться на интуитивные предствления читателей.
Теорема. Не существует программы, которая по двоичной записи числа выводит строку , такую что .
Эта теорема говорит о том, что не существует программы-генератора, которая умела бы генерировать сложные строки по запросу.
Доказательство. Проведём доказетельство от противного. Пусть такая программа существует и . Тогда с одной стороны сложность не меньше , а с другой стороны мы можем описать при помощи битов и кода программы.
Это приводит нас к противоречию, т.к. при достаточно больших значениях неизбежно станет больше, чем .
Как следствие мы получаем невычислимость колмогоровской сложности.
Следствие. Отображение не является вычислимым.
Опять же, предположим, что это нет так и существует программа , которая по строку вычисляет её колмогоровскую сложность. Тогда на основе программы можно реализовать программу из теоремы выше: она будет перебирать все строки длины не более и находить лексикографически первую, для которой сложность будет не меньше . А мы уже доказали, что такой программы не существует.
Связь с энтропией Шеннона
Теорема. Пусть длины содержит единиц и нулей, тогда
Я надеюсь, что вы уже узнали энтропию Шеннона для случайной величины с двумя значениями с вероятностями и .
Для колмогоровской сложности можно проделать весь путь, который мы проделали для энтропии Шеннона: определить условную колмогоровскую сложность, сложность пары строк, взаимную информацию и условную взаимную информацию и т.д. При этом формулы будут повторять формулы для энтропии Шеннона с точностью до . Однако это тема для отдельной статьи.
Применение колмогоровской сложности: бесконечность множества простых чисел
Начнём с довольно игрушечного применения. С помощью колмогоровской сложности мы докажем следующую теорему, знакомую нам со школы.
Теорема. Простых чисел бесконечно много.
Очевидно, что для доказательства этой теоремы никакая колмогоровская сложность не нужна. Однако на этом примере я смогу продемонстрировать основные идеи применения колмогоровской сложности в более сложных ситуациях.
Доказательство. Проведём доказательство от обратного. Пусть существует всего простых чисел: . Тогда любое натуральное раскладывается на степени простых:
т.е. определяется набором степеней . Каждое , т.е. задаётся битами. Поэтому любое можно задать при помощи битов (помним, что — это константа).
Теперь воспользуемся теоремой о существовании несжимаемых строк. Как следствие, мы можем заключить, что существуют -битовые числа сложности не менее (можно взять сложную строку и приписать в начало единицу). Получается, что сложное число можно задать при помощи небольшого числа битов.
Противоречие.
Применение колмогоровской сложности: алгоритмическая случайность
Колмогоровская сложность позволяет решить следующую проблему из классической теории вероятностей.
Пусть в лаборатории живёт обезьянка, которую научили печатать на печатной машинке так, что каждую кнопку она нажимает с одинаковой вероятность. Вам предлагается посмотреть на лист печатного текста и сказать, верите ли вы, что его напечатала эта обезьянка. Вы смотрите на лист и видите, что это первая страница “Гамлета” Шекспира. Поверите ли вы? Очевидно, что нет. Хорошо, а если это не Шекспир, а, скажем, текст детектива Дарьи Донцовой? Скорей всего тоже не поверите. А если просто какой-то набор русских слов? Опять же, очень сомневаюсь, что вы поверите.
Внимание, вопрос. А как объяснить, почему вы не верите? Давайте для простоты считать, что на странице помещается 2000 знаков и всего на машинке есть 80 знаков. Вы можете резонно заметить, что вероятность того, что обезьянка случайным образом породила текст “Гамлета” порядка , что астрономически мало. Это верно.
Теперь предположим, что вам показали текст, который вас устроил (он с вашей точки зрения будет похож на “случайный”). Но ведь вероятность его появления тоже будет порядка . Как же вы определяете, что один текст выглядит “случайным”, а другой — не выглядит?
Колмогоровская сложность позволяет дать формальный ответ на этот вопрос. Если у текста отстутствует короткое описание (т.е. в нём нет каких-то закономерностей, которые можно было бы использовать для сжатия), то такую строку можно назвать случайной. И как мы увидели выше почти все строки имеют большую колмогоровскую сложность. Поэтому, когда вы видите строку с закономерностями, т.е. маленькой колмогоровской сложности, то это соответствует очень редкому событию. В противоположность наблюдению строки без закономерностей. Вероятность увидеть строку без закономерностей близка к 1.
Это обобщается на случай бесконечных последовательностей. Пусть . Как определить понятие случайной последовательности?
(неформальное определение)
Последовательность случайна по Мартину–Лёфу, если каждый её префикс является несжимаемым.
Оказывается, что это очень хорошее определение случайных последовательностей, т.к. оно обладает ожидаемыми свойствами.
Свойства случайных последовательностей
-
Почти все последовательности являются случайными по Мартину–Лёфу, а мера неслучайных равна .
-
Всякая случайная по Мартину-Лёфу последовательность невычислима.
-
Если случайная по Мартин-Лёфу, то
Заключение
Если вам интересно изучить эту тему подробнее, то я рекомендую обратиться к следующим источникам.
-
Верещагин Н.К., Щепин Е.В. Информация, кодирование и предсказание. МЦНМО. (нет в свободном доступе, но pdf продаётся за копейки)
-
В.А. Успенский, А.Х. Шень, Н.К. Верещагин. Колмогоровская сложность и алгоритмическая случайность.
-
Курс “Введение в теорию информации” А.Е. Ромащенко в Computer Science клубе.
Если вам интересны подобные материалы, подписывайтесь в соцсетях на CS клуб и CS центр, а так же на наши каналы на youtube: CS клуб, CS центр.
Здравствуйте! С вами Елена TeachYOU, и сегодня мы разберем задачи 11 из ЕГЭ по информатике. Задачи несложные, но почему-то у многих учеников с ними возникают проблемы.
Что такое равномерное кодирование
Для того, чтобы работать с какими-то объектами с помощью компьютера, необходимо их закодировать. Так как подавляющее большинство современных ЭВМ использует двоичную логику, разумно кодировать объекты с использованием двоичного кодирования.
Двоичное кодирование можно разделить на равномерное (когда кодовые слова, или коды, имеют одинаковую длину), и неравномерное (когда длина кодовых слов разная). Тема неравномерного кодирования поднимается в 4 задании ЕГЭ, можете посмотреть материал по нему в этой статье. Там разобраны примеры с разными вариантами кодирования. Если вам все еще непонятно, чем равномерное кодирование отличается от неравномерного, то перед тем, как читать материал по 11 заданию дальше, советую сначала просмотреть материал по ссылке выше.
Перевод битов в байты и далее
Прежде чем двигаться дальше, напомню правила перевода между единицами измерения информации. Основное:
- 1 байт = 8 бит
- 1 Кбайт = 1024 байт = 2^10 байт = 2^13 бит
- 1 Мбайт = 1024 Кбайт = 2^10 Кбайт = 2^23 бит
1. Сначала переводим 5 Мбайт в Кбайты, домножая на 1024: 5 Мбайт = 5 * 1024 Кбайт.
2. Затем переводим Кбайты в байты домножением на 1024: 5 * 1024 Кбайт = 5 * 1024 * 1024 байт.
3. Для перевода в биты домножаем на 8: 5 * 1024 * 1024 байт = 5 * 1024 * 1024 * 4 бит.
Переведем 24576 бит в килобайты:
1. Делим на 8, чтобы перевести в байты: 24576 / 8 = 3072 (байт).
2. Делим на 1024, чтобы перейти к Кбайтам: 3072 / 1024 = 3 (Кбайт).
Что нужно знать про равномерное двоичное кодирование
Кодирование равномерное => все кодовые слова имеют одинаковую, минимально возможную, длину. Кодирование двоичное => кодовые слова состоят только из 0 и 1.
Сколько объектов можно закодировать, используя кодовые слова имеют длины i ?
Например, буква А может кодироваться кодовым словом 01101. В нем пять знаков (0 или 1). Говорят, что кодовое слово 01101 состоит из пяти бит. Бит – это ячейка, принимающая значение 0 или 1 (тире или точка, вкл или выкл и пр.).
Тогда кодовое слово 0110 состоит из 4 бит, слово 110011 – из 6 бит и т.д.
Посмотрим, сколько разных кодовых слов можно составить, если брать кодовые слова определенной длины (здесь нам поможет теория по теме “Комбинаторика” для 8 номера).
- Кодовые слова длины 1 – это 0 и 1. Их два (каждое занимает 1 бит).
- Кодовые слова длины 2 – это 00, 01, 10 и 11. Их четыре (каждое занимает 2 бит).
- Кодовые слова длины 3 я перечислять не буду. Их количество равно 2*2*2 = 2^3 = 8 (если непонятно, загляните в материал по комбинаторике). Каждое кодовое слово занимает 3 бита.
- ….
- Кодовые слова длины i – их 2^i. Каждое занимает i бит.
Получается, что, если для кодирования мы выберем кодовые слова длины i (i-битные), то сможем закодировать 2^i объектов.
Если в сообщении используется N символов, сколько бит нужно для кодирования каждого символа?
Количество i-битных кодовых слов равно 2^i.
Похоже, что, нужно подобрать такое i, чтобы N = 2^i.
Но на практике не всегда число N является степенью двойки. Поэтому для кодирования N объектов нужно взять такое минимальное i, чтобы выполнялось условие N <= 2^i.
Например:
- N = 14: 14 <= 16 = 2^4. Получается, что при кодировании 14 объектов с использованием равномерного двоичного кодирования на каждый объект будет приходиться 4 бита.
- N = 250: 250 <= 256 = 2^8 => 8 бит на объект.
- N = 2050: 2050 <= 4096 = 2^12 => 12 бит на объект.
Рассмотрим задачи 11 из ЕГЭ
Задача 1 (номер 1964 с компегэ)
При регистрации в компьютерной системе каждому объекту сопоставляется идентификатор, состоящий из 15 символов и содержащий только символы из 8-символьного набора: А, В, C, D, Е, F, G, H. В базе данных для хранения сведений о каждом объекте отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование идентификаторов, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно идентификатора, для каждого объекта в системе хранятся дополнительные сведения, для чего отведено 24 байта на один объект.
Определите объём памяти (в байтах), необходимый для хранения сведений о 20 объектах. В ответе запишите только целое число – количество байт.
Из задачи следует, что нужно сохранить данные о 20 объектах. Для каждого из них хранится идентификатор (его информационный вес нужно вычислить) и дополнительные сведения (известны, 24 байта на один объект).
Начнем с вычисления количества байт, которое занимает один идентификатор.
Длина идентификатора 15 символов, а мощность алфавита равна восьми. Вспоминаем основную формулу информатики: N = 2^i, где N – количество кодируемых равномерным кодированием объектов, i – количество бит, которое приходится на один объект. N = 8 (нужно закодировать все символы из набора, поэтому N = мощности алфавита). Из 8 = 2^i находим i=3 бита. Каждый символ кодируется 3 битами, а идентификатор состоит из 15 символов. Получается, на один идентификатор приходится 15 * 3 = 45 бит = 5,625 байт.
Обращаем внимание, что в задаче говорится, что для хранения сведений о каждом объекте отведено одинаковое и минимально возможное целое число байт. Необходимо округлить 5,625 байт до целого значения. Но в большую или меньшую сторону?
Если округлим в меньшую, то получим 5 байт = 40 бит. Но для хранения идентификатора нужно 45 бит! 45 бит не помещаются в “коробочку” из 5 байт. Значит, нужно округлять в большую. Итого, на идентификатор приходится 6 байт.
Для вычисления информационного объема, необходимого для хранения сведений об одном объекте, найдем сумму байт, приходящихся на идентификатор и на дополнительные сведения:
6 + 24 = 30 (байт) – на 1 объект.
Вычислим объем информации для хранения сведений о 20 объектах:
30 (байт) * 20 (объектов) = 600 (байт).
Задача 2 (номер 212 с компегэ)
Для регистрации на сайте необходимо продумать пароль, состоящий из 9 символов. Он может содержать десятичные цифры, строчные или заглавные буквы латинского алфавита (алфавит содержит 26 букв) и символы из перечисленных: «.», «$», «#», «@», «%», «&». В базе данных для хранения сведения о каждом пользователе отведено одинаковое и минимальное возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственного пароля, для каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байт одинаковое для каждого пользователя. Для хранения сведений о двадцати пользователях потребовалось 500 байт. Сколько байт выделено для хранения дополнительных сведений об одном пользователе. В ответе запишите только целое число – количество байт.
Сайт хранит данные о 20 пользователях. Они занимают 500 байт. Для каждого пользователя хранятся пароль (его информационный объем нужно вычислить) и дополнительные сведения (эту величину нужно найти и взять в качестве ответа).
Начнем с поиска количества байт, приходящихся на одного пользователя:
500 (байт) / 20 (польз.) = 25 (байт на 1 польз.)
Разберемся с паролем. Мощность алфавита символов, которые используются для его записи:
N = 10 (цифр) + 26 (строчных букв) + 26 (заглавных букв) + 6 (символов «.», «$», «#», «@», «%», «&») = 68 (символов).
Сколькими битами можно закодировать каждый из 78 символов при использовании равномерного кодирования?
68 <= 2^i, i = 7 (бит).
Тогда пароль занимает
7 (бит) * 9 (символов) = 63 (бит) = 8 (байт).
Для одного пользователя хранится пароль (8 байт) и доп. сведения. Всего на пользователя приходится 25 байт. Тогда доп. сведения занимают
25 – 8 = 17 (байт).
Задача 3 (номер 463 с компегэ)
Очень люблю эту задачу авторства Евгения Джобса за нацеленность на понимание темы
Автомобильный номер состоит из одиннадцати букв русского алфавита A, B,C, E, H, K, M, O, P, T, X и десятичных цифр от 0 до 9. Каждый номер состоит из двух букв, затем идет 3 цифры и еще одна буква. Например, АВ901С.
В системе каждый такой номер кодируется посимвольно, при этом каждая буква и каждая цифра кодируются одинаковым минимально возможным количеством бит.
Укажите, сколько бит на один номер можно сэкономить, если кодировать с помощью одинакового минимально возможного количества бит каждую из трех групп – первые две буквы, три цифры и последняя буква.
В этой задаче есть “до” и “после”.
“До”: каждая буква и каждая цифра кодируются отдельно.
“После”: кодируются отдельно первые две буквы, три цифры и последняя буква.
Разберемся, сколько бит занимал автомобильный номер при выборе способа кодирования “до”.
- Буквы: N = 11 <= 16 = 2^4 => i = 4.
- Цифры: N = 10 <= 16 = 2^4 => i = 4.
- Весь номер состоит их трех цифр и трех букв, это 3 (буквы) * 4 (бита) + 3 (цифры) * 4 (бита) = 24 (бит на один номер)
Как кодируем номер “после”?
- Первые две буквы. Букв 11. Количество пар букв (АА, АВ, … , ХХ) равно 11*11 = 121. Нашли объекты – это пары букв. Их количество N = 121 <= 128 = 2^7 => i=7 бит. Раньше каждую букву мы кодировали 4 битами и две буквы занимали 8 бит. А теперь 7. Э – экономия!
- Три цифры. Цифр 10. Количество троек цифр (000, 001, … , 999) равно 10*10*10 = 1000. В этом случае кодируемые объекты – это тройки цифр. N = 1000 <= 1024 = 2^10 => i = 10 бит. “До” каждую цифру кодировали 4 битами, три цифры занимали 12 бит. А сейчас 10. И здесь сэкономили.
- Последняя буква. N = 11 <= 16 = 2^4 => i=4. Тут ничего не изменилось: “до” кодировали объекты-буквы и здесь поступили так же.
- Количество бит на номер “после”: 7 + 10 + 4 = 21 (бит).
Итого сэкономили 24 – 21 = 3 (бита).
Какие еще задачи посмотреть, чтобы закрепить материал?
Сайт kompege.ru покорил мое сердце, и теперь я считаю себя его амбассадором)
Если вы только знакомитесь с 11 номерами, решайте любые задачи (на сайте компегэ их можно отсортировать по сложности, начните с простых).
Для более продвинутых настоятельно советую прорешать задачи из списка ниже, так как в каждой есть свои тонкости.
Номера 11: 4468, 4323, 2119, 5433.
И традиционно – успехов!
На уроке рассматривается разбор 8 задания ЕГЭ по информатике про измерение количества информации
8-е задание: «Измерение количества информации»
Уровень сложности
— базовый,
Требуется использование специализированного программного обеспечения
— нет,
Максимальный балл
— 1,
Примерное время выполнения
— 4 минуты.
Проверяемые элементы содержания: Знание о методах измерения количества информации
До ЕГЭ 2021 года — это было задание № 10 ЕГЭ
Типичные ошибки и рекомендации по их предотвращению:
“При использовании способа решения со системой счисления с основанием N следует помнить, что слова в списке нумеруются с единицы, поэтому числу 0 будет соответствовать первое слово”
ФГБНУ “Федеральный институт педагогических измерений”
Содержание:
- Объяснение темы
- Измерение количества информации
- Двоичное кодирование сообщений (равновероятностные события)
- Количество различных сообщений в алфавите разной мощности
- Количество сообщений при различном вхождении (встречаемости) букв
- Дополнительные формулы
- Тренировочные задания 8 ЕГЭ по информатике и их решение
- Сколько вариантов шифра или кодовых слов
- Перестановка букв в слове (каждая буква 1 раз)
- Сколько существует n-значных чисел, записанных в m-ной системе счисления
- Список в алфавитном порядке
- Вероятность событий
Объяснение темы
Рассмотрим кратко необходимые для решения 8 задания ЕГЭ понятия и формулы.
Измерение количества информации
- Кодирование — это представление информации в форме, удобной для её хранения, передачи и обработки. Правило преобразования информации к такому представлению называется кодом.
- 1 бит – это количество информации, которое можно передать с помощью одного знака в двоичном коде (0 или 1).
- Алфавит — это набор знаков, используемый в том или ином языке.
- Мощность алфавита — это количество используемых в алфавите знаков.
- Сообщение — это любая последовательность символов какого-либо алфавита.
1 байт (bytе) = 8 бит
1 Кб (килобайт) = 1024 байта
1 Мб (мегабайт) = 1024 Кб
1 Гб (гигабайт) = 1024 Мб
1 Тб (терабайт) = 1024 Гб
1 Пб (петабайт) = 1024 Тб
8 = 23
1024 = 210
Рассмотрим еще несколько определений:
Мощность алфавита
Для вычисления количества информации применяются несколько различных формул в зависимости от ситуации:
Двоичное кодирование сообщений (равновероятностные события)
При вычислении количества информации в сообщении для равновероятностных событий, общее количество которых равно N, используется формула:
N = 2L
* следует иметь в виду, что также приняты следующие обозначения: Q = 2k
Пример 2: Зашифруем буквы А, Б, В, Г при помощи двоичного кодирования равномерным кодом и посчитаем количество возможных сообщений:
Решение:
Таким образом, мы получили равномерный код, т.к. длина каждого кодового слова одинакова для всех кодовых слов (L = 2).
Количество сообщений длиной L битов:
N = 2L
Т.е. количество сообщений длиной 2 бита, как в примере с нашими буквами, будет равно N = 22 = 4
Ответ: 4
Количество различных сообщений в алфавите разной мощности
Рассмотрим вариант с 5 буквами (мощность алфавита = 5), которые надо разместить в сообщении длиной 2 символа:
Найдем формулу для нахождения количества различных сообщений в алфавите различной мощности:
Если мощность некоторого алфавита составляет N, то количество различных сообщений длиной L знаков:
- N – мощность алфавита
- L – длина сообщения
- Q – количество различных сообщений
Пример: Сколько существует всевозможных трехбуквенных слов в английском языке?
Решение:
В английском алфавите 26 букв. Значит, мощность алфавита = 26. Длина сообщения = 3. Найдем по формуле количество трехбуквенных слов:
Q = 263
или
26
*
26
*
26
= 17576
Ответ: 17576
N = n1 * n2 * … * nL
Количество сообщений при различном вхождении (встречаемости) букв
В таком случае можно использовать формулу для вычисления числа перестановок с повторениями; для двух разных символов она выглядит так:
[ P = frac{na+n*!}{na!n*!} ]
na
– количество букв a n*
— количество звёздочек или кол-во вариантов
Иногда в заданиях 8 можно использовать формулу комбинаторики для проверки полученных результатов перебора. Число сочетаний из n
элементов по k
элементов:
[ C{binom{k}{n}}= frac{n!}{k!(n-k)!} ]
n! = 1 * 2 * 3 * … * n
Пример: Сколько существует всевозможных четырехбуквенных слов в алфавите из 4 букв: А, Б, В, Г, если известно, что буква А встречается ровно два раза?
Решение:
- Длина сообщения = 4. Мощность алфавита = 4. Но мешает условие: буква А встречается ровно два раза.
- В таких заданиях можно использовать способ перебора всевозможных вариантов:
два раза буква А, на остальных местах - одна из трех оставшихся букв: А А 3 3 = 3 * 3 = 32 = 9 А 3 А 3 = 9 А 3 3 А = 9 3 А А 3 = 9 3 А 3 А = 9 3 3 А А = 9
Число сочетаний из n элементов по k элементов:
[ C{binom{k}{n}}= frac{n!}{k!(n-k)!} ]
[ C{binom{2}{4}}= frac{4!}{2!(4-2)!} = frac{24}{2*2} = 6 ]
* Факториал числа n! = 1 * 2 * 3 *..* n
6 * 9 = 54
Дополнительные формулы
Количество информации и равновероятные события
При определении количества информации для равновероятностных событий могут понадобиться две формулы:
x = log2(1/p)
p(A) = m / n
Количество информации и неравновероятные события
При использовании неравновероятного события, вероятность которого равна p, для вычисления количества информации используется формула:
i = -[log2p]
*квадратные скобки означают ближайшее целое, меньшее или равное значению выражения в скобках
Формула Хартли:
Формула Хартли
Алфавитный подход:
Информационный объем сообщения длиной L:
Алфавитный подход
Плейлист видеоразборов задания на YouTube:
Задание демонстрационного варианта 2022 года ФИПИ
Сколько вариантов шифра или кодовых слов
Cartesian(n) — метод расширения последовательности, возвращающий декартову степень множества символов |
Когда применяется: Если требуется полный перебор вариантов букв для каждой позиции (каждая буква может встречаться в кодовом слове любое количество раз) |
||||||
---|---|---|---|---|---|---|---|
Пример: Сравним полный перебор букв слова «школа», размещенных на две позиции: |
|||||||
Pascal | PascalABC.NET | ||||||
|
|
||||||
Результат: | |||||||
[ш,ш] [ш,к] [ш,о] [ш,л] [ш,а] [к,ш] [к,к] [к,о] Итого 25 штук (5*5) |
[ш,ш] [ш,к] [ш,о] [ш,л] [ш,а] [к,ш] [к,к] [к,о] [к,л] [к,а] [о,ш] [о,к] [о,о] [о,л] [о,а] [л,ш] [л,к] [л,о] [л,л] [л,а] [а,ш] [а,к] [а,о] [а,л] [а,а] |
||||||
Permutations — метод возвращает все перестановки множества элементов, заданного массивом или последовательностью |
Когда применяется: Если требуется перестановка букв в слове. То есть количество каждой буквы в словах сохраняется, и каждая буква встречается только 1 раз |
||||||
Пример: Сравним перестановку букв слова «мимикрия»: |
|||||||
Pascal | PascalABC.NET | ||||||
|
|
||||||
Результат: | |||||||
[М,И,М,И,К,Р,И,Я] [М,И,М,И,К,Р,Я,И] [М,И,М,И,К,И,Р,Я] [М,И,М,И,К,И,Я,Р] [М,И,М,И,К,Я,Р,И] [М,И,М,И,К,Я,И,Р] [М,И,М,И,Р,К,И,Я] [М,И,М,И,Р,К,Я,И] … |
Используются также следующие запросы и методы LINQ:
Фильтрация последовательностей (Where)
Метод Count([Type -> boolean])
Вычисление скаляра
Метод CountOf(s: Type)
— Возвращает количество элементов, равных указанному значению
Метод First()
— Возвращает первый элемент последовательности.
Метод Last()
— Возвращает последний элемент последовательности.
Метод Pairwise(Self: sequence of T; func: (T,T)->Res)
— Превращает последовательность в последовательность пар соседних элементов, применяет func к каждой паре полученных элементов и получает новую последовательность
8_1:
Шифр кодового замка представляет собой последовательность из пяти символов, каждый из которых является цифрой от 1 до 6.
Сколько различных вариантов шифра можно задать, если известно, что цифра 1 должна встречаться в коде ровно 1 раз, а каждая из других допустимых цифр может встречаться в шифре любое количество раз или не встречаться совсем?
Типовые задания для тренировки
✍ Решение:
✎ Решение теоретическое:
- Формула нахождения количества различных сообщений:
- Итак, что у нас дано из этой формулы:
- Длина сообщения (L) = 5 символов
- Мощность алфавита (N) = 6 (цифры от 1 до 6).
- Но так как цифра 1 встречается по условию ровно один раз, а остальные 5 цифр — любое количество раз, то будем считать, что N = 5 (цифры от 2 до 6, исключая 1). Т.е. возьмем вариант, когда 1 стоит на первом месте, а остальные 5 цифр размещаем на 4 позиции:
Q = NL
1 5 5 5 5 - 1 * Q = 54 = 625
✎ 1 способ. Найдем количество вариантов методом перебора:
1 5 5 5 5 -1 * Q=54
= 625 5 1 5 5 5 -1 * Q=54
= 625 5 5 1 5 5 -1 * Q=54
= 625 5 5 5 1 5 -1 * Q=54
= 625 5 5 5 5 1 -1 * Q=54
= 625
✎ 2 способ. Найдем количество вариантов при помощи формулы комбинаторики:
[ C{binom{4}{5}}= frac{5!}{4!(5-4)!} = 5 ]
625 * 5 = 3125
Результат: 3125
✎ Решение с использованием программирования:
PascalABC.net (приближенный к традиционному, долгое решение):
|
||
PascalABC.net (использование LINQ, быстрое решение):
* LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python:
|
||
С++: |
Детальный теоретический разбор задания 8 ЕГЭ по информатике предлагаем посмотреть в видеоуроке:
📹 YouTube здесьздесь (теоретическое решение)
8_2:
Шифр кодового замка представляет собой последовательность из пяти символов, каждый из которых является либо буквой (A или B) или цифрой (1, 2 или 3).
Сколько различных вариантов шифра можно задать, если известно, что в коде присутствует ровно одна буква, а все другие символы являются цифрами?
✍ Решение:
-
✎ Решение теоретическое:
- Формула нахождения количества различных сообщений:
- Посчитаем количество возможных шифров для одного из вариантов (например, когда буквы находятся на первой позиции). Так как цифры (1, 2, 3) могут занимать 4 позиции из пяти, а две буквы (А и В) одну из позиций, значит:
Q = NL
Q = 2 * 34 = 162
AB 123 123 123 123 = 162
"2" означает одна из двух букв: А или B, "3" - одна из трех цифр: 2 3 3 3 3 -> Q = 2 * 34 = 162 3 2 3 3 3 -> Q = 2 * 34 = 162 3 3 2 3 3 -> Q = 2 * 34 = 162 3 3 3 2 3 -> Q = 2 * 34 = 162 3 3 3 3 2 -> Q = 2 * 34 = 162
5 * 162 = 810
Результат: 810
✎ Решение с использованием программирования:
PascalABC.net (приближенный к традиционному, долгое решение):
|
||
PascalABC.net (использование LINQ, быстрое решение):
Cartesian(5) — метод расширения последовательности, возвращающий декартову степень множества символов, т.е. в нашем случае перебор 5-знаковых слов из заданных символов * LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python:
|
||
С++: |
Подробное теоретическое решение данного задания предлагаем посмотреть на видео:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (теоретическое решение)
8_3:
Олег составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Олег использует 4-буквенные слова, в которых есть только буквы A, Б, В, Г, Д и Е, причём буква Г появляется ровно 1 раз и только на первом или последнем месте. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем.
Сколько различных кодовых слов может использовать Олег?
✍ Решение:
-
✎ Решение теоретическое:
- Вспомним формулу получения количества возможных вариантов слов:
- где n1 — количество вариантов выбора первой буквы, n2 — количество вариантов выбора второй буквы и т.п.
- Рассмотрим варианты, когда буква Г встречается на первом или последнем месте:
N = n1 * n2 * n3 * … * nL = nL
Г ? ? ? = 1 * 5 * 5 * 5 = 53 = 125 ? ? ? Г = 5 * 5 * 5 * 1 = 53 = 125
125 + 125 = 250
Результат: 250
✎ Решение с использованием программирования:
PascalABC.net (приближенный к традиционному, долгое решение):
|
||
PascalABC.net (использование LINQ, быстрое решение):
Cartesian(4) — метод расширения последовательности, возвращающий декартову степень множества символов, т.е. в нашем случае перебор 4-знаковых слов из заданных символов * LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python:
|
||
С++: |
Видеоразбор данного задания (теоретический способ):
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (теоретическое решение)
8_4:
Шифр кодового замка представляет собой последовательность из пяти символов, каждый из которых является одной из букв X, Y или Z.
Сколько различных вариантов шифра можно задать, если известно, что буква X должна встречаться в коде ровно 2 раза, а каждая из других допустимых букв может встречаться в шифре любое количество раз или не встречаться совсем?
Типовые задания для тренировки
✍ Решение:
-
✎ Решение теоретическое:
- Формула нахождения количества различных сообщений:
- Итак, что у нас дано из этой формулы:
- Начальная мощность алфавита (N) = 3 (буквы X, Y, Z). Но так как буква X встречается ровно два раза, то мы ее рассмотрим отдельно, а остальные 2 буквы — встречаются любое количество раз, значит, будем считать, что:
Q = NL
N = 3 - 1 = 2 (Y и Z)
(L) = 5 - 2 = 3 символа (остальные два символа отведем на размещение X)
X X ? ? ? -> 12 * Q = 23 = 8
✎1 способ. Перебор всех вариантов:
X X ? ? ? - 12 * Q = 23 = 8 X ? X ? ? - 12 * Q = 23 = 8 X ? ? X ? - 12 * Q = 23 = 8 X ? ? ? X - 12 * Q = 23 = 8 ? X X ? ? - 12 * Q = 23 = 8 ? X ? X ? - 12 * Q = 23 = 8 ? X ? ? X - 12 * Q = 23 = 8 ? ? X X ? - 12 * Q = 23 = 8 ? ? X ? X - 12 * Q = 23 = 8 ? ? ? X X - 12 * Q = 23 = 8
✎ 2 способ. При помощи формулы поиска числа сочетаний:
[ C{binom{k}{n}}= frac{n!}{k!(n-k)!} ]
Число сочетаний из n элементов по k элементов:
[ C{binom{2}{5}}= frac{5!}{2!(5-2)!} = frac{120}{12} = 10 ]
* Факториал числа: n! = 1 * 2 * 3 * .. * n
8 * 10 = 80
* задание достаточно решить одним из способов!
Результат: 80
✎ Решение с использованием программирования:
PascalABC.net (приближенный к традиционному, долгое решение):
|
||
PascalABC.net (использование LINQ, быстрое решение):
Cartesian(5) — метод расширения последовательности, возвращающий декартову степень множества символов, т.е. в нашем случае перебор 5-знаковых слов из заданных символов * LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python:
|
||
С++: |
Детальный теоретический разбор задания 8 ЕГЭ по информатике теоретическим способом предлагаем посмотреть в видеоуроке:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (теоретическое решение)
8_5:
Сколько слов длины 5, начинающихся с согласной буквы и заканчивающихся гласной буквой, можно составить из букв ОСЕНЬ? Каждая буква может входить в слово несколько раз. Слова не обязательно должны быть осмысленными словами русского языка.
Типовые задания для тренировки
✍ Решение:
-
✎ Решение теоретическое:
- Из букв слова ОСЕНЬ имеем 2 гласных буквы (О, Е) и 2 согласных буквы (С, Н). Буква мягкий знак «нейтральна».
- Подсчитаем количество букв на каждой из 5 позиций:
2 5 5 5 2 СН все все все ОЕ
N = n1 * n2 * n3 * … * nL = nL
N = 2 * 5 * 5 * 5 * 2 = 500
✎ Решение с использованием программирования:
PascalABC.net (приближенный к традиционному, долгое решение):
|
||
PascalABC.net (использование LINQ, быстрое решение):
* LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python:
|
||
С++: |
Результат: 500
Разбор можно также посмотреть на видео (теоретическое решение):
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (теоретическое решение)
8_6:
Вася составляет 4-буквенные слова, в которых есть только буквы Л, Е, Т, О, причём буква Е используется в каждом слове хотя бы 1 раз. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем.
✍ Решение:
-
✎ Решение теоретическое:
- Количество вариантов различных слов вычислим по формуле:
- n1 — количество вариантов выбора первой буквы и т.п.
- Рассмотрим все варианты расположения буквы Е:
✎ 1 способ:
N = n1 * n2 * n3 * …
где
1. Е ? ? ? или 2. ? Е ? ? или 3. ? ? Е ? или 4. ? ? ? Е Где вопросительный знак означает любую букву из Л, Е, Т, О.
Е ? ? ? = 1 * 4 * 4 * 4 = 64 т.е. на первой позиции - только 1 буква - Е, на каждой последующей - одна из четырех букв Л, Е, Т, О.
? Е ? ? = 3 * 1 * 4 * 4 = 48
? ? Е ? = 3 * 3 * 1 * 4 = 36
? ? ? Е = 3 * 3 * 3 * 1 = 27
64 + 48 + 36 + 27 = 175
Результат: 175
✎ 2 способ:
- Так как по условию буква Е встретится хотя бы 1 раз, значит, можно утверждать, что не может быть такого, чтобы буква Е не встретилась бы ни одного раза.
- Таким образом, рассчитаем случай, когда буква Е встречается все 4 раза (т.е. все случаи) и отнимем от результата невозможный случай: когда буква Е не встретится ни одного раза:
1. Буква Е используется 4 раза (т.е. на всех позициях): 4 * 4 * 4 * 4 = 256 2. Буква Е не используется совсем (т.е. только 3 буквы): 3 * 3 * 3 * 3 = 81
256 - 81 = 175
Результат: 175
✎ Решение с использованием программирования:
PascalABC.net (приближенный к традиционному, долгое решение):
|
||
PascalABC.net (использование LINQ, быстрое решение):
Cartesian(4) — метод расширения последовательности, возвращающий декартову степень множества символов, т.е. в нашем случае перебор 4-знаковых слов из заданных символов * LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python:
|
||
С++: |
Теоретическое решение задания 8 смотрите в видеоуроке:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (теоретическое решение)
8_7:
Вася составляет 4-буквенные слова, в которых есть только буквы К, А, Т, Е, Р, причём буква Р используется в каждом слове хотя бы 2 раза. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем.
✍ Решение:
-
✎ Решение теоретическое:
- Количество возможных вариантов слов вычислим по формуле:
- где n1 — количество вариантов выбора первой буквы, n2 — количество вариантов выбора второй буквы и т.п.
- Сначала по формуле получим все варианты для всех пяти букв, включая букву Р:
N = n1 * n2 * n3 * … * nL = nL
5 * 5 * 5 * 5 = 54 = 625
4 * 4 * 4 * 4 = 44 = 256
р ? ? ? = 1 * 4 * 4 * 4 = 43 ? р ? ? = 4 * 1 * 4 * 4 = 43 ? ? р ? = 4 * 4 * 1 * 4 = 43 ? ? ? р = 4 * 4 * 4 * 1 = 43 Получим 43 * 4 = 256
625 - 256 - 256 = 113
✎ Решение с использованием программирования:
PascalABC.net (традиционный):
|
||
PascalABC.net (LINQ):
|
||
Python:
|
||
С++: |
Результат: 113
Теоретическое решение 8 задания предлагаем посмотреть в видеоуроке:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (теоретическое решение)
8_8:
Олег составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Олег использует 5-буквенные слова, в которых есть только буквы A, Б, В, и Г, причём буква Г появляется не более одного раза и только на последнем месте. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем.
Сколько различных кодовых слов может использовать Олег?
✍ Решение:
-
✎ Решение теоретическое:
- Вспомним формулу получения количества возможных вариантов слов:
- где n1 — количество вариантов выбора первой буквы,
- n2 — количество вариантов выбора второй буквы и т.п.
- Так как буква Г появляется не более одного раза и только на последнем месте, значит, она может либо появиться 1 раз на последнем месте, либо не появиться совсем.
- Рассмотрим варианты, когда буква Г встречается 1 раз на последнем месте и встречается 0 раз:
N = n1 * n2 * n3 * … * nL = nL
1 раз: ? ? ? ? Г = 3 * 3 * 3 * 3 * 1 = 34 = 81 0 раз: ? ? ? ? ? = 3 * 3 * 3 * 3 * 3 = 35 = 243
81 + 243 = 324
✎ Решение с использованием программирования:
PascalABC.net (приближенный к традиционному, долгое решение):
|
||
PascalABC.net (использование LINQ, быстрое решение):
Cartesian(5) — метод расширения последовательности, возвращающий декартову степень множества символов, т.е. в нашем случае перебор 5-знаковых слов из заданных символов * LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python: | ||
С++: |
Результат: 324
8_9:
Вася составляет 4-буквенные слова, в которых есть только буквы К, О, М, А, Р, причём буква А используется в них не более 3-х раз. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, необязательно осмысленная.
✍ Решение:
-
✎ Решение теоретическое:
- Вспомним формулу получения количества возможных вариантов слов:
- где n1 — количество вариантов выбора первой буквы,
- n2 — количество вариантов выбора второй буквы и т.п.
- Так как буква А по условию используется не более 3-х раз, это значит, что она используется либо 3 раза, либо 2 раза, либо 1 раз, либо не используется совсем. Рассмотрим все эти варианты отдельно.
- 1. Буква А используется 3 раза:
N = n1 * n2 * n3 * … * nL = nL
А А А _ -> 1 * 1 * 1 * 4 = 4 А А _ А -> 1 * 1 * 4 * А = 4 А _ А А -> 1 * 4 * 1 * 1 = 4 _ А А А -> 4 * 1 * 1 * 1 = 4
_
может быть любая из 4 букв: К О М Р. Значит, имеем:4 * 4 = 16 вариантов
А А _ _ -> 1 * 1 * 4 * 4 = 16 А _ А _ -> 1 * 4 * 1 * 4 = 16 А _ _ А -> 1 * 4 * 4 * 1 = 16 _ А А _ -> 4 * 1 * 1 * 4 = 16 _ А _ А -> 4 * 1 * 4 * 1 = 16 _ _ А А -> 4 * 4 * 1 * 1 = 16
_
может быть любая из 4 букв: К О М Р. Значит имеем:16 * 6 = 96 вариантов
А _ _ _ -> 1 * 4 * 4 * 4 = 64 _ А _ _ -> = 64 _ _ А _ -> = 64 _ _ _ А -> = 64
64 * 4 = 256 вариантов
_ _ _ _ -> 44 = 256
16 + 96 + 256 + 256 = 624
✎ Решение с использованием программирования:
PascalABC.net (приближенный к традиционному, долгое решение):
|
||
PascalABC.net (использование LINQ, быстрое решение):
Cartesian(4) — метод расширения последовательности, возвращающий декартову степень множества символов, т.е. в нашем случае перебор 4-знаковых слов из заданных символов * LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python:
|
||
С++: |
Результат: 624
Теоретическое решение смотрите также на видео:
📹 YouTube здесьздесь (теоретическое решение)
8_10:
Сколько существует различных символьных последовательностей длины 3 в четырёхбуквенном алфавите {A,B,C,D}, если известно, что одним из соседей A обязательно является D, а буквы B и C никогда не соседствуют друг с другом?
✍ Решение:
✎ Решение теоретическое:
- Вспомним формулу получения количества возможных вариантов слов:
- где n1 — количество вариантов выбора первой буквы,
- n2 — количество вариантов выбора второй буквы и т.п.
- Будем рассматривать варианты, расставляя каждую букву последовательно по алфавиту, начиная с первой буквы. При этом будем учитывать указанные ограничения для букв А, B и С:
N = n1 * n2 * n3 * … * nL = nL
Начинаем с A: A D 4ABCD = 1 * 1 * 4 = 4 Начинаем с B: B A D, B B 2BD, B D 4ABCD = 7 Начинаем с C: C A D, C C 2CD, C D 4ABCD = 7 Начинаем с D: D A 3BCD, D B 2BD, D C 2CD, D D 4ABCD = 11
4 + 7 + 7 + 11 = 29
Результат: 29
Видеоурок демонстрирует подробное теоретическое решение задания:
📹 YouTube здесьздесь (теоретическое решение)
8_22:
Лена составляет 5-буквенные слова из букв Я, С, Н, О, В, И, Д, Е, Ц, причём слово должно начинаться с согласной и заканчиваться гласной. Первая и последняя буквы слова встречаются в нем только один раз; остальные буквы могут повторяться.
Сколько слов может составить Лена?
✍ Решение:
✎ Решение с использованием программирования:
PascalABC.net (использование LINQ, быстрое решение):
|
||
PascalABC.net (приближенный к традиционному, долгое решение):
|
||
Python: | ||
С++: |
Результат: 6860
Использование метода Pairwise()
8_11:
Из букв С, Р, Е, Д, А составляются трехбуквенные комбинации по следующему правилу – в комбинации не может быть подряд идущих гласных и одинаковых букв.
Например, комбинации ААР или ЕСС не являются допустимыми.
Сколько всего комбинаций можно составить, используя это правило?
✍ Решение:
-
✎ Решение теоретическое:
- Рассмотрим два варианта: когда слово начинается с гласной буквы, и когда оно начинается с согласной.
1. С гласной:
1.1 2 3 2 = 2 * 3 * 2 = 12 гл с с 1.2 2 3 2 = 2 * 3 * 2 = 12 гл с гл
2. С согласной:
2.1 3 2 2 = 3 * 2 * 2 = 12 с с с 2.2 3 2 3 = 3 * 2 * 3 = 18 с гл с 2.3 3 2 2 = 3 * 2 * 2 = 12 с с гл
12 + 12 + 12 + 18 + 12 = 66
✎ Решение с использованием программирования:
PascalABC.net (использование LINQ, быстрое решение):
|
||
PascalABC.net (приближенный к традиционному, долгое решение):
|
||
Python:
|
||
С++: |
Результат: 66
Перестановка букв в слове (каждая буква 1 раз)
8_12:
Дано слово КОРАБЛИКИ. Таня решила составлять новые 5-буквенные слова из букв этого слова по следующим правилам:
1) слово начинается с гласной буквы;
2) гласные и согласные буквы в слове должны чередоваться;
3) буквы в слове не должны повторяться.
✍ Решение:
-
✎ Решение теоретическое:
- Учтем, что в слове КОРАБЛИКИ две буквы К и две И.
- Всего в слове 4 гласных, но поскольку две буквы
И
, то необходимо считать только 3 гласных. - Всего в слове 5 согласных, однако две из них — буквы
К
, поэтому считать следует 4 согласных. - Посчитаем количество согласных и гласных для каждой из 5 позиций слова, учитывая, что с каждой последующей буквой количество используемых гласных/согласных уменьшается. Под позициями приведем пример букв:
гл с гл с гл 3 4 2 3 1 оаи крбл оа крб и
3 * 4 * 2 * 3 * 1 = 72
Результат: 72
✎ Решение с использованием программирования:
PascalABC.net (использование LINQ, быстрое решение):
|
||
Python: | ||
С++: |
Результат: 72
8_21:
Ксюша составляет слова, меняя местами буквы в слове МИМИКРИЯ.
Сколько различных слов, включая исходное, может составить Ксюша?
✍ Решение:
-
✎ Решение с использованием программирования:
PascalABC.net (приближенный к традиционному, долгое решение):
Смысл решения в использовании типа множества ( |
||
PascalABC.net (использование LINQ, быстрое решение):
* LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python: | ||
С++: |
Ответ: 3360
Подробное решение программным способом смотрите на видео:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (программное решение)
8_19:
Петя составляет шестибуквенные слова
перестановкой букв
слова АДЖИКА. При этом он избегает слов с двумя подряд одинаковыми буквами. Сколько всего различных слов может составить Петя?
Типовые задания для тренировки
✍ Решение:
-
✎ Решение теоретическое:
- Посчитаем количество слов без двух подряд одинаковых букв. Будем считать относительно буквы А, которых две в заданном слове АДЖИКА. Буквы не могут повторяться, поэтому их кол-во в каждом варианте будет уменьшается:
А*А*** = 4*3*2*1 = 24 слова с данным расположением буквы А. А**А** = 4*3*2*1 = 24 А***А* = 4*3*2*1 А****А = ... *А*А** *А**А* *А***А **А*А* **А**А ***А*А
10 * 24 = 240
✎ Решение с использованием программирования:
PascalABC.net (приближенный к традиционному, долгое решение):
Смысл решения в использовании типа — множества ( |
||
PascalABC.net (использование LINQ, быстрое решение):
|
||
Python: | ||
С++: |
Ответ: 240
8_20:
Маша составляет 7-буквенные коды из букв В, Е, Н, Т, И, Л, Ь. Каждую букву нужно использовать
ровно 1 раз
, при этом код буква Ь не может стоять на последнем месте и между гласными. Сколько различных кодов может составить Маша?
Типовые задания для тренировки
✍ Решение:
-
✎ Решение теоретическое:
- Выполним задание следующим образом: 1. посчитаем общее количество слов, не учитывая никакие ограничения. 2. Затем посчитаем случаи, которые необходимо исключить. 3. Вычтем из результата пункта 1 результат пункта 2.
- Общее количество независимо от ограничений (учтем, что буквы не должны повторяться):
7 6 5 4 3 2 1 - количество возможных вариантов букв на семи позициях ИТОГО: 7! = 5040 слов
6 5 4 3 2 1 Ь = 6! = 720
И Ь Е 4 3 2 1 = 24 варианта Так как буквы смещаются по всем позициям, то получим (4 И Ь Е 3 2 1, ...): 24 * 5 = 120 Е Ь И 4 3 2 1 = 24 варианта 24 * 5 = 120
5040 - 720 - 120 - 120 = 4080
✎ Решение с использованием программирования:
Стоит заметить, что теоретическое решение занимает меньше времени, чем программный способ!
PascalABC.net (приближенный к традиционному, долгое решение):
|
||
PascalABC.net (использование LINQ, быстрое решение):
|
||
Python: | ||
С++: |
Ответ: 4080
8_23:
Артур составляет 6-буквенные коды перестановкой букв слова ВОРОТА
. При этом нельзя ставить рядом две гласные.
Сколько различных кодов может составить Артур?
✍ Решение:
✎ Решение с использованием программирования:
PascalABC.net (использование LINQ, спортивное прогр-е):
* LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python: | ||
С++: |
Ответ: 72
Сколько существует n-значных чисел, записанных в m-ной системе счисления
8_18: Объяснение 8 задания экзамена ЕГЭ 2020 г. (со слов учащегося):
Сколько существует восьмизначных чисел, записанных в восьмеричной системе счисления, в которых все цифры различны и рядом не могут стоять 2 чётные или 2 нечётные цифры?
Типовые задания для тренировки
✍ Решение:
-
✎ Решение теоретическое:
- Выпишем все четные и нечетные цифры, которые могут использоваться в 8-й с.с.:
четные: 0, 2, 4, 6 - итого 4 цифры нечетные: 1, 3, 5, 7 - итого 4 цифры
1) с четной цифры: 3 4 3 3 2 2 1 1 = 3*4*3*3*2*2*1*1 = 432 ч н ч н ч н ч н
Самый старший разряд не может быть равен 0 (поэтому 3 цифры из 4 возможных), так как разряд просто потеряется, и число станет семизначным). Каждый последующий разряд включает на одну цифру меньше, так как по заданию цифры не могут повторяться.
2) с нечетной цифры: 4 4 3 3 2 2 1 1 = 4*4*3*3*2*2*1*1 = 576 н ч н ч н ч н ч
Каждый последующий разряд включает на одну цифру меньше, так как по заданию цифры не могут повторяться.
432 + 576 = 1008
✎ Решение с использованием программирования:
PascalABC.net (использование LINQ, быстрое решение):
* LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python: | ||
С++: |
Ответ: 1008
Список в алфавитном порядке
8_13:
Все 5-буквенные слова, составленные из букв А, О, У, записаны в алфавитном порядке. Ниже приведено начало списка:
1. ААААА
2. ААААО
3. ААААУ
4. АААОА
…
Запишите слово, которое стоит под номером 242 от начала списка.
✍ Решение:
-
✎ Решение теоретическое:
- Данное задание лучше решать следующим образом. Подставим вместо букв цифры (А -> 0, О -> 1, У -> 2):
1. 00000 2. 00001 3. 00002 4. 00010 ...
остатки 241 | 3 | 1 80 | 3 | 2 26 | 3 | 2 8 | 3 | 2 2 | |
✎ Решение с использованием программирования:
PascalABC.net (использование LINQ, быстрое решение):
Смотрим слова и находим по номеру нужное слово: … (241,[У,У,У,У,А]) (242,[У,У,У,У,О]) (243,[У,У,У,У,У])
* LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python: | ||
С++: |
Результат: УУУУО
Подробное решение теоретическим способом смотрите на видео:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (теоретическое решение)
8_14: 8 задание. Демоверсия ЕГЭ 2018 информатика:
Все 4-буквенные слова, составленные из букв Д, Е, К, О, Р, записаны в алфавитном порядке и пронумерованы, начиная с 1.
Ниже приведено начало списка.
1. ДДДД 2. ДДДЕ 3. ДДДК 4. ДДДО 5. ДДДР 6. ДДЕД …
Под каким номером в списке идёт первое слово, которое начинается с буквы K?
✍ Решение:
-
✎ Решение теоретическое:
- Подставим вместо букв цифры (Д -> 0, Е -> 1, К -> 2, О -> 3, Р -> 4):
1. 0000 2. 0001 3. 0002 4. 0003 5. 0004 6. 0010 ...
K -> 2 -> 2000
По формуле разложения числа по степеням основания: 20005 = 2 * 53 + 0 * 22 + 0 + 0 = 2 * 125 = 25010
✎ Решение с использованием программирования:
PascalABC.net (использование LINQ, быстрое решение):
* LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python: | ||
С++: |
Результат: 251
Подробное решение 8 (10) задания демоверсии ЕГЭ 2018 года смотрите на видео:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (теоретическое решение)
8_15:
Все 4-буквенные слова, составленные из букв П, Р, С, Т, записаны в алфавитном порядке.
Вот начало списка:
1. ПППП 2. ПППР 3. ПППС 4. ПППТ 5. ППРП ... ...
✍ Решение:
Результат: 65
Видеоразбор задания смотрите ниже:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (теоретическое решение)
8_16:
Все четырёхбуквенные слова, составленные из букв В, Е, Г, А, Н записаны в алфавитном порядке и пронумерованы, начиная с 1. Начало списка выглядит так:
1. АААА 2. АААВ 3. АААГ 4. АААЕ 5. АААН 6. ААВА …
Под каким номером в списке идёт первое слово, в котором нет буквы А?
✍ Решение:
- ✎ Решение теоретическое:
- Пронумерованный список начинается со всех букв А. Представим, что А — 0, В — 1, Г — 2, Е — 3, Н — 4. Получим следующий список:
1. 0000 2. 0001 3. 0002 4. 0003 5. 0004 6. 0010
11115 = 1 * 53 + 1 * 52 + 1 * 51 + 1 * 50 = 156
156 + 1 = 157
✎ Решение с использованием программирования:
PascalABC.net (использование LINQ, быстрое решение):
* LINQ (Language Integrated Query) — язык интегрированных запросов |
||
Python: | ||
С++: |
Результат: 157
Видеорешение задания (теоретическое):
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (теоретическое решение)
Вероятность событий
8_17:
За четверть Василий Пупкин получил 20 оценок. Сообщение о том, что он вчера получил четверку, несет 2 бита информации.
Сколько четверок получил Василий за четверть?
✍ Решение:
- Для решения данного задания необходимо вспомнить две формулы:
1. Формула Шеннона:
x = log2(1/p)
x - количество информации в сообщении о событии p - вероятность события
2. Формула вероятности случайного события:
p(A) = m/n
m - число случаев, способствующих событию А n - общее число равновозможных случаев
2 = log2(1/p); => 1/p = 4; => p = 1/4
p = ?/20
1/4 = ?/20
? = 1/4 * 20 = 5
Результат: 5
Видеоразбор задания:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь (теоретическое решение)
Информатика
7 класс
Урок № 6
Единицы измерения информации
Перечень вопросов, рассматриваемых в теме:
- Алфавитный подход к измерению информации.
- Наименьшая единица измерения информации.
- Информационный вес одного символа алфавита и информационный объём всего сообщения.
- Единицы измерения информации.
- Задачи по теме урока.
Тезаурус:
Каждый символ информационного сообщения несёт фиксированное количество информации.
Единицей измерения количества информации является бит – это наименьшаяединица.
1 байт = 8 бит
1 Кб (килобайт) = 1024 байта= 210байтов
1 Мб (мегабайт) = 1024 Кб = 210Кб
1 Гб (гигабайт) = 1024 Мб = 210 Мб
1 Тб (терабайт) =1024 Гб = 210 Гб
Формулы, которые используются при решении типовых задач:
Информационный вес символа алфавита и мощность алфавита связаны между собой соотношением: N = 2i.
Информационный объём сообщения определяется по формуле:
I = К · i,
I – объём информации в сообщении;
К – количество символов в сообщении;
i – информационный вес одного символа.
Основная литература:
- Босова Л. Л. Информатика: 7 класс. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2017. – 226 с.
Дополнительная литература:
- Босова Л. Л. Информатика: 7–9 классы. Методическое пособие. // Босова Л. Л., Босова А. Ю., Анатольев А. В., Аквилянов Н.А. – М.: БИНОМ, 2019. – 512 с.
- Босова Л. Л. Информатика. Рабочая тетрадь для 7 класса. Ч 1. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2019. – 160 с.
- Босова Л. Л. Информатика. Рабочая тетрадь для 7 класса. Ч 2. // Босова Л. Л., Босова А. Ю. – М.: БИНОМ, 2019. – 160 с.
- Гейн А. Г. Информатика: 7 класс. // Гейн А. Г., Юнерман Н. А., Гейн А.А. – М.: Просвещение, 2012. – 198 с.
Теоретический материал для самостоятельного изучения.
Любое сообщение несёт некоторое количество информации. Как же его измерить?
Одним из способов измерения информации является алфавитный подход, который говорит о том, что каждый символ любого сообщения имеет определённый информационный вес, то есть несёт фиксированное количество информации.
Сегодня на уроке мы узнаем, чему равен информационный вес одного символа и научимся определять информационный объём сообщения.
Что же такое символ в компьютере? Символом в компьютере является любая буква, цифра, знак препинания, специальный символ и прочее, что можно ввести с помощью клавиатуры. Но компьютер не понимает человеческий язык, он каждый символ кодирует. Вся информация в компьютере представляется в виде нулей и единичек. И вот эти нули и единички называются битом.
Информационный вес символа двоичного алфавита принят за минимальную единицу измерения информации и называется один бит.
Алфавит любого понятного нам языка можно заменить двоичным алфавитом. При этом мощность исходного алфавита связана с разрядностью двоичного кода соотношением: N = 2i.
Эту формулу можно применять для вычисления информационного веса одного символа любого произвольного алфавита.
Рассмотрим пример:
Алфавит древнего племени содержит 16 символов. Определите информационный вес одного символа этого алфавита.
Составим краткую запись условия задачи и решим её:
Дано:
N=16, i = ?
Решение:
N = 2i
16 = 2i, 24 = 2i, т. е. i = 4
Ответ: i = 4 бита.
Информационный вес одного символа этого алфавита составляет 4 бита.
Сообщение состоит из множества символов, каждый из которых имеет свой информационный вес. Поэтому, чтобы вычислить объём информации всего сообщения, нужно количество символов, имеющихся в сообщении, умножить на информационный вес одного символа.
Математически это произведение записывается так: I = К · i.
Например: сообщение, записанное буквами 32-символьного алфавита, содержит 180 символов. Какое количество информации оно несёт?
Дано:
N = 32,
K = 180,
I= ?
Решение:
I = К · i,
N = 2i
32 = 2i, 25 = 2 i, т.о. i = 5,
I = 180 · 5 = 900 бит.
Ответ: I = 900 бит.
Итак, информационный вес всего сообщения равен 900 бит.
В алфавитном подходе не учитывается содержание самого сообщения. Чтобы вычислить объём содержания в сообщении, нужно знать количество символов в сообщении, информационный вес одного символа и мощность алфавита. То есть, чтобы определить информационный вес сообщения: «сегодня хорошая погода», нужно сосчитать количество символов в этом сообщении и умножить это число на восемь.
I = 23 · 8 = 184 бита.
Значит, сообщение весит 184 бита.
Как и в математике, в информатике тоже есть кратные единицы измерения информации. Так, величина равная восьми битам, называется байтом.
Бит и байт – это мелкие единицы измерения. На практике для измерения информационных объёмов используют более крупные единицы: килобайт, мегабайт, гигабайт и другие.
1 байт = 8 бит
1 Кб (килобайт) = 1024 байта= 210байтов
1 Мб (мегабайт) = 1024 Кб = 210Кб
1 Гб (гигабайт) = 1024 Мб = 210 Мб
1 Тб (терабайт) =1024 Гб = 210 Гб
Итак, сегодня мы узнали, что собой представляет алфавитный подход к измерению информации, выяснили, в каких единицах измеряется информация и научились определять информационный вес одного символа и информационный объём сообщения.
Материал для углубленного изучения темы.
Как текстовая информация выглядит в памяти компьютера.
Набирая текст на клавиатуре, мы видим привычные для нас знаки (цифры, буквы и т.д.). В оперативную память компьютера они попадают только в виде двоичного кода. Двоичный код каждого символа, выглядит восьмизначным числом, например 00111111. Теперь возникает вопрос, какой именно восьмизначный двоичный код поставить в соответствие каждому символу?
Все символы компьютерного алфавита пронумерованы от 0 до 255. Каждому номеру соответствует восьмиразрядный двоичный код от 00000000 до 11111111. Этот код ‑ просто порядковый номер символа в двоичной системе счисления.
Таблица, в которой всем символам компьютерного алфавита поставлены в соответствие порядковые номера, называется таблицей кодировки.Таблица для кодировки – это «шпаргалка», в которой указаны символы алфавита в соответствии порядковому номеру. Для разных типов компьютеров используются различные таблицы кодировки.
Таблица ASCII (или Аски), стала международным стандартом для персональных компьютеров. Она имеет две части.
В этой таблице латинские буквы (прописные и строчные) располагаются в алфавитном порядке. Расположение цифр также упорядочено по возрастанию значений. Это правило соблюдается и в других таблицах кодировки и называется принципом последовательного кодирования алфавитов. Благодаря этому понятие «алфавитный порядок» сохраняется и в машинном представлении символьной информации. Для русского алфавита принцип последовательного кодирования соблюдается не всегда.
Запишем, например, внутреннее представление слова «file». В памяти компьютера оно займет 4 байта со следующим содержанием:
01100110 01101001 01101100 01100101.
А теперь попробуем решить обратную задачу. Какое слово записано следующим двоичным кодом:
01100100 01101001 01110011 01101011?
В таблице 2 приведен один из вариантов второй половины кодовой таблицы АSСII, который называется альтернативной кодировкой. Видно, что в ней для букв русского алфавита соблюдается принцип последовательного кодирования.
Вывод: все тексты вводятся в память компьютера с помощью клавиатуры. На клавишах написаны привычные для нас буквы, цифры, знаки препинания и другие символы. В оперативную память они попадают в форме двоичного кода.
Из памяти же компьютера текст может быть выведен на экран или на печать в символьной форме.
Сейчас используют целых пять систем кодировок русского алфавита (КОИ8-Р, Windows, MS-DOS, Macintosh и ISO). Из-за количества систем кодировок и отсутствия одного стандарта, очень часто возникают недоразумения с переносом русского текста в компьютерный его вид. Поэтому, всегда нужно уточнять, какая система кодирования установлена на компьютере.
Разбор решения заданий тренировочного модуля
№1. Определите информационный вес символа в сообщении, если мощность алфавита равна 32?
Варианты ответов:
3
5
7
9
Решение:
Информационный вес символа алфавита и мощность алфавита связаны между собой соотношением: N = 2i.
32 = 2i, 32 – это 25, следовательно, i =5 битов.
Ответ: 5 битов.
№2. Выразите в килобайтах 216 байтов.
Решение:
216 можно представить как 26 · 210.
26 = 64, а 210 байт – это 1 Кб. Значит, 64 · 1 = 64 Кб.
Ответ: 64 Кб.
№3. Тип задания: выделение цветом
8х = 32 Кб, найдите х.
Варианты ответов:
3
4
5
6
Решение:
8 можно представить как 23. А 32 Кб переведём в биты.
Получаем 23х=32 · 1024 ·8.
Или 23х = 25 · 210 · 23.
23х = 218.
3х = 18, значит, х=6.
Ответ: 6.