В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
sona238
sona238
01.01.2020 03:06 •  Информатика

2. книжная полка. в библиотеке на полке стоят 8 томов полного собрания сочинений одного писателя. библиотекарь обозначил их латинскими буквами от а до н в порядке выхода томов. получилась следующая последовательность: e d g h c b f a библиотекарь решил переставить эти книги так чтобы они шли по порядку : a b c d e f g h. за одно действие библиотекарь может взять несколько подряд идущих книг, достать их с полки и, не меняя порядок следования книг, перевернуть их и поставить на место в обратном порядке. например если библиотекарь достанет книги h по f и перевернет их то новый порядок следования книг будет таким: e d g f b c g h a. библиотекарю упорядочить этот ряд книг за минимальное число действий

Показать ответ
Ответ:
AliKsandraSm
AliKsandraSm
03.08.2020 22:26
Учитывая, что 8 букв можно переставить примерно 40 тысячами можно просто запустить поиск в ширину, сохранить для всех перестановок то, из какой строчки они получились, и потом восстановить ответ для строчки abcdefgh.

Код на python 3:
from queue import Queue

to_process = Queue()
to_process.put(("edghcbfa", None))
prec = {}

while not to_process.empty():
    s, prev = to_process.get()
    if s in prec:
        continue
    for i in range(7):
        for j in range(i + 1, 8):
            if i == 0:
                next_s = s[j::-1] + s[j+1:]
            else:
                next_s = s[:i] + s[j:i-1:-1] + s[j+1:]
            if next_s not in prec:
                to_process.put((next_s, s))
    prec[s] = prev

current = "abcdefgh"
print(current)
while prec[current] is not None:
    current = prec[current]
    print(current)

Вывод программы:
abcdefgh
edcbafgh
edcbhgfa
edbchgfa
edghcbfa
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота