Разбор 8 задания ЕГЭ по информатике

Разбор 8 задания ЕГЭ по информатике

8-е задание: «Измерение количества информации» Уровень сложности — базовый, Требуется использование специализированного программного обеспечения — нет, Максимальный балл — 1, Примерное время выполнения — 4 минуты.

Проверяемые элементы содержания: Знание о методах измерения количества информации

"При использовании способа решения со системой счисления с основанием N следует помнить, что слова в списке нумеруются с единицы, поэтому числу 0 будет соответствовать первое слово"

Объяснение темы

Рассмотрим кратко необходимые для решения 8 задания ЕГЭ понятия и формулы.

Измерение количества информации
  • Кодирование — это представление информации в форме, удобной для её хранения, передачи и обработки. Правило преобразования информации к такому представлению называется кодом.
  • 1 бит – это количество информации, которое можно передать с помощью одного знака в двоичном коде (0 или 1).

8 = 2 3 1024 = 2 10

Рассмотрим еще несколько определений:

Для вычисления количества информации применяются несколько различных формул в зависимости от ситуации:

Двоичное кодирование сообщений (равновероятностные события)

При вычислении количества информации в сообщении для равновероятностных событий, общее количество которых равно N, используется формула:

Количество сообщений длиной L битов:

Т.е. количество сообщений длиной 2 бита, как в примере с нашими буквами, будет равно N = 2 2 = 4

Ответ: 4

Количество различных сообщений в алфавите разной мощности

Рассмотрим вариант с 5 буквами (мощность алфавита = 5), которые надо разместить в сообщении длиной 2 символа:

Найдем формулу для нахождения количества различных сообщений в алфавите различной мощности:

  • N – мощность алфавита
  • L – длина сообщения
  • Q – количество различных сообщений

Решение:

Ответ: 17576

Количество сообщений при различном вхождении (встречаемости) букв

Иногда в заданиях 8 приходится использовать формулу комбинаторики для проверки полученных результатов перебора. Число сочетаний из n элементов по k элементов:

  • Длина сообщения = 4. Мощность алфавита = 4. Но мешает условие: буква А встречается ровно два раза.
  • В таких заданиях можно использовать способ перебора всевозможных вариантов:
  • Получили 6 вариантов, каждый из которых равен 9.
  • Проверим формулой числа сочетаний:

Число сочетаний из n элементов по k элементов:

Дополнительные формулы Количество информации и равновероятные события

При определении количества информации для равновероятностных событий могут понадобиться две формулы:

Количество информации и неравновероятные события

При использовании неравновероятного события, вероятность которого равна p, для вычисления количества информации используется формула:

*квадратные скобки означают ближайшее целое, меньшее или равное значению выражения в скобках

Информационный объем сообщения длиной L:

Решение заданий 8 ЕГЭ по информатике

Сколько вариантов шифра или кодовых слов

Шифр кодового замка представляет собой последовательность из пяти символов, каждый из которых является цифрой от 1 до 6.

Сколько различных вариантов шифра можно задать, если известно, что цифра 1 должна встречаться в коде ровно 1 раз, а каждая из других допустимых цифр может встречаться в шифре любое количество раз или не встречаться совсем?

✍ Решение:

✎ Решение теоретическое:

    Формула нахождения количества различных сообщений:

✎ 1 способ. Найдем количество вариантов методом перебора:

✎ 2 способ. Найдем количество вариантов при помощи формулы комбинаторики:

Результат: 3125

✎ Решение с использованием программирования:

begin var n := 0; var str := '123456'; foreach var s1 in str do foreach var s2 in str do foreach var s3 in str do foreach var s4 in str do foreach var s5 in str do begin if (s1 + s2 + s3 + s4 + s5).CountOf('1') = 1 then n += 1; end; print(n) end.

## var d:='123456'.Cartesian(5) .where(w->w.countOf('1')=1)// кол-во '1' в слове .count.print

