Алексей, на 46:45 минуте у вас два ЛОЖНЫХ (несуществующих) графа: 1-й и 4-й вариант. Если учитывать в построении графа точку, из которой выходит путь, ложных графов в решении не будет. Здесь 2 (не 4) пермутации, одна не подходит (В Б Г Ж А З Е Д), т.к. на ней ЗЕ = 17 км s1 = '158 234 328 4268 517 6478 7568 813467 ' s = 'АВЕ БГЖ ВАД ГДБ ДВЕЗЖГ ЕАДЗ ЖЗДБ ЗЕДЖ ' g = {w[0]:set(w[1:]) for w in s.split()} # Граф print('1 2 3 4 5 6 7 8') for p in permutations("АБВГДЕЖЗ "): d = dict( zip("12345678 ",p)) # словарь перекодировки s_prm = "".join( [ d[dg] for dg in s1] )
g_prm = {w[0]:set(w[1:]) for w in s_prm.split()} if g == g_prm: print(*p)
очень спасибо
+28 какая осень ? :)
Через что программируете?
idle python
Алексей, на 46:45 минуте у вас два ЛОЖНЫХ (несуществующих) графа: 1-й и 4-й вариант. Если учитывать в построении графа точку, из которой выходит путь, ложных графов в решении не будет. Здесь 2 (не 4) пермутации, одна не подходит (В Б Г Ж А З Е Д), т.к. на ней ЗЕ = 17 км
s1 = '158 234 328 4268 517 6478 7568 813467 '
s = 'АВЕ БГЖ ВАД ГДБ ДВЕЗЖГ ЕАДЗ ЖЗДБ ЗЕДЖ '
g = {w[0]:set(w[1:]) for w in s.split()} # Граф
print('1 2 3 4 5 6 7 8')
for p in permutations("АБВГДЕЖЗ "):
d = dict( zip("12345678 ",p)) # словарь перекодировки
s_prm = "".join( [ d[dg] for dg in s1] )
g_prm = {w[0]:set(w[1:]) for w in s_prm.split()}
if g == g_prm:
print(*p)