Все 5-буквенные слова, составленные из букв А,Б,В, записаны в алфавитном порядке. Вот начало списка:
1. ААААА
2. ААААБ
3. ААААВ
4. АААБА
…..
Запишите слово, которое стоит под номером 167.
Решение Python:
from itertools import *
c = 0
for i in product(’АБВ’, repeat = 5):
s = ’’.join(i)
c += 1
if c == 167:
print(s)
Решение руками:
Заменим буквы на цифры: А — 0, Б — 1, В — 2.
Теперь запишем 5-буквенные слова в новом алфавите.
1. 00000
2. 00001
3. 00002
4. 00010
…..
Полученный ряд — числа в троичной системе счисления, записанные по возрастанию. Так как порядковый номер слова всегда на единицу больше, чем само слово, то переведем 166 в троичную систему счисления: .
Значит на 167 месте стоит слово ВААББ.
Решение Python:
s = ’АБВ’
k = 0
for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
w = a+b+c+d+e
k += 1
if k == 167:
print(w)