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

Ве­ро­ни­ка со­став­ля­ет 3-⁠бук­вен­ные коды из букв В, Е, Р, О, Н, И, К, А, причём буква В долж­на вхо­дить в код ровно один раз. Все по­лу­чен­ные коды Ве­ро­ни­ка за­пи­са­ла в ал­фа­вит­ном по­ряд­ке и про­ну­ме­ро­ва­ла. На­ча­ло спис­ка вы­гля­дит так:

1.  ААВ

2.  АВА

3.  АВЕ

...

 

На каком месте будет за­пи­сан пер­вый код, не со­дер­жа­щий ни одной буквы А?

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

Ре­ше­ние.

За­пи­шем каж­дую букву и со­от­вет­ству­ю­щую ей цифру: А  — 0, В  — 1, Е  — 2, И  — 3, К  — 4, Н  — 5, О  — 6, Р  — 7. Про­дол­жим спи­сок кодов, пока не встре­тим код, не со­дер­жа­щий цифры 0. Будем учи­ты­вать, что в коде долж­на встре­чать­ся ровно одна цифра 1. По­лу­чим:

1  — 001

2  — 010

3  — 012

4  — 013

5  — 014

6  — 015

7  — 016

8  — 017

9  — 021

10  — 031

11  — 041

12  — 051

13  — 061

14  — 071

15  — 100

16  — 102

17  — 103

18  — 104

19  — 105

20  — 106

21  — 107

22  — 120

23  — 122

Таким об­ра­зом, пер­вый код, не со­дер­жа­щий ни одной буквы А, будет за­пи­сан под но­ме­ром 23.

 

Ответ: 23.

 

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

a = {0: "А", 1: "В", 2: "Е", 3: "И", 4: "К", 5: "Н", 6: "О", 7: "Р"}

k = 0

for i in range(0, len(a)):

for j in range(0, len(a)):

for g in range(0, len(a)):

s = a[i] + a[j] + a[g]

if s.count('В') == 1:

k += 1

if s.count('А') == 0:

print(k) # Возьмём пер­вое число, ко­то­рое вы­даст про­грам­ма

break

 

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

from itertools import product

s = product('АВЕ*****', repeat = 3)

cnt = 0

for i in s :

p = ''.join(i)

if p.count('В') == 1:

cnt += 1

if p.count('В') == 1 and p.count('А') == 0:

print(cnt)

break

 

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

begin

('ВЕ­РО­НИ­КА'.CartesianPower(3) // Все 3-бук­вен­ные пе­ре­ста­нов­ки

.Select(p -> p.JoinToString())

.Where(s -> s.CountOf('В') = 1) // Буква В ровно один раз

.Sorted // Ал­фа­вит­ный по­ря­док

.ToArray

.FindIndex(s -> not s.Contains('А'))+1)

.Print;//23

end.


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

Раздел кодификатора ФИПИ: