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

Левий со­став­ля­ет 5-⁠бук­вен­ные коды из букв Л, Е, В, И, Й. Каж­дую букву нужно ис­поль­зо­вать ровно 1 раз, при этом код не может на­чи­нать­ся с буквы Й и не может со­дер­жать со­че­та­ния ЕИ. Сколь­ко раз­лич­ных кодов может со­ста­вить Левий?

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

Ре­ше­ние.

Сна­ча­ла найдём общее ко­ли­че­ство воз­мож­ных слов. По­сколь­ку на пер­вое место можно по­ста­вить любую букву, кроме Й, общее ко­ли­че­ство воз­мож­ных слов рав­ня­ет­ся 4 · 4 · 3 · 2 · 1  =  96. Те­перь опре­де­лим, сколь­ко слов со­дер­жат со­че­та­ние ЕИ. Пусть слово на­чи­на­ет­ся с ЕИ, тогда ко­ли­че­ство ва­ри­ан­тов рав­ня­ет­ся 1 · 1 · 3 · 2 · 1  =  6. Пусть ЕИ  — это вто­рая и тре­тья буквы слова, тогда ко­ли­че­ство ва­ри­ан­тов рав­ня­ет­ся 2 · 1 · 1 · 2 · 1  =  4. Пусть ЕИ  — это тре­тья и четвёртая буквы слова, тогда ко­ли­че­ство ва­ри­ан­тов рав­ня­ет­ся 2 · 2 · 1 · 1 · 1  =  4. В слу­чае, когда ЕИ  — это четвёртая и пятая буквы слова, ко­ли­че­ство ва­ри­ан­тов рав­ня­ет­ся 2 · 2 · 1 · 1 · 1  =  4. Таким об­ра­зом, ко­ли­че­ство кодов, ко­то­рые может со­ста­вить Левий, рав­ня­ет­ся 96 − 6 − 4 − 4 − 4  =  78.

 

Ответ: 78.

 

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

import itertools

alphabet = "ЛЕВИЙ"

ar = itertools.permutations(alphabet) #Пе­ре­ста­нов­ка

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[0] == 'Й' or (e[i] == 'Е' and e[i + 1] == 'И'):

flag = False

if flag == True: count += 1

print(count)

 

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

from itertools import *

cnt = 0

for p in permutations('ЛЕВИЙ' , 5):

a = ''.join(p)

if a[0] != 'Й' and 'ЕИ' not in a:

cnt += 1

print(cnt)

 

При­ведём ре­ше­ние Сер­гея Донец на языке PascalABC.NET.

begin

'Л, Е, В, И, Й'.Remove(', ').Permutations

.Count(s->(s[1]<>'Й')and('ЕИ' not in s))

.Print;

end.


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

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