n=0 str='123456' for s1 in str: for s2 in str: for s3 in str: for s4 in str: for s5 in str: if (s1+s2+s3+s4+s5).count('1')==1: n+=1 print(n)

Детальный разбор задания 8 ЕГЭ по информатике предлагаем посмотреть в видеоуроке:

Шифр кодового замка представляет собой последовательность из пяти символов, каждый из которых является либо буквой (A или B) или цифрой (1, 2 или 3).

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

✍ Решение:

    ✎ Решение теоретическое:

Результат: 810

✎ Решение с использованием программирования:

begin var n := 0; var str := 'AB123'; for var s1 := 1 to length(str) do for var s2 := 1 to length(str) do for var s3 := 1 to length(str) do for var s4 := 1 to length(str) do for var s5 := 1 to length(str) do begin var res := str[s1] + str[s2] + str[s3] + str[s4] + str[s5]; if (res.CountOf('A') = 1) and (res.CountOf('B') = 0) or (res.CountOf('B') = 1) and (res.CountOf('A') = 0) then n += 1; end; print(n) end.

## var d:='АВ123'.Cartesian(5) .where(w->w.count(letter -> letter in 'АВ')=1)// кол-во букв в слове .count.print

n=0 str='AB123' for s1 in str: for s2 in str: for s3 in str: for s4 in str: for s5 in str: if ((s1+s2+s3+s4+s5).count('A')==1 and (s1+s2+s3+s4+s5).count('B')==0) or ((s1+s2+s3+s4+s5).count('B')==1 and (s1+s2+s3+s4+s5).count('A')==0): n+=1 print(n)

Подробное теоретическое решение данного задания предлагаем посмотреть на видео:

Олег составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Олег использует 4-буквенные слова, в которых есть только буквы A, Б, В, Г, Д и Е, причём буква Г появляется ровно 1 раз и только на первом или последнем месте. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем.

Сколько различных кодовых слов может использовать Олег?

✍ Решение:

    ✎ Решение теоретическое:

N = n1 * n2 * n3 * … * nL = n L

Результат: 250

✎ Решение с использованием программирования:

begin var n := 0; var str := 'АБВГДЕ'; for var s1 := 1 to length(str) do for var s2 := 1 to length(str) do for var s3 := 1 to length(str) do for var s4 := 1 to length(str) do begin var res := str[s1] + str[s2] + str[s3] + str[s4]; if (res[1]='Г') and (res[2]<>'Г') and (res[3]<>'Г') and (res[4]<>'Г') or (res[1]<>'Г') and (res[2]<>'Г') and (res[3]<>'Г') and (res[4]='Г') then n += 1; end; print(n) end.

n=0 str='АБВГДЕ' for s1 in str: for s2 in str: for s3 in str: for s4 in str: if (s1 =='Г') and (s2!='Г') and (s3!='Г') and (s4!='Г') or (s1 !='Г') and (s2!='Г') and (s3!='Г') and (s4=='Г'): n+=1 print(n)

Видеоразбор данного задания (теоретический способ):

Шифр кодового замка представляет собой последовательность из пяти символов, каждый из которых является одной из букв X, Y или Z.

Сколько различных вариантов шифра можно задать, если известно, что буква X должна встречаться в коде ровно 2 раза, а каждая из других допустимых букв может встречаться в шифре любое количество раз или не встречаться совсем?

✍ Решение:

    ✎ Решение теоретическое:

✎1 способ. Перебор всех вариантов:

✎ 2 способ. При помощи формулы поиска числа сочетаний:

Число сочетаний из n элементов по k элементов:

* Факториал числа: n! = 1 * 2 * 3 * .. * n

Результат: 80

✎ Решение с использованием программирования:

begin var n := 0; var str := 'xyz'; for var s1 := 1 to length(str) do for var s2 := 1 to length(str) do for var s3 := 1 to length(str) do for var s4 := 1 to length(str) do for var s5 := 1 to length(str) do begin var res := str[s1] + str[s2] + str[s3] + str[s4] + str[s5]; if res.countOf('x') = 2 then // или if res.Count(y -> y = 'x') = 2 then n += 1; end; print(n) end.

