В тот самый миг, когда птица долетит до Западного поезда, она поворачивает и летит в обратную сторону. Теперь она уже летит впереди Западного поезда на запад навстречу Восточному. И снова птица первая встретится со встречным поездом. Она снова поворачивает обратно, и начинается новый цикл. Единственная разница в том, что с каждым новым циклом поезда оказываются все ближе и ближе друг к другу. Неважно, насколько близко, потому что птица каждый раз успевает улететь в обратную сторону еще до того, как произойдет столкновение. Это значит, что птица снует туда-сюда бесчисленное множество раз.
Во всяком случае теоретически. За мгновение до столкновения птица окажется зажатой между поездами, которые ее раздавят, но вы можете не обращать внимания на подобные кровавые подробности.
Труднее игнорировать бесконечные ряды. Большинство людей, которых интервьюируют в Microsoft, когда-то изучали их, но многие уже позабыли ко времени интервью в Редмонде.
Вообще-то можно не беспокоиться о бесконечных рядах. Два поезда сближаются с относительной скоростью 35 миль в час (15 + 20 миль в час). Допустим, расстояние между Нью-Йорком и Лос-Анджелесом — 3500 миль. Тогда столкновение поездов произойдет через 3500/35, или 100 часов.
Все это время птица будет в полете, летая между поездами с постоянной скоростью 25 миль в час. Хотя направление полета и меняется, она тем не менее постоянно летит именно с этой скоростью. Таким образом, летая со скоростью 25 миль в час в течение ста часов, птица пролетит 25 х 100 = 2500 миль. Или, если D — это реальное расстояние между Лос-Анджелесом и Нью-Йорком, то столкновение между поездами произойдет через D/35 часов, а птица за это время пролетит 25D / 35, или 5D / 7 миль.
Рассказывают, что кто-то задал один из вариантов этой задачи математику Джону фон Нейману (1903–1957). Тот так быстро дал ответ, что его знакомый сказал: «Ну, ты, наверное, знал, в чем здесь трюк».
«Какой трюк? — спросил Фон Нейман. — Я просто вычислил сумму бесконечного ряда».
Вы читаете английские тексты слева направо, поэтому, допустим, что вы попали в эту ловушку и начали анализировать выражение слева. Что такое константа X?
X — это двадцать четвертая буква английского алфавита, равная 24, возведенным в
степень, значение которой равно значению предыдущей константы W. Поскольку W — это двадцать три в степени U, которая 22 в степени Т, которое 21 в степени. X
Все это значит, что X — это 24, возведенные в степень 23 в степени 22 в степени 21. и так далее, до 3 в степени 2 в степени 1. То есть это 23-ступенчатые экспоненты.
Х — это очень большое число.
Поисковый интернет-портал Google (произносится Гугл) получил свое название от числа, название которого, правда, пишется чуть иначе — googol (гугол), значение которого можно записать как единицу со ста нулями. Есть еще большее число, названное googolplex (гуголплекс) — это единица, за которой следует гугол нулей. Ни гугол, ни гуголплекс не имеют никакого практического применения за исключением иллюстрации того факта, что существуют абсурдные огромные числа. В наблюдаемой вселенной нет никаких объектов, количество которых составляло бы гугол. А гуголплекс — это такое огромное число, что его даже не записать. Поскольку количество нулей в этом числе — гугол, а даже количество атомов или кварков во вселенной меньше, вам никогда не написать это число на бумаге, сколько бы у вас ни было бумаги и каким бы мелким почерком вы ни писали.
Но даже гуголплекс — это маленькое число, если сравнить его с числом X из головоломки Microsoft. Корпорация Intel еще не изготовила достаточно микропроцессоров, чтобы рассчитать значение X. Даже если закон Мура будет выполняться до конца времен и каждые пять лет будут появляться новые Супер-Пентиумы и вы заполните всю вселенную этими процессорами, вы все равно не сможете рассчитать невообразимо огромное значение X.
Тот факт, что интервьюер просит вас рассчитать точное количественное значение выражения, в котором таких X множество, должно подсказать вам, что здесь есть какой-то трюк.
Правильный ответ — ноль. Среди 26 сомножителей должен быть один со значением (X–X) — а это, конечно, ноль. Неважно, чему равны все остальные сомножители — что бы вы ни умножили на ноль, результатом все равно будет ноль.
У таких вопросов с подвохом может быть разная форма. Этот похож на детские картинки-загадки, на которых нужно отыскать спрятавшихся мальчиков или кошку. Нет общего правила поиска трюка — подобно кошке на загадочной картинке, трюк может быть спрятан где угодно. То, насколько быстро вы обнаружите трюк, зависит от того, на что вы обратите внимание в первую очередь, во вторую и третью. Ключевой множитель (X–X), естественно, «спрятан» там, где интервьюеры Microsoft ставят многоточие в выражении, которое нужно вычислить по условиям задачи.
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT