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

Все четырёхбук­вен­ные слова, со­став­лен­ные из букв С, Е, Н, О, за­пи­са­ны в ал­фа­вит­ном по­ряд­ке и про­ну­ме­ро­ва­ны, на­чи­ная с 1. На­ча­ло спис­ка вы­гля­дит так:

1.  ЕЕЕЕ

2.  ЕЕЕН

3.  ЕЕЕО

4.  ЕЕЕС

5.  ЕЕНЕ

...

 

Под каким но­ме­ром в спис­ке идёт пер­вое слово, ко­то­рое на­чи­на­ет­ся с буквы С?

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

Ре­ше­ние.

За­ме­ним буквы на цифры сле­ду­ю­щим об­ра­зом: Е  — 0, Н  — 1, О  — 2, С  — 3. По­лу­ча­ем спи­сок:

1.  0000

2.  0001

3.  0002

4.  0003

5.  0010

...

 

Для на­хож­де­ния пер­во­го слова, ко­то­рое на­чи­на­ет­ся с буквы С, нужно найти номер СЕЕЕ, то есть 3000. Ис­поль­зу­ет­ся четырёхбук­вен­ный ал­фа­вит, зна­чит, нужно найти зна­че­ние числа 30004 в де­ся­тич­ном виде. Им яв­ля­ет­ся число 19210, но по­сколь­ку номер в спис­ке на еди­ни­цу боль­ше са­мо­го числа, то остаётся до­ба­вить к по­лу­чив­ше­му­ся числу еди­ни­цу. По­лу­ча­ем 193.

 

Ответ: 193.

 

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

a = {0: "Е", 1: "Н", 2: "О", 3: "С"}

k = 0

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

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

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

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

k += 1

if a[i] == 'С':

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

 

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

from itertools import product

a=sorted([''.join(p) for p in product('СЕНО', repeat=4)])

print(min([i+1 for i in range(len(a)) if a[i][0] == 'С']))

 

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

begin

('СЕНО'.Sorted.CartesianPower(4) // Все 4-бук­вен­ные пе­ре­ста­нов­ки

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

.ToArray

.FindIndex(s -> s[1]='С') +1)

.Print;//193

end.

Источник: ЕГЭ по ин­фор­ма­ти­ке 13.06.2019. Ос­нов­ная волна, Центр. Ва­ри­ант Има­е­ва-Зу­бо­вой — «Ко­то­лис»
Раздел кодификатора ФИПИ: 1.6.1 Фор­ма­ли­за­ция по­ня­тия ал­го­рит­ма