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

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

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

Ре­ше­ние.

Есть 2 ва­ри­ан­та: если буква X на 1 месте и если на по­след­нем. Для каж­до­го из таких ва­ри­ан­тов для дру­гих букв су­ще­ству­ет 3 в сте­пе­ни левая круг­лая скоб­ка 4 пра­вая круг­лая скоб­ка ва­ри­ан­та. Тогда ответ  — 2 умно­жить на 3 в сте­пе­ни левая круг­лая скоб­ка 4 пра­вая круг­лая скоб­ка ва­ри­ан­та.

 

Ответ: 162.

 

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

import itertools

alphabet = "ABCX"

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

arl = []

for i in ar:

arl.append(list(i))

count = 0

for e in arl:

if e.count('X') == 1 and (e[0] == 'X' or e[-1] == 'X'):

count += 1

print(count)

 

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

from itertools import product

count = 0

for i in product('ABCX',repeat=5):

if i.count('X') == 1 and (i[0] == 'X' or i[4] == 'X'):

count += 1

print(count)

 

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

begin

'ABCX'.Cartesian(5)

.Where(s->s.CountOf('X')=1)

.Where(s->(s.First='X')or(s.last='X'))

.Count.Print;

end.

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