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

Мит­ро­фан со­став­ля­ет коды из букв, вхо­дя­щих в слово МИТ­РО­ФАН. Код дол­жен со­сто­ять из 6 букв, буквы в коде не долж­ны по­вто­рять­ся, со­глас­ных в коде долж­но быть боль­ше, чем глас­ных, две глас­ные буквы нель­зя ста­вить рядом. Сколь­ко кодов может со­ста­вить Мит­ро­фан?

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

Ре­ше­ние.

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

Имеем 5 со­глас­ных и 3 глас­ных. По­это­му наше слово может со­дер­жать либо одну, либо две глас­ные (если глас­ных три, то со­глас­ных тоже три, что про­ти­во­ре­чит усло­вию).

 

Под­счи­та­ем К1  — ко­ли­че­ство слов, со­дер­жа­щих одну глас­ную. Вы­би­ра­ем одну глас­ную из трех и пять со­глас­ных из пяти, число спо­со­бов  — 3. Умно­жа­ем на число пе­ре­ста­но­вок. К1  =  3 · 6!=2160.

Под­счи­та­ем К2  — ко­ли­че­ство слов, со­дер­жа­щих две глас­ные. Вы­би­ра­ем две глас­ные из трех и че­ты­ре со­глас­ных из пяти, число спо­со­бов  — 3 · 5  =  15. Умно­жа­ем на число пе­ре­ста­но­вок. К2  =  15 · 6!  =  10800.

Под­счи­та­ем К2р  — ко­ли­че­ство слов с двумя глас­ны­ми, где они стоят рядом. Из трех глас­ных А, И, О можно об­ра­зо­вать шесть пар: АИ, ИА, АО, ОА, ИО, ОИ. Вы­би­ра­ем 4 со­глас­ных из пяти, число спо­со­бов это сде­лать  — 5. Пе­ре­став­ля­ем че­ты­ре со­глас­ных и пару глас­ных (пару  — как еди­ное целое). К2р  =  6 · 5 · 5!  =  3600.

 

Число слов  — это К1 + К2 − К2р  =  2160 + 10800 − 3600  =  9360.

 

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

s = 'МИТ­РО­ФАН'

count = 0

for a in s:

for b in s:

for c in s:

for d in s:

for e in s:

for f in s:

s1 = a + b + c + d + e + f

if s1.count('М') <= 1 and s1.count('И') <= 1 and s1.count('Т') <= 1 and \

s1.count('Р') <= 1 and s1.count('О') <= 1 and s1.count('Ф') <= 1 and \

s1.count('А') <= 1 and s1.count('Н') <= 1 and \

s1.count('М') + s1.count('Т') + s1.count('Р') + s1.count('Ф') +s1.count('Н') > s1.count('И') + s1.count('О') + s1.count('А') and \

s1.count('АА') == 0 and s1.count('АИ') == 0 and s1.count('АО') == 0 and s1.count('ИА') == 0 and s1.count('ОА') == 0 and s1.count('ИО') == 0 and \

s1.count('ОИ') == 0 and s1.count('ОО') == 0 and s1.count('ИИ') == 0:

count += 1

print(count)

 

Ответ: 9360.

 

При­ведём ре­ше­ние Софии Ра­за­е­вой на языке Python.

from itertools import *

k = k1 = k2 = 0

c1 = 'ИОА'

c2 = 'МТРФН'

for p in permutations('МИТ­РО­ФАН', 6):

s = ''.join(p)

k1, k2 = 0, 0

k1 += (s[0] in c1)

k2 += (s[0] in c2)

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

k1 += (s[i+1] in c1)

k2 += (s[i+1] in c2)

if s[i] in c1 and s[i+1] in c1:

break

else:

if k2 > k1:

k += 1

print(k)

 

 

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

from itertools import *

cnt = 0

for p in permutations('МИТ­РО­ФАН', r=6):

slovo = ''.join(p)

sogl = [x for x in slovo if x in 'МТРФН']

glas = [x for x in slovo if x in 'ИОА']

if len(sogl) > len(glas):

slovo = slovo.replace('О', 'А').replace('И', 'А')

if 'АА' not in slovo:

cnt += 1

print(cnt)

 

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

import itertools

k=0

glas='ИОА'

for p in itertools.permutations('МИТ­РО­ФАН',6):

if sum([c in glas for c in p]) < 3 and sum([(p[i] in glas and p[i+1] in glas) for i in range(5)]) == 0:

k+=1

print(k)

 

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

from itertools import*

s=permutations('МИТ­РО­ФАН', 6)

k=0

for i in s:

p=''.join(i)

if (p.count('М')+p.count('Т')+p.count('Р')+p.count('Ф')+p.count('Н')>p.count('И')+p.count('О')+p.count('А')):

if p.count('ИО')==0 and p.count('ИА')==0 and p.count('ОИ')==0 and p.count('ОА')==0 and p.count('АИ')==0 and p.count('АО')==0:

k+=1

print(k)


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