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

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

Вот на­ча­ло спис­ка:

1.  ААААА

2.  ААААК

3.  ААААЛ

4.  ААААО

5.  ААААШ

6.  АААКА

...

 

На каком месте от на­ча­ла спис­ка стоит слово ШКОЛА?

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

Ре­ше­ние.

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

 

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

1.  00000

2.  00001

3.  00002

4.  00003

5.  00004

6.  00010

...

 

По­лу­чен­ная за­пись есть числа, за­пи­сан­ные в пя­те­рич­ной си­сте­ме счис­ле­ния в по­ряд­ке воз­рас­та­ния. За­пи­шем слово ШКОЛА в пя­те­рич­ной си­сте­ме (41320) и пе­ре­ведём его в де­ся­тич­ную:

 

4 · 54 + 1 · 53 + 3 · 52 + 2 · 51  =  2500 + 125 + 75 + 10  =  2710.

 

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

 

Ответ: 2711.

 

При­ведём дру­гое ре­ше­ние на языке 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] == 'Ш' and a[j] == 'К' and a[g] == 'О' and a[m] == 'Л' and a[n] == 'А':

print(k)

 

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

x = 41320

s = 0

for i in range(5):

s = s + (x%10)*5**i

x//=10

print(s+1)

 

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

n=0

s='АКЛОШ'

for a in s:

for b in s:

for c in s:

for d in s:

for e in s:

n+=1

if a+b+c+d+e=='ШКОЛА':

print(n)

 

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

from itertools import product

s = list(map(lambda x: ''.join(x), product('АКЛОШ',repeat=5)))

print(s.index('ШКОЛА')+1)

 

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

from itertools import product

print(sorted([''.join(p) for p in product('АКЛОШ', repeat=5)]).index('ШКОЛА')+1)

 

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

begin

'А, К, Л, О, Ш, '.Remove(', ')

.Sorted.Cartesian(5)

.Select(x -> x.JoinToString(''))

.Numerate

.FirstOrDefault(\(n,s)-> s='ШКОЛА')

.item1//2711

.Print;

end.

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