Цитата: Сообщение от Hassan-i Sabbah Посмотреть сообщение В тюрьме содержатся 100 заключённых. Им предлагают следующее испытание: В одной из камер расставлены в ряд 100 ящиков. В каждый из них положена бумажка с именем одного из узников, причём в разные ящики — разные имена. Заключённых по одному будут заводить в эту камеру. В камере заключённый может открывать и заглядывать в те ящики, которые хочет, но максимум он может открыть 50 ящиков из 100. Его задача в том, чтобы среди открытых им ящиков оказался тот, в котором лежит бумажка с его именем. После этого его уведут и сразу отправят в свою камеру. Уходя, он должен оставить камеру точно в том же состоянии, в котором её нашёл. Таким образом, в процессе испытания никакого обмена информацией междузаключёнными нет. Их выпустят, если КАЖДЫЙ из них найдёт бумажку со своим именем. Первый зашедший в камеру заключённый может осмотреть содержимое всех ящиков и, если захочет, поменять местами любые два (и только два) из них. Найдите стратегию, которая позволит заключённым гарантированно (со 100% вероятностью) успешно справиться с этим испытанием. Я как программист увидела решение в применении структуры LinkedList (Java). Пронумеровать коробки (раз они стоят в ряд то это легко) и пронумеровать заключенных привязав номер к имени. Далее по аналогии с LinkedList в Java. Примерно так выглядит Короче каждый начинает с коробки со своим номером, номер следующей коробки соответствует имени заключенного которое в коробке(списочек придется составить и при себе иметь, а то всех 100 не запомнишь, кроме того придется предположить что имена не повторяются), и т.д. до своего имени. Поскольку все номера уникальны и в каждом только один указатель на следующий элемент, то списки будут небольшие. А первый входящий с правом перестановки должен исключить списки длиной более 50 элементов, если таковые имеются. Могу поподробнее описать если совсем непонятно. Но лучше почитайте про LinkedList, тогда всем сразу станет ясно. Нравится Нравится 2 поблагодарили Sunny за хорошее сообщение: Лири (19.05.2016), Степлер (19.05.2016) Sunny Посмотреть профиль Отправить личное сообщение для Sunny Найти ещё сообщения от Sunny