Читать книгу "Найти умного. Как проверить логическое мышление и творческие способности кандидата - Уильям Паундстоун"
Шрифт:
Интервал:
Закладка:
? У вас есть b коробок и n банкнот в один доллар…
Основная идея решения аналогична той, что использовалась в задаче о золотом слитке. Вы используете бинарную систему счисления. Положите в первую коробку 1 доллар, во вторую 2, в третью – 4 и т. д. Любую нужную сумму можно представить как сумму различных степеней числа 2.
Отличие от приятной загадки с золотым бруском заключается в том, что данная головоломка проверяет, как вы «справляетесь с исключениями». Одна из сложностей связана с тем, что не все n оказываются суммой последовательных степеней числа 2. У вас, вероятно, образуется какой-то «остаток» денег после того, как вы разложите по коробкам все возможные для данного n последовательные степени числа 2. Еще одна проблема – вам может не хватить коробок.
Допустим, у вас 100 долларов. У вас будут коробки, в которые вы положите 1, 2, 4, 8, 16, 32 … доллара, но у вас окажется недостаточно денег для того, чтобы в следующую коробку положить 64 доллара, поскольку вы уже положили в предыдущие коробки 1 + 2 + 4 + 8 + 16 + 32 = 63 доллара. Это значит, что у вас есть остаток в 37 долларов, а это число – нечетное и никак не может быть степенью двойки.
Каким же образом вы сможете получить любую требуемую сумму от 0 долларов до 100? Используя первые шесть коробок, вы можете выплатить любую сумму от 0 до 63 долларов (чтобы выплатить 0 долларов, вы «передаете» ноль коробок!!!).
А что если вам нужно выплатить 64 доллара? Сначала вы отдаете седьмую коробку, в которой 37 долларов. Затем вычитаете 37 долларов из 64 долларов, и остается 27 долларов. Эту сумму вы можете выплатить, используя первые шесть коробок, суммы в которых соответствуют степеням числа 2. В данном конкретном случае вы отдаете коробки, сумма денег в которых равна 37, 16, 8, 2 и 1 доллару. Аналогичный принцип можно использовать для любой суммы в пределах 100 долларов.
Когда интервьюер спрашивает вас об «ограничениях» для b и n, он имеет в виду: «Каким образом вы можете определить, будет ли данный план работать для конкретных значений b и n?». Например, очевидно, что, если у вас есть миллион долларовых банкнот и всего одна коробка, такой план работать не будет. У вас недостаточно коробок для такой суммы. Обратите внимание, что обратная проблема вас не должна беспокоить: если у вас мало долларов и много коробок – все в порядке.
Вам нужно найти общую формулу, которая связывает b и n. Набросайте таблицу, показывающую, какую сумму вы можете выплатить, если у вас есть данное количество коробок.
b n
1 до 1 доллара
2 до 2 + 1 = 3 долларов
3 до 4 + 2 + 1 = 7 долларов
4 до 8 + 4 + 2 + 1 = 15 долларов.
Уже с первого взгляда видно, что добавление каждой новой коробки примерно удваивает количество денег, которое вы можете выплатить. Для двух коробок максимальная сумма 3 доллара, для трех коробок – 7 долларов. Если давать точный ответ, то b коробок достаточно для 2b 1-долларовых банкнот. Для того чтобы схема работала, n не должно превосходить 2b – 1.
Это приемлемый ответ. Он будет выглядеть немного более изящно, если вы добавите по 1 к правой и левой части: n + 1 < 2b. Это аналогично утверждению, что n должно быть меньше или равно 2b.
Как бы ни отражала эта загадка «цифровой дух нашего времени», она использовалась в той или иной форме еще со времен Ренессанса. Обычно ее называют задачей на взвешивание Баше, потому что она была упомянута в книге Клода Каспара Баше «Приятные и восхитительные задачи» (Problemes plaisans et dekctables), опубликованной в 1612 году. Баше спрашивал, какое минимальное количество гирь необходимо для того, чтобы уравновесить любой вес от 1 до 40 фунтов. Еще более ранняя версия этой задачи, тоже о взвешивании, была опубликована в трактате об измерениях Николо Тартальи в Венеции в 1556 году. Ответ, конечно, – 1, 2, 4, 8, 16 и 32 фунта. Для ренессансных гуманистов необходимость использования степеней числа 2 была гораздо менее очевидной, чем для интервьюеров из Microsoft, привычных к использованию двоичной системы счисления.
? У вас баночка, в которой драже трех цветов: красного, зеленого и синего…
Четыре. Если вы достаете только три драже – они могут все оказаться разных цветов. Если вы берете четыре драже – по крайней мере два из них обязательно будут одинакового цвета.
Это вариация Microsoft на тему более старой задачи о том, сколько носков вам нужно достать из ящика комода в темноте, чтобы быть уверенными в том, что у вас будет пара, подходящая по цвету. В компании Bankers Trust, например, спрашивают именно о носках. Если носки могут быть двух цветов, то ответ, очевидно, три.
? У вас три корзины с фруктами…
Представьте, что вы взяли какой-то фрукт из корзины с надписью «Яблоки». Какую информацию это вам дает? Только один бит информации, который сообщает вам, яблоко это или апельсин. Допустим, это яблоко. Корзина, из которой вы его только что достали, с названием «Яблоки», не может быть на самом деле корзиной, где только яблоки. Если уж вы нашли там яблоко, это значит, что в данной корзине должны быть перемешаны яблоки с апельсинами. Прекрасно. Тогда у нас остаются две корзины. На одной из них надпись «Апельсины», а на другой – «Яблоки и апельсины». В корзине «Апельсины» не может быть апельсинов (потому что все ярлыки с названиями ложные), это не может быть и смесь яблок с апельсинами (мы ведь уже знаем, что это корзина с ярлыком «Яблоки», из которой мы достали яблоко). Таким образом, в корзине с ярлыком «Апельсины» должны быть только яблоки, и тогда в корзине с ярлыком «Яблоки и апельсины», очевидно, одни апельсины.
Можно ли считать, что мы нашли решение? Нет. Мы сделали оптимистичное предположение о том, что достанем яблоко из корзины с названием «Яблоки». Это сразу позволяет прийти к выводу, что в данной корзине смесь апельсинов и яблок. Но вы также могли достать апельсин из корзины с надписью «Яблоки». В данном случае невозможно установить, что в этой корзине с надписью «Яблоки» только апельсины или смесь яблок и апельсинов.
Вам нужно быть уверенным в том, что фрукт, который вы достали из корзины, даст вам понять, что в этой корзине. Единственный способ добиться этого – взять фрукт из корзины, на которой ярлык «Яблоки и апельсины». Поскольку все ярлыки неверные, там должны быть фрукты только одного типа. И, достав фрукт, вы знаете, какого именно.
Если это был апельсин, то в данной корзине только апельсины. Тогда у нас остаются две корзины с названиями «Яблоки» и «Апельсины». В одной из этих корзин действительно яблоки, а в другой – смесь. Снова, поскольку известно, что все ярлыки ложные, яблоки не могут находиться в корзине с названием «Яблоки» – они должны быть в корзине с надписью «Апельсины». Это значит, что смесь яблок и апельсинов находится в корзине с названием «Яблоки». Аналогичные рассуждения позволяют решить задачу, если вы достали из корзины с надписью «Яблоки и апельсины» яблоко.
Внимание!
Сайт сохраняет куки вашего браузера. Вы сможете в любой момент сделать закладку и продолжить прочтение книги «Найти умного. Как проверить логическое мышление и творческие способности кандидата - Уильям Паундстоун», после закрытия браузера.