Задачи на кодирование, решаемые с применением недесятичных систем счисления - Системы счисления

Информатика: Новый полный справочник для подготовки к ЕГЭ - 2018 год

Задачи на кодирование, решаемые с применением недесятичных систем счисления - Системы счисления

Конспект

Система счисления — знаковая система, позволяющая по определенным правилам записывать числа при помощи символов некоторого алфавита.

Как правило, символами алфавита системы счисления являются десятичные цифры. Однако это — лишь результат общепринятой договорённости; формально такими символами могут быть любые знаки, в том числе произвольные буквы (пример — использование латинских букв от А до F в качестве цифр шестнадцатеричной системы счисления).

Примеры наиболее часто используемых систем счисления:

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

Основание (Р)

Алфавит системы счисления

Пример записи числа

Двоичная

2

0, 1

1011012

Восьмеричная

8

0, 1, 2, 3, 4, 5, 6, 7

123458

Десятичная

10

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

123410

Шестнадцатеричная

16

0, 1,2, 3,4,5, 6, 7, 8, 9,

А (=10), В (=11), С (=12), D (=13), Е (=14), F (=15)

F4D916

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

Для решения приведённых ниже задач необходимо уметь выполнять перевод чисел из десятичной системы счисления в троичную и обратно.

Перевод числа из троичной системы счисления в десятичную осуществляется путём выполнения вычислений по развёрнутой записи исходного числа.

Пример. Требуется перевести в десятичную систему счисления число 120213:

Перевод целого десятичного числа в троичную систему счисления выполняется путём последовательного деления с остатком числа на основание системы счисления (3) с последующей записью полученного результата и остатков на каждом шаге деления в порядке, обратном порядку их получения. Деление производится до тех пор, пока полученный на очередном шаге результат не будет меньше основания системы счисления.

Пример: требуется перевести число 1234510 в троичную систему счисления:

image61

В результате: 1234510 = 1212210203.

Разбор типовых задач

Задача 1.

Все 5-буквенные слова, составленные из букв А, О, У, записаны в алфавитном порядке.

Вот начало списка:

1. ААААА

2. ААААО

3. ААААУ

4. АААОА

... ...

Запишите слово, которое стоит на 240-м месте от начала списка.

Решение

Поскольку слова начинаются с букв А и их список начинается с ААААА, а далее идут слова ААААО, ААААУ, АААОА и т.д., буквы А, О, У сопоставляются цифрам: А - 0, O - 1, У - 2. В результате исходная задача сводится к следующей:

Все 5-значные числа, составленные из цифр 0, 1, 2, записаны в порядке возрастания. Вот начало списка:

1. 00000

2. 00001

3. 00002

4. 00010

... ...

Какое число стоит на 240-м месте в списке?

Чтобы определить число, стоящее в списке на 240-й позиции, нужно учесть “рассогласование” между значениями чисел и их порядковыми номерами в списке:

• последовательность чисел начинается с значения 000003 = 010;

• нумерация чисел в списке начинается с единицы. Тогда для определения числа, стоящего в 240-й позиции, составляется следующее соответствие:

Порядковый номер

Значение числа

1

0

240

(240 - 1)

Очевидно, что на 240-м месте в списке стоит десятичное число 239 (так как значение числа на 1 меньше, чем порядковый номер).

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

image62

В результате, на 240-м месте в списке находится пятиразрядное троичное число 22212.

Преобразуя это число к записи слова, кодируемого буквами А, О, У по правилу соответствия: А-0, O-1, У-2, получается слово: УУУОУ.

Ответ: УУУОУ.

Задача 2.

Все 5-буквенные слова составлены из букв К, О, Т. Вот начало списка:

1. ТТТОК

2. ТТТКT

3. ТТТКО

4. ТТТКК

5. ТТОТТ

... ...

На каком месте списка находится слово КОТОК?

Решение

В приведённом списке после слова ТТТОК идёт слово ТТТКТ, потом ТТТКО, затем — ТТТКК и ТТОТТ. Тогда сопоставив буквы К, О, Т цифрам: Т-0, O-1, К-2, условие задачи переписывается в виде:

Все 5-значные числа составлены из цифр 0, 1, 2. Вот начало списка:

1. 00012

2. 00020

3. 00021

4. 00022

5. 00100

... ...

На каком месте списка находится число 21012?

Число 21012 записано в троичной системе счисления. После преобразования его в десятичное:

Чтобы определить номер позиции в списке для числа 192, учитывается “рассогласование” между значениями чисел и их порядковыми номерами в списке:

• последовательность чисел начинается с 123 = 5;

• нумерация чисел в списке начинается с единицы. Для определения номера позиции числа 192 составляется соответствие:

Порядковый номер

Значение числа

1 (= 5 – 4)

5

(192 - 4)

192

Очевидно, что десятичное число 192 будет стоять в списке на 188-м месте (так как значение числа на 4 больше, чем порядковый номер).

Ответ: на 188-м месте.

Задача 3.

Сколько существует различных символьных последовательностей длины 5 в трёхбуквенном алфавите {К, О, Т}, которые содержат ровно две буквы О?

Решение (способ 1)

Задача подобна предыдущим и принцип её решения будет во многом аналогичным — путём “перевода” букв в цифры соответствующей системы счисления и работы с полученными числами.

