Тип 13 № 2229 
Организация компьютерных сетей. Адресация. Восстановить ip-адрес
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
Ответ: ВГАБ