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

Петя со­став­ля­ет 6-⁠бук­вен­ные коды из букв П, Е, Т, Я. Каж­дую букву можно ис­поль­зо­вать любое ко­ли­че­ство раз или со­всем не ис­поль­зо­вать, при этом нель­зя ста­вить под­ряд две глас­ные или две со­глас­ные. Сколь­ко раз­лич­ных кодов может со­ста­вить Петя?

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

Ре­ше­ние.

За­ме­тим, что по­сколь­ку глас­ных и со­глас­ных по­ров­ну, слово может на­чи­нать­ся с как с со­глас­ной, так и с глас­ной.

По­ста­вим на пер­вое место любую из двух со­глас­ных. На вто­рое  — любую из двух глас­ных. На тре­тье  — любую из двух со­глас­ных. На чет­вер­тое  — любую из двух глас­ных. На пятое  — любую из двух со­глас­ных. На ше­стое  — любую из двух глас­ных. По пра­ви­лу про­из­ве­де­ния, со­от­вет­ству­ю­щие ко­ли­че­ства спо­со­бов пе­ре­мно­жа­ем. Учи­ты­вая, что на пер­вое место можно по­ста­вить как со­глас­ную, так и глас­ную, Петя может со­ста­вить 2 · 2 · 2 · 2 · 2 · 2 + 2 · 2 · 2 · 2 · 2 · 2  =  128 раз­лич­ных кодов.

 

Ответ: 128.

 

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

import itertools

alphabet = "ПЕТЯ"

vol = "ЕЯ"

con = "ПТ"

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

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[i] in vol and e[i + 1] in vol) or (e[i] in con and e[i + 1] in con):

flag = False

if flag:

count += 1

print(count)

 

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

from itertools import product

count = 0

for x in product('ПЕТЯ', repeat=6):

slovo = ''.join(x)

if all(pair not in slovo for pair in 'ПП ПТ ТП ТТ ЕЯ ЯЕ ЕЕ ЯЯ'.split()):

count += 1

print(count)


Аналоги к заданию № 28685: 29117 29656 33087 Все

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