πЕГЭ · ИИ-репетитор12 предметов · задания ФИПИ
Главная → Информатика → Задания №8 → Задание i08-02

Задание №8 ЕГЭ Информатика с ответом и решением

Ответ: ЛККР

Условие

Все 4-⁠буквенные слова, составленные из букв К, Л, Р, Т, записаны в алфавитном порядке и пронумерованы.

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

1. КККК

2. КККЛ

3. КККР

4. КККТ

...

Запишите слово, которое стоит под номером 67.

Подсказки — как подойти к решению

  1. Алфавитный список слов фиксированной длины — это запись всех чисел подряд в системе счисления, основание которой равно количеству различных букв в условии.
  2. Замени буквы цифрами в порядке алфавита, тогда номер слова однозначно связан с его цифровым кодом, но не забудь про сдвиг: слово под номером один кодируется нулями.
  3. Переведи нужное число в систему счисления по числу букв, проверь, что разрядов столько же, сколько букв в слове (недостающие нули дописываются слева, а старшинство разрядов не путается), и замени цифры обратно буквами.

Решение

Заменим буквы К, Л, Р, Т на 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 по информатике