Все 5-буквенные слова, составленные из букв Б, К, Ф, Ц, записаны в алфавитном порядке и пронумерованы. Вот начало списка:
1. БББББ
2. ББББК
3. ББББФ
4. ББББЦ
5. БББКБ
...
Запишите слово, которое стоит на 239-м месте от начала списка.
Заменим буквы Б, К, Ф, Ц, на 0, 1, 2, 3 (для них порядок очевиден — по возрастанию).
Выпишем начало списка, заменив буквы на цифры:
1. 00000
2. 00001
3. 00002
4. 00003
5. 00010
...
Полученная запись есть числа, записанные в четверичной системе счисления в порядке возрастания. Тогда на
238 / 4 = 59 (2)
59 / 4 = 14 (3)
14 / 4 = 3 (2)
3 / 4 = 0 (3)
В четверичной системе 238 запишется как 03232 (ноль приписали слева, потому что все слова 5-буквенные, значит, и символов должно быть пять). Произведём обратную замену и получим БЦФЦФ.
Ответ: БЦФЦФ.
Приведём решение на языке 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 == 239:
print(a[i], a[j], a[g], a[m], a[n], end=" ")
Приведём решение Бориса Савельева на языке Python.
from itertools import*
s = product('БКФЦ',repeat=5)
count = 1
for i in s:
p=''.join(i)
if count == 239:
print(p)
count += 1

