Задания
Версия для печати и копирования в MS Word
Тип 8 № 15920
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

...

 

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

 

Ответ: 833.

 

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

a=sorted([''.join(p) for p in product('АЛ­ГО­РИТМ', repeat=4)])

print(min([i+1 for i in range(len(a)) if a[i][0:2] == 'ГО']))

 

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

begin

('АЛ­ГО­РИТМ'.Sorted.Cartesian(4)

.Select(s -> s.JoinToString)

.ToArray

.FindIndex(s -> s.StartsWith('ГО')) + 1).Print;//833

end.


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

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