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

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

1.  ААААА

2.  ААААК

3.  ААААР

4.  ААААУ

5.  АААКА

...

 

За­пи­ши­те слово, ко­то­рое стоит на 250-⁠м месте от на­ча­ла спис­ка.

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

Ре­ше­ние.

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

 

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

1.  00000

2.  00001

3.  00002

4.  00003

5.  00010

...

 

По­лу­чен­ная за­пись есть числа, за­пи­сан­ные в чет­ве­рич­ной си­сте­ме счис­ле­ния в по­ряд­ке воз­рас­та­ния. Тогда на 250-⁠м месте будет сто­ять число 249 (так как пер­вое число  — 0). Пе­ре­ведём число 249 в чет­ве­рич­ную си­сте­му (деля и снося оста­ток спра­ва на­ле­во):

249 / 4 = 62 (1)

62 / 4 = 15 (2)

15 / 4 = 3 (3)

3 / 4 = 0 (3)

 

В чет­ве­рич­ной си­сте­ме 249 за­пи­шет­ся как 3321, но в слове долж­но быть пять букв, по­это­му до­ба­вим цифру ноль слева. Тогда, про­из­ве­дя об­рат­ную за­ме­ну из 03321, по­лу­чим АУУРК.

 

Ответ: АУУРК.

 

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

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

k += 1

if k == 250:

print(a[i], a[j], a[g], a[m], a[n], end=" ")

 

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

s = sorted('АКРУ')

num = 0

for a in s:

for b in s:

for c in s:

for d in s:

for e in s:

slovo = a + b + c + d + e

num += 1

if num == 250:

print(slovo)

 

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

from itertools import *

num = 0

for per in product(sorted('АКРУ'), repeat=5):

slovo = ''.join(per)

num += 1

if num == 250:

print(slovo)

 

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

from itertools import *

for num, per in enumerate(product(sorted('АКРУ'), repeat=5), 1):

slovo = ''.join(per)

if num == 250:

print(slovo)

 

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

begin

'А, К, Р, У, '.Remove(', ')

.Sorted.Cartesian(5).Numerate

.Where(\(n,s)->n=250)

.First.Item2.Print;//АУУРК

end.


Аналоги к заданию № 3195: 3229 3233 3238 Все

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