Все 5-буквенные слова, составленные из букв Я, Г, О, Д, А, записаны в алфавитном порядке. Вот начало списка:
1. ААААА
2. ААААГ
3. ААААД
4. ААААО
5. ААААЯ
6. АААГА
…..
Под каким номером в списке идёт последнее слово, которое содержит хотя бы одну букву Я и одну букву Д?
Решение руками:
Заменим буквы на цифры: А — 0, Г — 1, Д — 2, О — 3, Я – 4.
Теперь запишем 5-буквенные слова в новом алфавите.
1. 00000
2. 00001
3. 00002
4. 00003
5. 00004
6. 00010
…..
Полученный ряд — числа в пятиричной системе счисления, записанные по возрастанию.
Последнее слово, которое содержит хотя бы одну букву Я и одну букву Д будет выглядеть так ЯЯЯЯД в пятиричной системе выглядит так — .
Переводим в десятичную систему счисления: .
Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 3123.
Решение Python:
from itertools import *
c = 0
arr = []
for i in product(’АГДОЯ’, repeat = 5):
s = ’’.join(i)
c += 1
if s.count(’Я’) >= 1 and s.count(’Д’) == 1:
arr.append(c)
print(arr[-1])
Решение Python:
alf = ’АГДОЯ’
c = 0
arr = []
for i in alf:
for j in alf:
for k in alf:
for l in alf:
for m in alf:
s = i + j + k + l + m
c += 1
if s.count(’Я’) >= 1 and s.count(’Д’) == 1:
arr.append(c)
print(arr[-1])