Автор | Сообщение |
|
Отправлено: 14.10.22 13:56. Заголовок: задание № 102
Здравствуйте! В задании № 102 у меня не сходится ответ: всего 72 пути, и вычитаем все короткие пути (менее 7 дорог). Таких дорого насчитала 21. Ответ: 72-21=51. В ответе 62 Не подскажите, где ошибка? Спасибо!
|
|
|
Ответов - 4
[только новые]
|
|
|
| Администратор
|
Сообщение: 3751
|
|
Отправлено: 14.10.22 21:34. Заголовок: Коротких путей всего..
Коротких путей всего 10: AБЕИКМ AБЕИЛМ AВЖИКМ AВЖИЛМ AГЖИКМ AГЖИЛМ AДЖИКМ AДЖИЛМ AДЗИКМ AДЗИЛМ
|
|
|
|
Отправлено: 23.01.23 15:45. Заголовок: Juliya70 пишет: Так..
Juliya70 пишет: цитата: | Таких дорого насчитала 21. Ответ: 72-21=51. В ответе 62 |
|
можно получить ответ программно, примерно так: s='АБВГД БВЕ ВЖГ ГДЖ ДЖЗ ЕВЖИ ЖИ ЗЖИ ИКЛ КМ ЛКМ' d ={c[0]:c[1:] for c in s.split()} k=0 def f(s,end): global k if s[-1]==end: if len(s)<7: k+=1 return 1 return sum(f(s+c,end)for c in d[s[-1]]) print(f('А','М')-k) 238 символов вместе с пробелами!
|
|
|
|
Отправлено: 23.01.23 15:53. Заголовок: Juliya70 пишет: Так..
Juliya70 пишет: цитата: | Таких дорого насчитала 21 |
| Программно посмотреть короткие дороги можно так: s='АБВГД БВЕ ВЖГ ГДЖ ДЖЗ ЕВЖИ ЖИ ЗЖИ ИКЛ КМ ЛКМ' d ={c[0]:c[1:] for c in s.split()} def f(s,end): if s[-1]==end: if len(s)<7: print(s) return 1 return sum(f(s+c,end)for c in d[s[-1]]) print(f('А','М')) АБЕИКМ АБЕИЛМ АВЖИКМ АВЖИЛМ АГЖИКМ АГЖИЛМ АДЖИКМ АДЖИЛМ АДЗИКМ АДЗИЛМ Спасибо за идею Алексею Кабанову!
|
|
|
|
Отправлено: 23.01.23 16:03. Заголовок: Вот тоже интересный ..
Вот тоже интересный способ решения: G = {} G['А'] = ["Б", "В", "Г", "Д"] G['Б'] = ["В", "Е"] G['В'] = ["Г", "Ж"] G['Г'] = ["Д", "Ж"] G['Д'] = ["Ж", "З"] G['Е'] = ["В", "Ж", "И"] G['Ж'] = ["И"] G['З'] = ["Ж", "И"] G['И'] = ["К", "Л"] G['К'] = ["М"] G['Л'] = ["К", "М"] def valid(way): return len(way) >= 7 count = 0 def allWays( fro, to, prev ): global count if fro == to: if valid(prev): print( prev ) count += 1 return for c in G[fro]: if not c in prev: allWays( c, to, prev+c ) allWays( "А", "М", "A" ) print( count ) Недостаток, 495 символа, почти в два раза больше, чем предыдущий код! С учетом того, что начальный допустимый минимум печати секретаря-референта 120 знаков в минуту. Стало быть школьнику понадобится минут 10 только на набор текста, а думать когда? Рекомендуемое время на решение всего 3 минуты!!! Уж лучше ручками
|
|
|
|