1) Поскольку никаких слов изначально не задано, мы можем сами “назначить” цифры, соответствующие каждой букве. А поскольку букв в алфавите три, мы имеем дело с троичной системой счисления и выберем следующие соответствия букв и цифр:

O - 0, К - 1, Т - 2.

(Мы выбрали нуль именно для буквы О, так как нам понадобится искать слова, содержащие ровно две буквы О, а с нулями это окажется проще.)

2) Итак, речь идёт об определении количества пятиразрядных троичных чисел (причём незначащие нули слева важны!), содержащих ровно два нуля.

3) Первый нуль может быть в одной из 5 позиций — получаем 5 вариантов.

В каждом из этих вариантов второй нуль может располагаться так:

• когда первый нуль находится в позиции “1”, второй нуль может располагаться в одной из 4 оставшихся позиций— “2”, “3”, “4”, “5”;

• когда первый нуль находится в позиции “2”, второй нуль может располагаться в одной из 3 оставшихся позиций правее — “3”, “4” и “5” (ведь ситуацию, когда нули располагаются в позициях “1” и “2”, мы уже рассмотрели перед этим);

• когда первый нуль находится в позиции “3”, второй нуль может располагаться в одной из 2 оставшихся позиций правее — “4” и “5” (почему, — рассмотрено выше);

• когда первый нуль находится в позиции “4”, второй нуль может располагаться только в 1 позиции правее — “5”.

Итого получаем 4 + 3 + 2 + 1 = 10 вариантов размещения в пятиразрядном числе двух нулей.

Возможны и другие рассуждения, приводящие к тому же результату.

Условно обозначим наши нули разными цветами: например, первый — синим, а второй — красным.

Тогда синий нуль можно разместить в пяти разрядах — получаем 5 вариантов. И в каждом из этих пяти вариантов красный нуль можно разместить в любой из оставшихся четырёх позиций — т.е. по четырём вариантам. Значит, всего получаем 5 ∙ 4 = 20 вариантов размещения наших разноцветных нулей.

Но теперь вспомним, что на самом деле оба нуля (синий и красный) — совершенно равноправны. А значит, пары “синий — красный” и “красный — синий” (если читать число слева направо) — это одни и те же пары. Следовательно, каждая такая пара посчитана дважды, и всего вариантов размещения в пятиразрядном числе двух одинаковых нулей будет 10.

4) Итак, существует 10 вариантов размещения в числе двух нулей. В каждом из этих 10 вариантов остаётся три цифры, которые могут быть равны или 1, или 2.

Сколько может быть таких неповторяющихся комбинаций? Очевидно, столько, сколько может быть различных трёхразрядных чисел в системе счисления, состоящей из двух цифр (т.е. двоичной). Значит, для каждого из 10 ранее найденных вариантов получается 23 = 8 “подвариантов”.

Количество различных n-разрядных чисел в системе счисления с основанием т определяется по формуле: mn (основание системы счисления, возведенное в степень, равную числу разрядов).

Тогда общее число троичных чисел, в которых из пяти цифр ровно две — нулевые, будет равно 8 ∙ 10 = 80.

Решение (способ 2)

Другой возможный способ решения — использование формул комбинаторики.

1) В последовательности из 5 букв должно быть две буквы О и, соответственно, три других буквы. Сначала ищем количество перестановок с повторениями из двух букв О и трёх произвольных букв (обозначим их символом “#”).

Формула для вычисления количества перестановок с повторениями:

где n — общее количество букв в слове, n1 — количество обязательных букв (в данном случае — букв О), n2 — количество прочих букв (т.е. знаков #). Знак “I” обозначает вычисление факториала (произведение всех натуральных чисел от 1 до n:

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

2) В остальных трёх позициях слова (кроме тех, что заняты двумя буквами О) может стоять любая из двух оставшихся букв — К или Т. Следовательно, нужно вычислить количество всех возможных трёхбуквенных слов, состоящих из двух возможных букв.

Такое трёхбуквенное слово можно рассматривать как трёхразрядное число, которое представлено в системе счисления с основанием 2 (так как в алфавите этой “системы счисления” всего две “цифры” — К и Т). Тогда количество таких слов совпадает с количеством возможных различных трёхразрядных двоичных чисел. А оно равно 23 = 8.

Количество различных n-разрядных чисел в системе счисления с основанием m определяется по формуле: mn (основание системы счисления, возведенное в степень, равную числу разрядов).

Ответ: 80.

Задача 4.

Составляется таблица кодовых слов для передачи сообщений, где каждому сообщению должно быть сопоставлено отдельное кодовое слово из 4 букв. В этих кодовых словах можно использовать только пять букв: “Л”, “О”, “Г”, “И”, “К”, при этом буква “Л” может быть использована ровно один раз, а все остальные буквы могут встречаться в кодовом слове сколько угодно раз (или отсутствовать).

Сколько различных кодовых слов можно получить по этой таблице?

Решение

1. Выпишем все возможные варианты 4-буквенных кодовых слов с ровно одной буквой “Л”: Л***, *Л**, **Л* или ***Л (где * обозначает любые другие буквы). Получили 4 возможных варианта.

2. Вариантов распределения четырёх оставшихся в нашем алфавите букв в трёх позициях кодовых слов столько же, сколько возможно трёхзначных чисел в системе счисления с основанием 4, т.е. 43 = 64.

3. Тогда всего возможных кодовых слов: 4 ∙ 64 = 256.

Ответ: 256.






Для любых предложений по сайту: [email protected]