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

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

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

Ре­ше­ние.

Найдём все слова, не на­чи­на­ю­щи­е­ся с буквы Й: 6 · 7 · 7 · 7  =  2058. Те­перь вы­чтем из них все слова, не на­чи­на­ю­щи­е­ся с буквы Й и не со­дер­жа­щие глас­ных: 2058 − 3 · 4 · 4 · 4  =  1866. Таким об­ра­зом, ответ  — 1866.

 

Ответ: 1866.

 

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

import itertools

alphabet = "НИ­КО­ЛАЙ"

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

arl = []

for i in ar:

arl.append(list(i))

count = 0

for e in arl:

flag = True

for i in range(len(e)):

if (e[0] == "Й") or (e.count("И") + e.count("О") + e.count("А") == 0):

flag = False

if flag:

count += 1

print(count)

 

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

from itertools import product

count = 0

for s in product('НИ­КО­ЛАЙ', repeat=4):

slovo = ''.join(s)

if slovo[0] != 'Й':

if any(x in slovo for x in 'ИОА'):

count += 1

print(count)

 

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

s = 'НИ­КО­ЛАЙ'

count = 0

for a in s:

for b in s:

for c in s:

for d in s:

slovo = a + b + c + d

if slovo[0] != 'Й':

if any(x in slovo for x in 'ИОА'):

count += 1

print(count)

 

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

begin

'Н, И, К, О, Л, А, Й'.Remove(', ').Cartesian(4)

.Where(s->s[1] <> 'Й')

.Where(s->(s.CountOf('И')>0)or((s.CountOf('О')>0))or((s.CountOf('А')>0))

).Count.Print;

end.


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

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