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

Все 5-⁠бук­вен­ные слова, со­став­лен­ные из букв В, Е, К, Н, О, за­пи­са­ны в ал­фа­вит­ном по­ряд­ке и про­ну­ме­ро­ва­ны. Вот на­ча­ло спис­ка:

1.  ВВВВВ

2.  ВВВВЕ

3.  ВВВВК

4.  ВВВВН

5.  ВВВВО

6.  ВВВЕВ

 

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

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

Ре­ше­ние.

За­ме­ним буквы В, Е, К, Н, О на 0, 1, 2, 3, 4 со­от­вет­ствен­но (для них по­ря­док оче­ви­ден  — по воз­рас­та­нию).

 

Вы­пи­шем на­ча­ло спис­ка, за­ме­нив буквы на цифры:

1.  00000

2.  00001

3.  00002

4.  00003

5.  00004

6.  00010

...

 

По­лу­чен­ная за­пись есть числа, за­пи­сан­ные в пя­те­рич­ной си­сте­ме счис­ле­ния в по­ряд­ке воз­рас­та­ния. Пер­вое слово, на­чи­на­ю­ще­е­ся с О (40000), пе­ре­ведём его в де­ся­тич­ную:

 

4 · 54 + 0 · 53 + 0 · 52 + 0 · 51  =  2500.

 

Не за­бу­дем о том, что есть слово номер 1, за­пи­сы­ва­ю­ще­е­ся как 0, а зна­чит, 2500  — число, со­от­вет­ству­ю­щее но­ме­ру 2501.

 

Ответ: 2501.

 

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

a = {0: "В", 1: "Е", 2: "К", 3: "Н", 4: "О"}

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)):

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

k += 1

if a[i] == 'О':

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

break

 

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

from itertools import *

num = 0

for s in product(sorted('ВЕКНО'), repeat=5):

num += 1

if s[0] == 'О':

print(num)

break

 

При­ведём ре­ше­ние Павла Шос­тка­на языкеPascalABC.NET.

##

'ВЕКНО'.Cartesian(5).Numerate.Where(\(n,s)->s[1]='О').first.Print;

 

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

begin

'ВЕКНО'.Cartesian(5).Numerate

.Where(\(n,s)->s[1]='О')

.First

.Item1

.Print;

end.

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