Задания
Версия для печати и копирования в MS Word
Тип 8 № 73834
i

Джон со­став­ля­ет спи­сок всех воз­мож­ных кодов, со­став­лен­ных из за­глав­ных ла­тин­ских букв. Сна­ча­ла он вы­пи­сы­ва­ет в ал­фа­вит­ном по­ряд­ке все коды, со­сто­я­щие из од­но­го сим­во­ла (A, B, ..., Z), затем  — тоже в ал­фа­вит­ном по­ряд­ке  — коды из двух сим­во­лов (AA, AB, ..., AZ, BA, BB, ... ZZ), далее идут трёхсим­воль­ные коды (AAA, AAB, ..., ZZZ) и так далее. Под каким но­ме­ром ока­жет­ся в этом спис­ке код FEDABC?

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

from itertools import product

 

count = 1

alf = sorted('QWERTYUIOPASDFGHJKLZXCVBNM')

for n in range(1,7):

for i in product(alf,repeat = n):

if "".join(i)=="FEDABC":

print(count)

break

count += 1

 

 

Ответ: 73644171.

 

При­ведём дру­гое ре­ше­ние на языке Python.

count = 0

# на­хо­дим код край­не­го эле­мен­та из пяти сим­во­лов (ZZZZZ)

for x in range(1, 6):

count += 26 ** x

# де­ла­ем по­прав­ку на номер

count += 1

# пе­ре­во­дим це­поч­ку "FEDABC" в чис­ло­вой код и при­бав­ля­ем его к те­ку­ще­му зна­че­нию

count += int("543012", 26)

print(count)

 

 

При­ведём ре­ше­ние Бо­ри­са Са­ве­лье­ва на языке Python.

from itertools import product

s = product('ABCDEFGHIJKLMNOPQRSTUVWXYZ',repeat = 6)

k = 26+26**2+26**3+26**4+26**5+1

for i in s:

p = ''.join(i)

if p == 'FEDABC':

print(k)

break

k += 1

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

m = 0

for c in 'FEDABC':

m = m*26 + ord(c) - ord('A')

print(sum(26**i for i in range(1,6)) + m+1)