В автобусе 50 мест, которые обычно нумеруются числами от 1 до 50. Вышло новое...

0 голосов
17 просмотров

В автобусе 50 мест, которые обычно нумеруются числами от 1 до 50. Вышло новое распоряжение, согласно которому код места не должен содержать цифр, а может состоять только из букв А, Б, В и Г. Предложите способ кодирования номера места, так чтобы все коды были одинаковой (минимально возможной) длины и сохранялся порядок сортировки: если записать новые буквенные коды по алфавиту, соответствующие «старые номера» этих мест должны быть расположены по возрастанию. Как бы вы закодировали номер места 49? В ответе приведите код и опишите принцип.


Информатика (29 баллов) | 17 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

По распоряжению алфавит должен состоять из четырех символов; А, Б, В. Г, поэтому запись любого числа с помощью этого алфавита - это его представление в системе счисления по основанию 4.
Чтобы лучше понять эту идею, вспомним привычную нам запись чисел - десятичную. Она называется десятичной потому, что для записи чисел в ней используются десять знаков - от 0 до 9. Знаков десять и в соответствии с этим числа, ими записанные представляются в десятичной системе счисления. А если у нас таких знаков только восемь - от 0 до 7? Совершенно верно, это алфавит восьмеричной системы счисления. А если только два знака в алфавите - 0 и 1? Да, мы приходим к той самой двоичной системе.

Теперь, когда мы обосновали выбор системы счисления по основанию 4. посмотрим, сколько разрядов нам надо для представления самого большого из требуемых чисел - числа 49. Почему 49, а не 50, ведь мест 50? Да, мест 50, но они нумеруются от 1 до 50, а мы будем их кодировать числами от 0 до 49. Для "экономии" - чего нулю пропадать даром?
Переводим 49 в систему счисления по основанию 4. Тем самым способом: делим на основание системы, пока есть что делить, т.е. пока не получим 0 в целой части.
49 / 4 = 12 и 1 в остатке.
12 / 4 = 3 и 0 в остатке
3 / 4 = 0 и остаток 3.
А теперь записываем остатки в обратном порядке: 301.
Итак, 49₁₀ = 301₄
Следовательно, нам достаточно иметь три разряда для записи номера любого места.
Осталось вспомнить, что вместо цифр 0,1,2,3 (а именно они составляют алфавит системы счисления по основанию четырые) мы должны писать буквы, да еще и в алфавитном порядке. Ну и ладно, тогда пусть так будет:
А - 0, Б - 1, В-2, Г-3. И наш максимальный номер 49₁₀ = 301₄ запишется в виде ГАБ.
А как закодировать место 49? Оно лишь на 1 меньше, чем максимальное 50, но 50 это у нас 301₄. отнимем 1 и получим 300₄, которое кодируется как ГАА. Это и есть ответ.

(142k баллов)
0

Оч. жаль, что удален мой ответ. А ведь он правильный . В УМК К.Полякова (профильный уровень) именно так прописан ход решения подобных задач.  Не будем перечить умным людям.

0

Так - это как? Кодировать четырьмя символами там, где достаточно трёх?

0

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