При множестве альтернатив вам, возможно, захочется добиться и красоты решения, помимо его эффективности.
Каждый волен использовать свой подход к решению задачи. Любой подход удовлетворителен, если он дает нужное решение. Но еще более важен анализ пути, каким к нему пришли.
Решение может быть найдено так быстро, что вы даже не осознаете, как все произошло. Но вам тем не менее интересно знать, что этому способствовало.
Некоторые из вас будут сидеть и смотреть некоторое время на блоки, а затем сразу же расположат их в верном порядке. Логический путь к решению может оказаться настолько очевидным, что не вызовет никаких сомнений. Кое-кто начнет манипулировать блоками, надеясь, что решение само «всплывет». Надежда на случай может себя оправдать. Правильное решение появится либо в виде почти законченного, либо требующего лишь небольшой модификации. Такой метод кажется чрезвычайно легким. Перебор вариантов – тоже шанс найти нужное решение. Продолжать игру и создавать новые конструкции из блоков относительно легко, чего часто нельзя делать в других задачах.
Вторая сторона метода случайного поиска – это оценка возможных решений. Каждая новая комбинация должна тщательно проверяться, так как она продиктована не логикой, а волей случая. От быстроты и точности такой проверки зависит успех метода. Слишком медленный или неточный анализ решений делает его неэффективным. Я часто был свидетелем того, что люди, нашедшие решение методом случайного поиска, отбрасывали его, не подвергнув тщательному анализу.
Вас, возможно, удивит предложение использовать этот метод при решении задачи. Здесь вроде бы нет места логике и разуму. Или же, наоборот, вы считаете случайный поиск единственно возможным.
А раз так, то блоки можно выбросить в окно: пусть они сами создадут нужную комбинацию на земле. Шанс, что это действительно произойдет, ничтожен. Значит, нужно установить определенные пределы для игры случая. Например, первое ограничение – пусть блоки падают на пол в комнате. Следующее ограничение – то же, но в пределах стола. И при этих двух ограничениях шансы на успех не повысились, хотя процедура стала намного удобнее. Еще одно ограничение – блоки должны касаться друг друга. Это означает, что их нужно перемещать руками, а не бросать. Случайный поиск здесь таковым и остается, так как действия не планируются, но вероятность успеха постепенно повышается. Можно продолжить в том же духе и ввести новые ограничения, но тогда вас ждут некоторые новые осложнения, о которых мы поговорим чуть позже.
Вероятно, вы все-таки решили прибегнуть к логике, а не отдаться на волю случая. Возможно, вы уже нашли по крайней мере одно решение.
Решение задачи 1
Одно из возможных решений показано на рис. 8. Большинство читателей придут к нему либо к одному из его вариантов. Это решение проще всего найти логическим путем.
Первый подход: в комбинации каждый блок имеет два соседних – спереди и сзади; очевидная форма – круговая.
Другой подход заключается в образовании какой-либо простой комбинации, а затем в превращении ее в нужную путем модификации. Такой комбинацией мог бы стать ряд, где каждый блок, кроме крайних, касается двух других. Крайние блоки можно соединить, придав ряду круговую форму. Каждый из блоков соприкасается с двумя другими, и, значит, проблема решена.
Менее тривиальное решение изображено на рис. 9. Если вы пришли к нему, можете поздравить себя – вам не откажешь в оригинальности ума. Особенностью этого решения является то, что его почти невозможно найти методом случайного поиска. Как уже отмечалось, одно из ограничений задачи состоит в обязательном касании блока с двумя другими. Если вы желаете достичь успеха, не забывайте об этом. В решении, представленном на рис. 8, не все блоки касаются друг друга, а составляют практически две группы блоков. |