Все 4-буквенные слова, в составе которых могут быть буквы Т, О, С, П, записаны в определённом порядке и пронумерованы, начиная с 1. Ниже приведено начало списка.
1. ТТТТ
2. ТТТО
3. ТТТС
4. ТТТП
5. ТТОТ
Сколько слов между словами “СТОП” и “ПОСТ”?
Решение руками:
Исходя из порядка букв в списке, присвоим им следующие коды: Т — 0, О — 1, С — 2, П — 3. Тогда первое слово — 0000, второе — 0001 и т.д. Слово “ПОСТ” , будет кодироваться как 3120, а слово “СТОП” будет кодироваться как 2013. Т.к. для кодирования слов потребовалось всего 4 разные буквы, то коды будут представлены в четверичной системе счисления. Вычтем код слова “ПОСТ” из кода слова “СТОП” и получим следующее:
Разница номеров слов составляет а значит между ними ровно 80 слов (т.к. при вычитании номеров мы учитываем на одно слово больше).
Решение Python:
from itertools import *
t = product(’ТОСП’, repeat = 4)
c, res1, res2 = 0, 0, 0
for i in t:
s = ’’.join(i)
c += 1
if s == ’СТОП’:
res1 = c
if s == ’ПОСТ’:
res2 = c
print(abs(res2-res1)-1)
Решение Python:
alf = ’ТОСП’
c = 0
res1, res2 = 0, 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 == ’СТОП’:
res1 = c
if s == ’ПОСТ’:
res2 = c
print(abs(res2-res1)-1)