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

Вася со­став­ля­ет 5-⁠бук­вен­ные слова, в ко­то­рых есть толь­ко буквы З, И, М, А, причём в каж­дом слове есть ровно одна глас­ная буква и она встре­ча­ет­ся ровно 1 раз. Каж­дая из до­пу­сти­мых со­глас­ных букв может встре­чать­ся в слове любое ко­ли­че­ство раз или не встре­чать­ся со­всем. Сло­вом счи­та­ет­ся любая до­пу­сти­мая по­сле­до­ва­тель­ность букв, не обя­за­тель­но осмыс­лен­ная. Сколь­ко су­ще­ству­ет таких слов, ко­то­рые может на­пи­сать Вася?

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

Ре­ше­ние.

Слова, ис­поль­зу­е­мые Васей, имеют вид Х****, *X***, **X**, ***X* или ****X, где на месте * может сто­ять любая из 2 со­глас­ных букв, кроме букв И и А. На это есть 24  =  16 ва­ри­ан­тов в пяти слу­ча­ях для буквы И и для пяти слу­ча­ев для буквы А. Всего ва­ри­ан­тов 24 · 5 · 2  =  160.

 

Ответ: 160.

 

При­ведём дру­гое ре­ше­ние на языке 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:

if (e.count('И') == 1 and e.count('А') == 0) or (e.count('И') == 0 and e.count('А') == 1):

count += 1

print(count)

 

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

from itertools import product

words = [''.join(i) for i in product(sorted('ЗИМА'), repeat=5)]

count = 0

for i in range(len(words)):

if words[i].count('И') + words[i].count('А') == 1:

count += 1

print(count)

 

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

begin

'З, И, М, А'.Remove(', ')

.Cartesian(5)

.Count(s->

((s.CountOf('И')=1)and(s.CountOf('А')=0))

or

((s.CountOf('И')=0)and(s.CountOf('А')=1))

).Print;

end.

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ—2019 по ин­фор­ма­ти­ке
Раздел кодификатора ФИПИ: 1.6.1 Фор­ма­ли­за­ция по­ня­тия ал­го­рит­ма