## var d:='XYZ'.Cartesian(5) .where(w->w.countOf('X')=2) .count.print

n=0 str='xyz' for s1 in str: for s2 in str: for s3 in str: for s4 in str: for s5 in str: if (s1+s2+s3+s4+s5).count('x') == 2: n+=1 print(n)

Детальный разбор задания 8 ЕГЭ по информатике теоретическим способом предлагаем посмотреть в видеоуроке:

Сколько слов длины 5, начинающихся с согласной буквы и заканчивающихся гласной буквой, можно составить из букв ОСЕНЬ? Каждая буква может входить в слово несколько раз. Слова не обязательно должны быть осмысленными словами русского языка.

✍ Решение:

    ✎ Решение теоретическое:

N = n1 * n2 * n3 * … * nL = n L

✎ Решение с использованием программирования:

begin var n := 0; var str := 'ОСЕНЬ'; for var s1 := 1 to length(str) do for var s2 := 1 to length(str) do for var s3 := 1 to length(str) do for var s4 := 1 to length(str) do for var s5 := 1 to length(str) do begin var res := str[s1] + str[s2] + str[s3] + str[s4] + str[s5]; if ((res[1] = 'С') or (res[1] = 'Н')) and ((res[5] = 'О') or (res[5] = 'Е')) then n += 1; end; print(n) end.

'ОСЕНЬ'.Cartesian(5).Where(w->w[0] in 'СН').Where(w->w[4] in 'ОЕ').Count.Print

str = 'ОСЕНЬ' n = 0 for s1 in str: for s2 in str: for s3 in str: for s4 in str: for s5 in str: res = s1 + s2 + s3 + s4 if (s1 == 'С' or s1 == 'Н') and (s5 == 'О' or s5 == 'Е'): n += 1 print(n)

Результат: 500

Разбор можно также посмотреть на видео (теоретическое решение):

Вася составляет 4-буквенные слова, в которых есть только буквы Л, Е, Т, О, причём буква Е используется в каждом слове хотя бы 1 раз. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем.

Сколько существует таких слов, которые может написать Вася?

✍ Решение:

    ✎ Решение теоретическое:✎ 1 способ:

N = n1 * n2 * n3 * … где

Результат: 175 ✎ 2 способ:

  • Так как по условию буква Е встретится хотя бы 1 раз, значит, можно утверждать, что не может быть такого, чтобы буква Е не встретилась бы ни одного раза.
  • Таким образом, рассчитаем случай, когда буква Е встречается все 4 раза (т.е. все случаи) и отнимем от результата невозможный случай: когда буква Е не встретится ни одного раза:
  • Вычтем из первого варианта невозможный вариант № 2:

Результат: 175

✎ Решение с использованием программирования:

begin var n := 0; var str := 'ЛЕТО'; for var s1 := 1 to length(str) do for var s2 := 1 to length(str) do for var s3 := 1 to length(str) do for var s4 := 1 to length(str) do begin var res := str[s1] + str[s2] + str[s3] + str[s4]; if res.countOf('Е') >= 1 then // или if res.Count(y -> y = 'Е') >= 1 then n += 1; end; print(n) end.

n=0 str='ЛЕТО' for s1 in str: for s2 in str: for s3 in str: for s4 in str: if (s1+s2+s3+s4).count('Е') >= 1: n+=1 print(n)

Теоретическое решение задания 8 смотрите в видеоуроке:

Вася составляет 4-буквенные слова, в которых есть только буквы К, А, Т, Е, Р, причём буква Р используется в каждом слове хотя бы 2 раза. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем.

Сколько существует таких слов, которые может написать Вася?

✍ Решение:

    ✎ Решение теоретическое:

N = n1 * n2 * n3 * … * nL = n L

