Добавить в цитаты Настройки чтения

Страница 71 из 88



У вас 26 констант…

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

X — это двадцать четвертая буква английского алфавита, равная 24, возведенным в степень, значение которой равно значению предыдущей константы W. Поскольку W — это двадцать три в степени U, которая 22 в степени Т, которое 21 в степени… X

Все это значит, что X — это 24, возведенные в степень 23 в степени 22 в степени 21… и так далее, до 3 в степени 2 в степени 1. То есть это 23-ступенчатые экспоненты.

X — это очень большое число.

Поисковый интернет-портал Google (произносится Гугл) получил свое название от числа, название которого, правда, пишется чуть иначе — googol (гугол), значение которого можно записать как единицу со ста нулями. Есть еще большее число, названное googolplex (гуголплекс)—это единица, за которой следует гугол нулей. Ни гугол, ни гуголплекс не имеют никакого практического применения за исключением иллюстрации того факта, что существуют абсурдные огромные числа. В наблюдаемой вселенной нет никаких объектов, количество которых составляло бы гугол. А гуголплекс — это такое огромное число, что его даже не записать. Поскольку количество нулей в этом числе — гугол, а даже количество атомов или кварков во вселенной меньше, вам никогда не написать это число на бумаге, сколько бы у вас ни было бумаги и каким бы мелким почерком вы ни писали.

Но даже гуголплекс — это маленькое число, если сравнить его с числом X из головоломки Microsoft. Корпорация Intel еще не изготовила достаточно микропроцессоров, чтобы рассчитать значение X. Даже если закон Мура будет выполняться до конца времен и каждые пять лет будут появляться новые Супер-Пентиумы и вы заполните всю вселенную этими процессорами, вы все равно не сможете рассчитать невообразимо огромное значение X.

Тот факт, что интервьюер просит вас рассчитать точное количественное значение выражения, в котором таких X множество, должно подсказать вам, что здесь есть какой-то трюк.

Правильный ответ — ноль. Среди 26 сомножителей должен быть один со значением (X — X) — а это, конечно, ноль. Неважно, чему равны все остальные сомножители — что бы вы ни умножили на ноль, результатом все равно будет ноль.

У таких вопросов с подвохом может быть разная форма. Этот похож на детские картинки-загадки, на которых нужно отыскать спрятавшихся мальчиков или кошку. Нет общего правила поиска трюка — подобно кошке на загадочной картинке, трюк может быть спрятан где угодно. То, насколько быстро вы обнаружите трюк, зависит от того, на что вы обратите внимание в первую очередь, во вторую и третью. Ключевой множитель (X — X), естественно, «спрятан» там, где интервьюеры Microsoft ставят многоточие в выражении, которое нужно вычислить по условиям задачи.

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



Разработайте систему счисления с основанием минус 2.

Эта глупая просьба долго использовалась в интервью, проводившихся в компании Microsoft. На самом деле нет никакого «минус двоичного» счисления. Это все равно, что попросить кого-нибудь написать несколько предложений на языке Клингонов — фантастической инопланетной расы из сериала Star Trek.

Тем не менее можно изобрести логичную и последовательную систему счисления с основанием минус 2. Это как раз то, что от вас ожидается.

Мы пользуемся системой счисления с основанием 10. Это значит, что, когда мы записываем числа, мы представляем их как степени числа 10. Например, 176 — это 1 х 10² + 7 х 10 + 6 х 100. (Существует договоренность, что любое число в степени 0 равно 1.) Еще одна важная особенность десятичной системы счисления — это то, что в ней используется десять цифр (0, 1, 2, 3, 4, 5, 6, 7, 8 и 9).

Компьютеры используют систему счисления с основанием 2, или двоичную. В ней используются только две цифры (0 и 1). В многозначном числе (таком, как 10 010) каждый знак или позиция обозначает последовательные степени числа два — 1, 2, 4, 8, 16, 32… Двоичное число, например 10 010, означает 1 х 2 в четвертой степени + 0 х 2³ + 0 х 2² + 1 х 2 + 0 х 2 в нулевой. В обычной, десятичной системе счисления оно равно 18.

В общем, система счисления с любым основанием похожа на систему строительных блоков разных размеров. В десятичной системе размеры этих блоков 1, 10, 100, 1000 и т.д. В двоичной системе размеры блоков — 1, 2, 4, 8, 16 и т.д. Используя комбинации этих «блоков», можно получить любое нужное число.

Итак, какими будут обозначения в системе счисления с основанием минус 2?

Очевидно, что в этой системе счисления числа должны выражаться как суммы степеней числа 2. Последовательность степеней числа —2: -2, 4, -8, 16, -32…

Она отличается тем, что нечетные степени оказываются отрицательными (-2 х —2 = +4, но —2 х —2 х —2 = —8). Таким образом, вам нужно выразить числа как сумму этих положительных и отрицательных степеней.

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