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

Все четырёхбук­вен­ные слова, со­став­лен­ные из букв А, Л, Г, О, Р, И, Т, М, за­пи­са­ны в ал­фа­вит­ном по­ряд­ке и про­ну­ме­ро­ва­ны, на­чи­ная с 1. На­ча­ло спис­ка вы­гля­дит так:

1.  АААА

2.  АААГ

3.  АААИ

4.  АААЛ

5.  АААМ

6.  АААО

7.  АААР

8.  АААТ

9.  ААГА

...

 

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

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

Ре­ше­ние.

За­ме­ним буквы на цифры сле­ду­ю­щим об­ра­зом: А  — 0, Г  — 1, И  — 2, Л  — 3, М  — 4, О  — 5, Р  — 6, Т  — 7. По­лу­ча­ем спи­сок:

1.  0000

2.  0001

3.  0002

4.  0003

5.  0004

6.  0005

7.  0006

8.  0007

9.  0010

...

 

Для на­хож­де­ния пер­во­го слова, ко­то­рое на­чи­на­ет­ся с букв ИГ, нужно найти номер ИГАА, то есть 2100. Ис­поль­зу­ет­ся вось­ми­бук­вен­ный ал­фа­вит, зна­чит, нужно найти зна­че­ние числа 21008 в де­ся­тич­ном виде. Им яв­ля­ет­ся число 108810, но по­сколь­ку номер в спис­ке на еди­ни­цу боль­ше са­мо­го числа, то остаётся до­ба­вить к по­лу­чив­ше­му­ся числу еди­ни­цу. По­лу­ча­ем 1089.

 

Ответ: 1089.

 

При­ведём дру­гое ре­ше­ние на языке 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)):

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

k += 1

if a[i] == 'И' and a[j] == 'Г':

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

 

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

from itertools import product

words = list(product(sorted('АЛ­ГО­РИТМ'), repeat=4))

for i in range(len(words)):

s = ''.join(words[i])

if s.startswith('ИГ'): #функ­ция startswith() поз­во­ля­ет про­ве­рить на­чи­на­ет­ся ли стро­ка с ука­зан­но­го пре­фик­са

print(i + 1)

break


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

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