Все 4-буквенные слова, в составе которых могут быть буквы А, Й, Т, Б, записаны в определённом порядке и пронумерованы, начиная с 1. Ниже приведено начало списка.
1. АААА
2. АААЙ
3. АААТ
4. АААБ
5. ААЙА
Под каким номером в списке идёт слово “БАЙТ”?
Решение руками:
Исходя из порядка букв в списке, присвоим им следующие коды: А — 0, Й — 1, Т — 2, Б — 3. Тогда первое слово — 0000, второе — 0001 и т.д. Слово “БАЙТ” будет кодироваться как 3012. Т.к. для кодирования слова потребовалось всего 4 разных букв, то код будет представлен в четверичной системе счисления. В десятичной системе счисления код слова “БАЙТ” будет принимать значение Тогда в самом списке слово “БАЙТ” будет идти под номером 199, т.к. отсчёт кодов начинается с нуля (1. АААА = 0, 2. АААЙ = 1 и т.д.)
Решение Python:
from itertools import *
t = product(’АЙТБ’, repeat=4)
c = 0
for i in t:
s = ’’.join(i)
c += 1
if s == ’БАЙТ’:
print(c)
Решение Python:
alf = ’АЙТБ’
c = 0
for i in alf:
for j in alf:
for k in alf:
for l in alf:
s = i + j + k + l
c += 1
if s == ’БАЙТ’:
print(c)
break