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

Ан­дрей со­став­ля­ет 6-⁠бук­вен­ные коды из букв А, Н, Д, Р, Е, Й. Буква Й может ис­поль­зо­вать­ся в коде не более од­но­го раза, при этом она не может сто­ять на пер­вом месте, на по­след­нем месте и рядом с бук­вой Е. Все осталь­ные буквы могут встре­чать­ся про­из­воль­ное ко­ли­че­ство раз или не встре­чать­ся со­всем. Сколь­ко раз­лич­ных кодов может со­ста­вить Ан­дрей?

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

Ре­ше­ние.

За­ме­тим, что буква Й может встре­чать­ся в слове не более од­но­го раза или не встре­чать­ся со­всем. Рас­смот­рим два слу­чая.

Пусть буква Й стоит на вто­ром месте. Тогда, по­сколь­ку на со­сед­них по­зи­ци­ях не может сто­ять буква Е, ко­ли­че­ство воз­мож­ных слов равно 4 · 1 · 4 · 5 · 5 · 5. Также буква Й может сто­ять на тре­тьем, четвёртом и пятом месте. Зна­чит, всего слов, в ко­то­рых ис­поль­зу­ет­ся буква Й, 4 · 1 · 4 · 5 · 5 · 5 · 4  =  8000.

Если буква Й не ис­поль­зу­ет­ся, ко­ли­че­ство воз­мож­ных слов равно 5 · 5 · 5 · 5 · 5 · 5  =  15625.

Таким об­ра­зом, всего воз­мож­ных слов 8000 + 15625  =  23625.

 

Ответ: 23625.

 

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

import itertools

alphabet = "АН­ДРЕЙ"

ar = itertools.product(alphabet, repeat=6) #Раз­ме­ще­ние с по­вто­ре­ни­я­ми

arl = []

for i in ar:

arl.append(list(i))

count = 0

for e in arl:

flag = True

for i in range(len(e) - 1):

if e.count('Й') > 1 or e[0] == 'Й' or e[-1] == 'Й' or (e[i] == 'Й' and e[i + 1] == 'Е') or (e[i + 1] == 'Й' and e[i] == 'Е'):

flag = False

if flag == True: count += 1

print(count)


Аналоги к заданию № 33180: 33478 Все

Раздел кодификатора ФИПИ: 1.6.1 Фор­ма­ли­за­ция по­ня­тия ал­го­рит­ма