Задание №8 ЕГЭ Информатика с ответом и решением
Ответ: ЛККР
Условие
Все 4-буквенные слова, составленные из букв К, Л, Р, Т, записаны в алфавитном порядке и пронумерованы.
Вот начало списка:
1. КККК
2. КККЛ
3. КККР
4. КККТ
...
Запишите слово, которое стоит под номером 67.
Подсказки — как подойти к решению
- Алфавитный список слов фиксированной длины — это запись всех чисел подряд в системе счисления, основание которой равно количеству различных букв в условии.
- Замени буквы цифрами в порядке алфавита, тогда номер слова однозначно связан с его цифровым кодом, но не забудь про сдвиг: слово под номером один кодируется нулями.
- Переведи нужное число в систему счисления по числу букв, проверь, что разрядов столько же, сколько букв в слове (недостающие нули дописываются слева, а старшинство разрядов не путается), и замени цифры обратно буквами.
Решение
Заменим буквы К, Л, Р, Т на 0, 1, 2, 3.
Выпишем начало списка, заменив буквы на цифры:
1. 0000
2. 0001
3. 0002
4. 0003
...
Полученная запись есть числа, записанные в четверичной системе счисления в порядке возрастания. Тогда на 67 месте будет стоять число 66 (так как первое число — 0). Переведём число 66 в четверичную систему:
6610 = 1 · 43 + 0 · 42 + 0 · 41 + 2 = 10024.
В четверичной системе 66 запишется как 1002. Произведём обратную замену и получим ЛККР.
Ответ: ЛККР.
Приведём другое решение на языке Python.
a = {0: "К", 1: "Л", 2: "Р", 3: "Т"}
k = 0
for i in range(0, len(a)):
for j in range(0, len(a)):
for g in range(0, len(a)):
for m in range(0, len(a)):
k += 1
if k == 67:
print(a[i], a[j], a[g], a[m], end=" ")
Приведём решение Владимира Артамонова на языке Python.
from itertools import product
words = list(product('КЛРТ', repeat=4))
print(*words[66])
Приведём решение Юрия Красильникова на языке Python.
from itertools import product
print([''.join(p) for p in product('КЛРТ', repeat=4)][67-1]))
Приведём решение Сергея Донец на языке PascalABC.NET.
begin
'К, Л, Р, Т, '.Remove(', ')
.Sorted.Cartesian(4).Numerate
.Where(\(n,s)->n=67)
.First.Item2.Print;
end.
Типичные ошибки
- Использован сам номер слова вместо числа на единицу меньшего: первый элемент списка кодируется нулями, поэтому из номера нужно вычитать единицу.
- Разряды записаны в обратном порядке: при делении с остатком остатки собираются от младшего разряда к старшему, то есть справа налево.
В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №8 по информатике