После этого Тони слез по сложенной вдвое веревке, выдернул ее из петли и ушел, унося с собой всю веревку A и почти всю веревку B.
А как бы вы это сделали?
Манипуляции с веревкой
Задачу, о которой вы узнали, прочитав рассказ о дерзком похитителе веревок, нельзя считать строго определенной, поэтому и решений у нее может быть несколько. Возможно, что приведенное нами решение наиболее «практично», но вы заведомо сумеете предложить еще несколько других вариантов, которыми мог бы воспользоваться вор. Не исключено, что ваше решение окажется лучше.
Например, похититель мог бы завязать на веревке В так называемую колышку — специальный узел, используемый моряками и альпинистами для временного укорочения снасти (рис. 6). Повиснув на веревке B, он мог бы обрезать веревку A под потолком (и дать ей упасть на пол), после чего перерезать веревку B в точке X. Всем альпинистам хорошо известно, что узел будет держать, пока вор не соскользнет по веревке B вниз. Дернув за веревку B, он распустит колышку и получит почти всю веревку B, за исключением небольшого ее куска под самым потолком.
Другое возможное решение. Похититель взбирается наверх по веревке A. Ухватившись одной рукой за веревку B и вися на веревке A, он начинает перерезать волокно за волокном веревку A, пока не почувствует, что та вот-вот оборвется. Затем он стягивает обе веревки вместе и вися на двух веревках одновременно, начинает перерезать веревку B под самым потолком так же, как он перерезал веревку A, и спускается по двум веревкам вниз. Каждая из веревок в отдельности не выдержала бы его веса, но с половинной нагрузкой веревки справляются благополучно. Очутившись на полу, вор сильным рывком обрывает веревки по месту надреза.
Третий способ предполагает, что отверстия в потолке достаточно велики. Сначала похититель связывает свободные концы веревок A и B у пола. Затем взбирается по веревке A, перерезает веревку B под потолком и проталкивает ее длинный конец в отверстие для веревки B, пока тот не покажется из отверстия для веревки A, после чего начинает протягивать веревку B до тех пор, пока ее конец не окажется у пола, а узел — под потолком у отверстия для веревки B. Ухватившись у самого потолка за веревку B, продернутую сквозь отверстие для веревки A, и нижнюю часть веревки A, подтянутую теперь к потолку, похититель перерезает верхнюю часть веревки A (торчащую из отверстия для веревки A) как можно выше и, спустившись по двойной веревке, сдергивает ее на пол.
А вот более хитроумный вариант предыдущего решения. Свободные концы веревок остаются не связанными. Похититель взбирается по веревке A, перерезает веревку B, проталкивает ее длинный конец сквозь отверстие для веревки B и вытягивает его из отверстия для веревки A, после чего захлестывает его вокруг веревки B и завязывают узлом (рис. 7). Повиснув на веревке B, похититель перерезает веревку A и привязывает конец ее к узлу. Спустившись по веревке B, он тянет за веревку A, веревка В проскальзывает сквозь петлю и падает вниз.
Еще один вариант. Похититель взбирается по веревке A и завязывает петлю на верхней части веревки B. Повиснув на этой петле, он перерезает веревку A, проталкивает ее конец сквозь отверстие для веревки A и вытягивает его из отверстия для веревки B, после чего привязывает к петле. Повиснув на двух веревках, он перерезает веревку B под потолком над петлей, спускается по двум веревкам вниз и, потянув за веревку B, сдергивает их вниз.
Некоторые из приведенных выше решений практически не осуществимы: если бы похититель вздумал воспользоваться любым из них, то колокола зазвонили бы и он был бы пойман с поличным. Одно из достоинств самого первого решения состоит в том, что похититель осторожно натягивая веревку B, прежде чем повиснуть на ней, мог бы избежать лишнего шума (колокол B при соблюдении всех мер предосторожности не зазвонил бы). Прежде чем влезть по веревке A, похитителю также следовало бы осторожно натянуть ее.
Во многих классических процедурных задачах, аналогичных задачам о переправах, фигурирует переброшенная через блок длинная веревка, к каждому концу которой прикреплено по корзине. Льюис Кэрролл очень любил следующий вариант такой задачи.
Пленная королева вместе со своим сыном и дочерью заточены в каморке на самом верху высокой башни. Снаружи у их окна прикреплен блок, через который перекинута веревка. На каждом конце веревки висит по корзине. Вес обеих корзин совершенно одинаков. Верхняя корзина, находящаяся как раз против окна темницы, пустая, в нижней корзине, достающей до земли, лежит камень массой 30 кг, служащий противовесом.
Блок сильно заржавел и вращается со скрипом достаточно медленно для того, чтобы спуск в корзине был безопасен для каждого, чья масса превышает массу противовеса не более чем на б кг. При большей разности масс удар о землю может причинить тяжкие увечья. Разумеется, если одна корзина поднимается, то другая опускается.
Масса королевы 78 кг, масса ее дочери 66 кг и масса сына 36 кг. Укажите простейший, то есть состоящий из наименьшего числа шагов, алгоритм побега. Корзины достаточно велики, чтобы вместить либо 2 людей, либо одного человека и камень. При побеге августейшим пленникам никто не помогает, и они не могут помочь себе, потянув за веревку. Иначе говоря, блок действует только в том случае, если масса в одной корзине превосходит массу в другой корзине.
Простейшее решение легко найти, если воспользоваться «аналоговым устройством»: написать массы на отдельных карточках и подвигать их вверх и вниз. Вам не удастся организовать побег всех трех узников менее чем за 9 шагов. Вот как выглядит наиболее экономичный алгоритм побега:
1. Сын вниз, камень вверх,
2. Дочь вниз, сын вверх.
3. Камень вниз.
4. Королева вниз, камень и дочь вверх.
5. Камень вниз.
6. Сын вниз, камень вверх,
7. Камень вниз.
8. Дочь вниз, сын вверх.
9. Сын вниз, камень вверх,
Задачи этого типа иногда усложняются введением животных, которые не могут самостоятельно влезать в корзины и вылезать из корзин. Льюис Кэрролл предлагает следующий вариант предыдущей задачи. На вершине башни вместе с королевой находились не только ее сын, дочь и груз, но и свинья массой 24 кг, собака массой 18 кг и кошка массой 12 кг. Спускать четвероногих нужно с теми же предосторожностями, что и людей, но теперь кто-нибудь непременно должен быть и наверху и внизу, чтобы класть животных в корзины и доставать их оттуда.
Удастся ли вам построить алгоритм побега короче 13 шагов? В обеих задачах тому, кто последним выйдет из корзины, следует поторапливаться, иначе он рискует получить по голове падающим противовесом!
Катастрофа на острове
Орвилл поставил свою машину на берегу небольшого озера.
Орвилл. Какой ровный берег! Для запуска моей радиоуправляемой авиамодели лучшего места не найти. Ни тебе деревьев, ни скал. Единственное дерево — на островке посреди озера.
Орвилл хотел было заставить модель облететь вокруг дерева, но не рассчитал расстояние. Модель врезалась в дерево и упала на землю.
Орвилл не на шутку встревожился. Оставлять модель на острове не хотелось: слишком много сил и средств было израсходовано на нее. Озеро было глубоким, а плавать Орвилл не умел. В багажнике машины у Орвилла на всякий случай хранилась веревка, длина которой на несколько метров превышала поперечник озера в самой широкой части, но как воспользоваться веревкой Орвилл не знал.
И вдруг Орвилла осенила простая и в то же время остроумная идея.
Орвилл. Делать нечего, придется намокнуть, зато модель будет спасена.
Как Орвилл достал свою модель?
Стоит подумать, прежде чем пускаться вплавь
Орвилл достал свою модель следующим остроумным способом. Он подогнал свою автомашину к самому краю воды и привязал к переднему бамперу длинную веревку. Держась за свободный конец веревки, он обошел дважды вокруг озера, отчего веревка обвилась вокруг ствола дерева, и, как следует натянув веревку, привязал свободный конец к бамперу. Получилась подвесная дорога: двойная веревка, натянутая между деревом на острове и бампером автомашины на берегу. Держась за веревку, Орвилл добрался до острова и, захватив модель, благополучно вернулся на берег.