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

Но представьте, что есть гном, который видит только красные или только зеленые камни на лбу у других гномов. Поскольку демон сообщил всем гномам, что среди них есть хотя бы один такой, у которого красный камень на лбу, гном, который видит только зеленые камни, может прийти к выводу, что он и есть единственный гном с красным камнем. И наоборот: гном, который видит только красные камни, может заключить, что он — единственный гном с зеленым камнем на лбу.

Теперь подумайте о гипотетическом гноме, который видит вокруг только гномов с зелеными камнями. Он должен понять, что у него на лбу — красный камень. Все, что ему нужно сделать — просто шагнуть вперед на следующей перекличке после объявления демона. Он может быть уверен в том, что его безупречно логичные товарищи останутся в строю. Это и будет правильным ответом, который потребовал демон.

Вы можете спросить: а почему другие гномы останутся в строю? Потому ли, что они знают, что у них зеленые камни? Нет. Каждый из этих гномов видит один красный камень (на лбу у того гнома, который собирается выйти из строя) и много зеленых камней (у всех остальных). Это не позволяет никому из них дедуцировать цвет их собственных камней. Они знают, что должен быть хотя бы один камень каждого цвета, и они видят по крайней мере один камень каждого из цветов. Их собственный камень может быть любого цвета.

Эти гномы остаются в строю, потому что им неизвестен цвет их собственного камня. Помните, если кто-то сделает неверный шаг, все гномы погибнут. Логика подсказывает, что единственное безопасное решение — оставаться в строю, если только гном не уверен в том, что у него на лбу красный камень.

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

Если описанный выше сценарий не будет реализован во время первого построения (а скорее всего он не будет реализован), все гномы могут прийти к выводу, что есть по крайней мере два камня каждого из двух цветов. Это могло быть очевидно с самого начала. (если бы все гномы видели много камней разного цвета), но если бы был гном, который бы видел только один камень данного цвета, он мог бы во время второго построения прийти к выводу, что он — вторая персона с камнем этого цвета. Он и второй гном с камнем этого цвета (который рассуждает идентичным образом) сделают шаг вперед во время второго построения. Эта цепочка рассуждений и метарассуждений (рассуждений о рассуждениях) будет продолжаться, пока количество построений после объявления демона не совпадет с реальным количеством гномов с камнями более редкого цвета. На этом построении все безупречно логичные гномы с камнем этого цвета сделают шаг вперед, и (если демон держит свои обещания) все гномы обретут свободу.

Любому студенту, который изучает программирование, известно имя Алонзо Черча. В 1930-х годах Черч сформулировал так называемый тезис Черча — Тьюринга — краеугольный камень в исследованиях искусственного интеллекта (суть тезиса в том, что компьютер можно запрограммировать делать все то, что могут делать люди). Черч также один из немногих людей, которых можно обоснованно считать авторами логических головоломок мирового класса.

Примерно в то же время, когда он сформулировал свой знаменитый тезис, он придумал головоломку о трех садовниках, у которых были пятна грязи на лбу. Их видит другой человек и замечает, что по крайней мере у одного из них грязь на лбу. Каждому из садовников нужно дедуцировать, грязный у него лоб или чистый.

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

Головоломка о «деревне неверных мужей», наверное, самый вычурный вариант. Задача о демоне и гномах отличается от нее тем, что вам, когда вы рассуждаете, нужно поставить себя на место одного из участников этой гипотетической ситуации и продумывать свою стратегию поведения. Я нигде не нашел упоминаний именно об этой версии задачи, автор которой, видимо, не понаслышке знал об опасностях работы в большой организации с плоской организационной структурой.

Четырем туристам нужно ночью переправиться через реку по подвесному мосту.

Никто не знает, почему у туристов имена музыкантов из группы U2.

Перейти на страницу:

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

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

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

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

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT