Тип 13 № 2224 

Организация компьютерных сетей. Адресация. Восстановить ip-адрес
i
На месте преступления были обнаружены четыре обрывка бумаги. Следствие установило, что на них записаны фрагменты одного IP-адреса. Криминалисты обозначили эти фрагменты буквами А, Б, В и Г. Восстановите IP-адрес. В ответе укажите последовательность букв, обозначающих фрагменты, в порядке, соответствующем IP-адресу.
Спрятать решениеРешение. IP-адрес представляет собой числа, разъединенные точками, причем числа эти не больше 255.
Посмотрим внимательнее на данные фрагменты: под буквой А мы видим «.64». Число, на которое указывает этот фрагмент, начинается с 64. Поскольку числа в IP-адресе не могут быть больше 255, мы не можем добавить в конце этого числа еще один разряд, а фрагментов, начинающихся с точки, больше нет. Следовательно, этот фрагмент — последний.
Посмотрим на фрагмент под буквой В. В нем стоит число без точек, значит, это либо последний фрагмент, либо первый. Место последнего фрагмента уже занято, значит, фрагмент В на первом месте.
В конце фрагмента Г — число 32, отделенное точкой. Поскольку в IP-адресе не может быть числа, большего 255, то за фрагментом А должен следовать фрагмент, начинающийся с точки. Значит, фрагмент Г идет перед фрагментом А.
Ответ: ВБГА.
Приведём решение Данила Шарлова на языке Python.
from ipaddress import ip_address
from itertools import permutations
ip = {'.64':'А','2.16':'Б','16':'В','8.32':'Г'}
for i in permutations(ip):
try:
print(ip_address(''.join(i)), ''.join([ip[i[ii]] for ii in range(4)]))
except:
pass
Ответ: ВБГА