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

На месте пре­ступ­ле­ния были об­на­ру­же­ны че­ты­ре об­рыв­ка бу­ма­ги. След­ствие уста­но­ви­ло, что на них за­пи­са­ны фраг­мен­ты од­но­го IP-⁠ад­ре­са. Кри­ми­на­ли­сты обо­зна­чи­ли эти фраг­мен­ты бук­ва­ми А, Б, В и Г. Вос­ста­но­ви­те IP-⁠адрес. В от­ве­те ука­жи­те по­сле­до­ва­тель­ность букв, обо­зна­ча­ю­щих фраг­мен­ты, в по­ряд­ке, со­от­вет­ству­ю­щем IP-⁠ад­ре­су. Если будет не­сколь­ко ва­ри­ан­тов ре­ше­ния, за­пи­ши­те их все через за­пя­тую.

А

Б

В

Г

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

Ре­ше­ние.

IP-⁠адрес пред­став­ля­ет собой числа, разъ­еди­нен­ные точ­ка­ми, при­чем числа эти не боль­ше 255.

По­смот­рим вни­ма­тель­нее на дан­ные фраг­мен­ты: под бук­вой В мы видим «102.». В фраг­мен­те при­сут­ству­ет часть не­ко­то­ро­го числа, кон­ча­ю­ще­го­ся на 102. По­сколь­ку числа в IP-⁠ад­ре­се не могут быть боль­ше 255, мы не можем до­ба­вить в на­ча­ле этого числа еще один раз­ряд, а фраг­мен­тов, кон­ча­ю­щих­ся точ­кой, боль­ше нет. Сле­до­ва­тель­но, этот фраг­мент  — пер­вый.

По­смот­рим на фраг­мент под бук­вой Б. В нем стоит число без точек, зна­чит, это либо по­след­ний фраг­мент, либо пер­вый. Место пер­во­го фраг­мен­та уже за­ня­то, зна­чит, фраг­мент Б на по­след­нем месте.

В на­ча­ле фраг­мен­та Г  — число 84, от­де­лен­ное точ­кой. По­сколь­ку в IP-⁠ад­ре­се не может быть числа, боль­ше­го 255, то перед фраг­мен­том А дол­жен сле­до­вать фраг­мент, кон­ча­ю­щий­ся либо точ­кой, либо одной циф­рой, мень­шей 2, после точки. Зна­чит, фраг­мент Г идет после фраг­мен­та В.

 

Ответ: ВГАБ.

 

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

from ipaddress import ip_address

from itertools import permutations

ip = {'7.2':'А','53':'Б','102.':'В','84.1':'Г'}

for i in permutations(ip):

try:

print(ip_address(''.join(i)), ''.join([ip[i[ii]] for ii in range(4)]))

except:

pass