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

На ри­сун­ке спра­ва схема дорог Н-⁠ского рай­о­на изоб­ра­же­на в виде графа, звёздоч­ка в ячей­ке таб­ли­цы обо­зна­ча­ет на­ли­чие до­ро­ги между двумя пунк­та­ми. Так как таб­ли­цу и схему ри­со­ва­ли не­за­ви­си­мо друг от друга, то ну­ме­ра­ция населённых пунк­тов в таб­ли­це никак не свя­за­на с бук­вен­ны­ми обо­зна­че­ни­я­ми на графе.

 

П1П2П3П4П5П6П7П8
П1***
П2**
П3****
П4***
П5**
П6***
П7***
П8**

 

Вы­пи­ши­те по­сле­до­ва­тель­но без про­бе­лов и зна­ков пре­пи­на­ния, ука­зан­ные на графе бук­вен­ные обо­зна­че­ния пунк­тов от П1 до П8: сна­ча­ла букву, со­от­вет­ству­ю­щую П1, затем букву, со­от­вет­ству­ю­щую П2, и т. д.

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

Ре­ше­ние.

Со­по­ста­вим населённые пунк­ты графа и населённые пунк­ты в таб­ли­це. Из Г ведут че­ты­ре до­ро­ги. Таким об­ра­зом, Г  — П3. Тогда Б это пункт П2. Пункт А свя­зан с Б и Г и это на­се­лен­ный пункт П4. Тогда пункт В это П5, а пункт И это на­се­лен­ный пункт П8. Пункт Е свя­зан с В и Г и это пункт П6. Тогда Ж это пункт П1, а Д это на­се­лен­ный пункт П7. За­пи­шем ответ без про­бе­лов и зна­ков пре­пи­на­ния, ука­зан­ные на графе бук­вен­ные обо­зна­че­ния пунк­тов от П1 до П8: ЖБГА­ВЕ­ДИ.

 

Ответ: ЖБГА­ВЕ­ДИ.

 

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

from itertools import permutations as p

sort = lambda x: dict([k,''.join(sorted(v))] for k, v in sorted(x.items()))

y = lambda x, c: {c[k]: ''.join(map(lambda d: c[d], v)) for k, v in x.items()}

sln = {'1': '678', '2': '34', '3': '2467', '4': '235', '5': '46', '6': '135',\

'7': '138', '8': '17'}

slb = sort({'А': 'БГВ', 'Б': 'АГ', 'Г': 'АБДЕ', 'Д': 'ГЖИ', 'И': 'ДЖ',\

'Ж': 'ДИЕ', 'Е': 'ЖГВ', 'В': 'АЕ'})

print([sort(c) for i in p('12345678') if (c:={k: v for k, v in zip(i,'АБГ­ДИ­ЖЕВ')}) and sort(y(sln,c))==slb][0]

 

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

def ал­фа­вит(s): return ''.join(sorted(set(s.replace(' ',''))))

# ал­фа­вит - стро­ка из сим­во­лов стро­ки s в ал­фа­вит­ном по­ряд­ке (кроме про­бе­ла)

def дуги(s): return set(map(ал­фа­вит,s.split()))

# дуги - мно­же­ство дуг графа (пар сим­во­лов), каж­дая пара упо­ря­до­че­на по ал­фа­ви­ту

таб­ли­ца = '16 17 18 23 24 34 36 37 45 56 78' # дуги по таб­ли­це

граф = 'АБ АВ АГ БГ ВЕ ГД ГЕ ДЖ ДИ ЕЖ ЖИ' # дуги по схеме

# Не надо бо­ять­ся вклю­чить одну дугу два­жды (напр., БД и ДБ). Глав­ное - ни­че­го не про­пу­стить.

print(ал­фа­вит(таб­ли­ца)) # за­го­ло­вок

from itertools import permutations

for p in permutations(ал­фа­вит(граф)): # все воз­мож­ные пе­ре­ста­нов­ки бук­вен­ных обо­зна­че­ний

та­б­транс = str.maketrans(''.join(p),ал­фа­вит(таб­ли­ца)) # таб­ли­ца транс­ля­ции

if дуги(таб­ли­ца) == дуги(граф.translate(та­б­транс)): # если мно­же­ства дуг сов­па­да­ют

print(''.join(p))

Источник: Проб­ный ЕГЭ Санкт-Пе­тер­бург, 20.02.2025. Ва­ри­ант 1