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

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

Ответ: КККУК

Условие

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

1. ААААА

2. ААААК

3. ААААР

4. ААААУ

5. АААКА

...

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

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

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

Решение

Заменим буквы А, К, Р, У на 0, 1, 2, 3 соответственно (для них порядок очевиден — по возрастанию).

Выпишем начало списка, заменив буквы на цифры:

1. 00000

2. 00001

3. 00002

4. 00003

5. 00010

...

Полученная запись есть числа, записанные в четверичной системе счисления в порядке возрастания. Тогда на 350-⁠м месте будет стоять число 349 (так как первое число — 0). Переведём число 349 в четверичную систему (деля и снося остаток справа налево):

349 / 4 = 87 (1)

87 / 4 = 21 (3)

21 / 4 = 5 (1)

5 / 4 = 1 (1)

1 / 4 = 0 (1)

В четверичной системе 349 запишется как 11131. Произведём обратную замену и получим КККУК.

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

Приведём другое решение на языке 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)):

for n in range(0, len(a)):

k += 1

if k == 350:

print(a[i], a[j], a[g], a[m], a[n], end=" ")

Приведём решение Владимира Артамонова на языке Python.

from itertools import product

words = product('АКРУ', repeat=5)

print(*list(words)[349])

Приведём решение Юрия Красильникова на языке Python.

from itertools import product

print([''.join(p) for p in product('АКРУ', repeat=5)][350-1])

Приведём решение Сергея Донец на языке PascalABC.NET.

begin

'А, К, Р, У, '.Remove(', ')

.Sorted.Cartesian(5).Numerate

.Where(\(n,s)->n=350)

.First.Item2.Print;

end.

Типичные ошибки

Решить это задание в тренажёре

В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №8 по информатике