Все пятибуквенные слова, составленные из букв В, Я, З, Ь, записаны в алфавитном порядке и пронумерованы, начиная с 1. Ниже приведено начало списка:
- ВВВВВ
- ВВВВЗ
- ВВВВЬ
- ВВВВЯ
-
ВВВЗВ
….
Какое слово стоит под номером 947?
Решение руками
Заменим буквы на цифры: В – 0, З – 1, Ь – 2, Я – 3. Получим новый список:
- 00000
- 00001
- 00002
- 00003
-
00010
….
Порядковый номер слова всегда больше на единицу, поэтому число переведём в четверичную систему счисления. Получается, что
=
. Под номером 947 стоит слово ЯЬЯВЬ.
Решение Python:
# Решение 1
s = ’ВЗЬЯ’
n = 1
ans = ’’
for x1 in s:
for x2 in s:
for x3 in s:
for x4 in s:
for x5 in s:
w = x1 + x2 + x3 + x4 + x5
if n == 947:
ans = w
n += 1
print(ans)
# Решение 2
from itertools import product
s = ’ВЗЬЯ’
n = 1
ans = ’’
for x in product(s, repeat=5):
w = ’’.join(x)
if n == 947:
ans = w
break
n += 1
print(ans)
Ответ: ЯЬЯВЬ