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

Ти­мо­фей со­став­ля­ет 5-⁠бук­вен­ные коды из букв Т, И, М, О, Ф, Е, Й. Буква Й может ис­поль­зо­вать­ся в коде не более од­но­го раза, при этом она не может сто­ять на пер­вом месте, на по­след­нем месте и рядом с бук­вой И. Все осталь­ные буквы могут встре­чать­ся про­из­воль­ное ко­ли­че­ство раз или не встре­чать­ся со­всем. Сколь­ко раз­лич­ных кодов может со­ста­вить Ти­мо­фей?

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

Ре­ше­ние.

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

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

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

Таким об­ра­зом, всего воз­мож­ных слов 2700 + 7776  =  10476.

 

Ответ: 10476.

 

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

import itertools

alphabet = "ТИ­МО­ФЕЙ"

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

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)

 

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

from itertools import product

s=product('ТИ­МО­ФЕЙ', repeat =5)

k=0

for i in s:

p=''.join(i)

if p.count('Й')<=1 and p[0]!='Й' and p[-1]!='Й' and p.count('ИЙ')==0 and p.count('ЙИ')==0:

k+=1

print(k)


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

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