✎ Решение с использованием программирования:

begin var n := 0; var str := 'КАТЕР'; for var s1 := 1 to length(str) do for var s2 := 1 to length(str) do for var s3 := 1 to length(str) do for var s4 := 1 to length(str) do begin var res := str[s1] + str[s2] + str[s3] + str[s4]; if res.CountOf('Р') >= 2 then n += 1; end; print(n) end.

n=0 str='КАТЕР' for s1 in str: for s2 in str: for s3 in str: for s4 in str: if (s1+s2+s3+s4).count('Р') >= 2: n+=1 print(n)

Результат: 113

Теоретическое решение 8 задания предлагаем посмотреть в видеоуроке:

Олег составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Олег использует 5-буквенные слова, в которых есть только буквы A, Б, В, и Г, причём буква Г появляется не более одного раза и только на последнем месте. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем.

Сколько различных кодовых слов может использовать Олег?

✍ Решение:

    ✎ Решение теоретическое:

N = n1 * n2 * n3 * … * nL = n L

✎ Решение с использованием программирования:

begin var n := 0; var str := 'АБВГ'; for var s1 := 1 to length(str) do for var s2 := 1 to length(str) do for var s3 := 1 to length(str) do for var s4 := 1 to length(str) do for var s5 := 1 to length(str) do begin var res := str[s1] + str[s2] + str[s3] + str[s4] + str[s4]; if (res[1]<>'Г') and (res[2]<>'Г')and (res[3]<>'Г') and (res[4]<>'Г') then n += 1; end; print(n) end.

Результат: 324

Вася составляет 4-буквенные слова, в которых есть только буквы К, О, М, А, Р, причём буква А используется в них не более 3-х раз. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, необязательно осмысленная.

Сколько существует таких слов, которые может написать Вася?

✍ Решение:

    ✎ Решение теоретическое:

N = n1 * n2 * n3 * … * nL = n L

✎ Решение с использованием программирования:

begin var n := 0; var str := 'КОМАР'; for var s1 := 1 to length(str) do for var s2 := 1 to length(str) do for var s3 := 1 to length(str) do for var s4 := 1 to length(str) do begin var res := str[s1] + str[s2] + str[s3] + str[s4]; if res.CountOf('А') <=3 then n += 1; end; print(n) end.

## var d:='комар'.Cartesian(4) .where(w->w.countOf('а')<=3).count.print

str = 'КОМАР' n = 0 for s1 in str: for s2 in str: for s3 in str: for s4 in str: res = s1 + s2 + s3 + s4 if res.count('А')<=3: n += 1 print(n)

Результат: 624

Теоретическое решение смотрите также на видео:

Сколько существует различных символьных последовательностей длины 3 в четырёхбуквенном алфавите , если известно, что одним из соседей A обязательно является D, а буквы B и C никогда не соседствуют друг с другом?

✍ Решение:

    Вспомним формулу получения количества возможных вариантов слов:

N = n1 * n2 * n3 * … * nL = n L

Результат: 29

Видеоурок демонстрирует подробное теоретическое решение задания:

Из букв С, Р, Е, Д, А составляются трехбуквенные комбинации по следующему правилу – в комбинации не может быть подряд идущих гласных и одинаковых букв.

Сколько всего комбинаций можно составить, используя это правило?

✍ Решение:

    ✎ Решение теоретическое:

✎ Решение с использованием программирования:

### 'среда'.cart(3)// .Select(w -> w.JoinToString('')) // собираем в строку; .where(w->w.Pairwise.All(\(a,b) -> a+b not in 'еае')) .where(w->w.Pairwise.All(\(a,b) -> a<>b)) .count.print

begin var n := 0; var str := 'СРЕДА'; var glas := 'ЕА'; for var s1 := 1 to length(str) do for var s2 := 1 to length(str) do for var s3 := 1 to length(str) do begin var res := str[s1] + str[s2] + str[s3]; // условие для подряд идущих гласных if not ((res[1] in glas) and (res[2] in glas) or (res[2] in glas) and (res[3] in glas)) then // условие для подряд идущих одинаковых букв if not ((res[1] = res[2]) or (res[2] = res[3])) then n += 1; end; print(n) end.

str = 'СРЕДА' glas = 'ЕА' n = 0 for s1 in str: for s2 in str: for s3 in str: res = s1 + s2 + s3 if not (s1 in glas and s2 in glas or\ s2 in glas and s3 in glas) : if not (s1 == s2 or s2 == s3) : n += 1 print(n)

Результат: 66

Дано слово КОРАБЛИКИ. Таня решила составлять новые 5-буквенные слова из букв этого слова по следующим правилам: 1) слово начинается с гласной буквы; 2) гласные и согласные буквы в слове должны чередоваться; 3) буквы в слове не должны повторяться.

Сколько существует таких слов?

✍ Решение:

    ✎ Решение теоретическое:

Результат: 72

Ксюша составляет слова, меняя местами буквы в слове МИМИКРИЯ. Сколько различных слов, включая исходное, может составить Ксюша?

    ✎ Решение с использованием программирования:

begin var str := 'МИМИКРИЯ'; var set1: set of string; set1 := []; for var s1 := 1 to length(str) do for var s2 := 1 to length(str) do for var s3 := 1 to length(str) do for var s4 := 1 to length(str) do for var s5 := 1 to length(str) do for var s6 := 1 to length(str) do for var s7 := 1 to length(str) do for var s8 := 1 to length(str) do begin var slovo := str[s1] + str[s2] + str[s3] + str[s4] + str[s5] + str[s6] + str[s7] + str[s8]; if (slovo.CountOf('М') = 2) and (slovo.CountOf('И') = 3) and (slovo.CountOf('К') = 1) and (slovo.CountOf('Р') = 1) and (slovo.CountOf('Я') = 1) then include(set1, slovo); end; print(set1.count); end.

### 'МИМИКРИЯ'.Permutations // перестановки букв .Select(w->w.JoinToString('')) // собираем в строку .Distinct // выбираем уникальные .Count.Print

Ответ: 3360

Подробное решение программным способом смотрите на видео:

Петя составляет шестибуквенные слова перестановкой букв слова АДЖИКА. При этом он избегает слов с двумя подряд одинаковыми буквами. Сколько всего различных слов может составить Петя?

    ✎ Решение теоретическое:

✎ Решение с использованием программирования:

begin var s: set of string; s := []; var str := 'АДЖИКА'; for var s1 := 1 to length(str) do for var s2 := 1 to length(str) do for var s3 := 1 to length(str) do for var s4 := 1 to length(str) do for var s5 := 1 to length(str) do for var s6 := 1 to length(str) do begin var res := str[s1] + str[s2] + str[s3] + str[s4] + str[s5] + str[s6]; if (res.CountOf('А') = 2) and (res.CountOf('Д') = 1) and (res.CountOf('Ж') = 1) and (res.CountOf('И') = 1) and (res.CountOf('К') = 1) then if (res[1] <> res[2]) and (res[2] <> res[3]) and (res[3] <> res[4]) and (res[4] <> res[5]) and (res[5] <> res[6]) then include(s, res); end; print(s.count) end.

### 'аджика'.Permutations .Select(w -> w.JoinToString('')) // собираем в строку; .distinct // исключаем дубли .where(s -> not ('аа' in s)) // исключаем две подряд буквы 'а' .count.pr

Ответ: 240

Маша составляет 7-буквенные коды из букв В, Е, Н, Т, И, Л, Ь. Каждую букву нужно использовать ровно 1 раз, при этом код буква Ь не может стоять на последнем месте и между гласными. Сколько различных кодов может составить Маша?

    ✎ Решение теоретическое:

✎ Решение с использованием программирования: Стоит заметить, что теоретическое решение занимает меньше времени, чем программный способ!