Читаем Как сдвинуть гору Фудзи? Подходы ведущих мировых компаний к поиску талантов полностью

Для начала притворимся, что гоблин — это «бездумный магнит», который отслеживает каждое ваше движение и старается держаться к вам как можно ближе. Вот как вы можете попробовать его обхитрить: сделайте небольшой круг в середине озера. Это изрядно досадит гоблину — он попытается обежать вокруг все озеро (а ваша лодка проплывет всего несколько метров). Гоблин не сможет поспеть за вашей лодкой, потому что ему придется описать гораздо больший круг, чем пройдет ваша лодка. Это значит, что, описывая такие круги, вы сможете оказаться от гоблина на расстоянии больше радиуса, если измерить его по прямой, проходящей через центр озера.

Это подсказывает решение. Спросите себя: «Каков радиус самого большого круга с центром в середине озера, по которому я могу двигаться так, чтобы гоблин успевал за мной?»

Это должен быть такой круг, который позволил бы вам преодолевать расстояние, составляющее четверть того, что преодолевает гоблин. Это круг с радиусом r/4.

Начинайте двигаться по этому кругу по часовой стрелке, и гоблину придется со всей скоростью бежать также по часовой стрелке, чтобы оставаться в самой близкой к вам точке на берегу озера. Если же вы поплывете против часовой стрелки, гоблину придется сделать то же самое. А теперь вот в чем главная хитрость. Если вы станете двигаться по кругу с радиусом чуть меньшим, чем r/4, гоблин уже не сможет поспевать за вами. Он начнет постепенно отставать.

Это значит, что вы сможете оказаться от гоблина на расстоянии 11/4 радиуса. Один из способов добиться этого — начать движение по спирали от центра озера, приближаясь к окружности радиусом r/4, но все-таки оставаясь внутри нее. Пока вы будете внутри «этого зачарованного круга», гоблин не сможет успевать за вами. Вы можете плыть таким образом, пока гоблин не отстанет от вас на полные 180 градусов. Тогда ваша лодка будет на противоположной от гоблина стороне озера (по отношению к центру озера) и на расстоянии по прямой от гоблина в 5/8 диаметра озера (вы на одной прямой, проходящей через центр озера с гоблином, и гоблин на расстоянии радиуса от центра, а вы на расстоянии от центра почти в 1/4 радиуса, или в 1/8 диаметра). Такие геометрические соотношения дадут вам возможность спастись. Вы немедленно перестаете кружиться и по прямой устремляетесь к самой дальней от гоблина точке на берегу озера. Вам нужно покрыть дистанцию чуть больше, чем 3/4 радиуса, а гоблину — расстояние Пиг. То есть ему придется преодолеть расстояние в 4Пи/3 раз большее, чем вам, и, поскольку гоблин двигается в четыре раза быстрее, чем вы, ему для этого потребуется время, которое можно вычислить, умножив необходимое вам время на 7Пи/3. Значение числа Пи больше, чем три (если точно, в 1,047. раза), и это значит, что если вы все выполните по плану, то успеете высадиться на берег и убежать от гоблина до того, как он сумеет вас поймать.

Действительно ли это решение головоломки? Что, если гоблин умен и уже знает о подобном плане? Ему необязательно подобно преданному псу кружиться за вами вокруг озера, особенно если он понимает, что вы затеваете.

Да, но даже если гоблин абсолютно точно знает, что вы планируете сделать, это ему не поможет. Вы можете взять мегафон и прокричать: «Эй, гоблин! Вот что я обязательно сделаю. Я буду крутиться вокруг озера по этому маленькому кругу с радиусом чуть меньше, чем одна четвертая часть радиуса озера. Ты сам можешь все подсчитать! Как только я окажусь в точке окружности на расстоянии в 180 градусов от тебя, я поплыву к берегу, и мы оба знаем, что я успею тебя обогнать. Теперь мы можем решить нашу проблему легким способом, трудным способом или глупым способом. Легкий способ — ты признаешь, что проиграл и спокойно даешь мне возможность доплыть до противоположного берега и убежать от тебя. Трудный способ — ты будешь гоняться за мной. Это потребует от нас обоих больших усилий, но результат все равно окажется точно таким же. Наконец, вот глупый способ. Если ты попытаешься применить „контрстратегию", то есть бежать не на полной скорости, бежать в противоположную сторону, бегать туда-сюда или даже отбежать подальше от озера, все эти трюки только помогут мне быстрее оказаться от тебя на расстоянии в половину окружности (180 градусов), и я все равно убегу от тебя».

В разных компаниях применяют разные вариации этой головоломки. Иногда вы оказываетесь в середине круглого поля, огороженного колючей проволокой, вокруг которого бегает собака-убийца, стремящаяся до вас добраться. В еще одной версии это лиса, которая пытается поймать утку, плавающую в середине круглого озера (хотя трудно себе представить утку, хорошо знающую геометрию).

Всегда ли солнце всходит на востоке?
Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT