Все 6-буквенные слова, составленные из букв Б, К, Ф, записаны в алфавитном порядке и пронумерованы. Вот начало списка:
1. ББББББ
2. БББББК
3. БББББФ
4. ББББКБ
...
Запишите слово, которое стоит на 345-м месте от начала списка.
Заменим буквы Б, К, Ф на 0, 1, 2 (для них порядок очевиден — по возрастанию).
Выпишем начало списка, заменив буквы на цифры:
1. 000000
2. 000001
3. 000002
4. 000010
...
Полученная запись есть числа, записанные в троичной системе счисления в порядке возрастания. Тогда на
344 / 3 = 114 (2)
114/ 3 = 38 (0)
38 / 3 = 12 (2)
12 / 3 = 4 (0)
4 / 3 = 1 (1)
1 / 3 = 0 (1)
В троичной системе 344 запишется как 110202. Произведём обратную замену и получим ККБФБФ.
Ответ: ККБФБФ.
Приведём решение на языке Python.
a = {0: "Б", 1: "К", 2: "Ф"}
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)):
for l in range(0, len(a)):
k += 1
if k == 345:
print(a[i], a[j], a[g], a[m], a[n], a[l], end=" ")
Приведём решение Бориса Савельева на языке Python.
from itertools import product
s = product('БКФ' , repeat = 6)
k = 1
for i in s:
p = ''.join(i)
if k == 345:
print(p)
k += 1
Приведём решение Степана Постникова на языке Python.
from itertools import *
p =[a for a in product('БКФ',repeat = 6)]
print(*p[344])

