Шкатулочка Пандоры

Владимир Семенякин (г. Киев)

 

«Есть лишь две бесконечные вещи:

Вселенная и глупость. Хотя насчет

Вселенной я не уверен.»

А. Эйнштейн

Лекции по теории программирования, которые читал Алексей Григорьевич Скоморохин, всегда были пыткой для студентов. Монотонный, спокойный голос и шорох мела вызывали убаюкивающий эффект, противиться которому было крайне непросто. А на экзамене Алексей Григорьевич спрашивал исключительно по конспекту. Хорошисты и отличники вынуждены были постоянно балансировать между сном и явью, что сильно истощало их нервную систему.

Андрей Шуманский не терзал себя подобными сомнениями. Он берег свою нервную систему, зная, что в мире существует такая прекрасная вещь, как ксерокс. Поэтому, удобно устроив голову на кулаках, от дремал на лекциях.

— И отсюда следует… Что порядок быстродействия программы… Записали?.. Находится в промежутке от эн, до эн в квадрате…

Зашуршал мел. Андрей приподнял голову и взглянул на доску. Зевнул и опять лег.

— Как видите, в данном случае этот метод не работает. Теперь запишем. Взаимовызов… процедур и функций… Может привести… К переполнению стека…

Андрей зевнул и еще шире разлегся на парте. На ощупь достал из портфеля бутылку минералки. Глянул на лектора. Алексей Григорьевич с фанатичным блеском в глазах, с ног до головы перепачканный мелом, писал на доске жуткие формулы. Студенты медленно выпадали в осадок.

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

Алексей Григорьевич, сверля его взглядом, с нажимом произнес:

— …Что, в свою очередь…

Ощутив изменение в тоне лектора, студенты воспряли ото сна. Андрей, чувствуя на себе жгучий взгляд, глубокомысленно кивнул и внимательно посмотрел в конспект.

— …Значит, этот случай лучше подходит при решении практических задач…

Андрей подождал немного и вытащил руку из-под парты. Он думал осторожно поставить злополучную бутылку на пол, но вместо нее в его кулаке обнаружил небольшую пластмассовую коробочку с двумя кнопочками. Андрей в ступоре уставился на загадочный предмет. Затем опустил голову, заглядывая под парту. Бутылки и там не было.

Не веря своим глазам, Андрей огляделся по сторонам.

— И, наконец, рассмотрим случай с дополнительным внешним модулем… Оптимальность в этом случае несомненно падает, однако…

«Однако!..» — прошептал Андрей, выкладывая коробочку на стол. Только сейчас он заметил прикрепленную к ней бумажку. На ней было написано:

«Шкатулочка Пандоры»

Данный прибор разработан сотрудниками факультета Безумных и Опасных Манипуляций (БОМ) для глубоко нелинейного анализа искажения вектора везения в локальной точке пространства.

Инструкция по использованию:

1. Нажать одну из кнопок, расположенных на верхней грани прибора.

2. Произнести команду вслух.

3. Подождать пять секунд, пока синтаксический анализатор распознает желание.

4. В случае удачного анализа последует исполнение команды, кнопка сохранит свое нажатое положение. В противном случае кнопка вернется в исходное состояние, и желание исполнено не будет.

Предупреждение: НЕ РАЗБИРАТЬ ПРИБОР!!! НЕ ИСПОЛЬЗОВАТЬ РЕКУРСИВНЫЕ ПОЖЕЛАНИЯ!!!

Андрей облизал губы и перевернул листок.

«О приборе

В версии 1.78 был исправлен ряд ошибок и недоработок. Ради однозначности трактовки из устройства исключен блок анализатора сокровенных желаний («Шар желаний», см. версия 1.45). Был расширен потенциал ШП. Теперь объем заказа на выполнение может достигать 300 мега-Хоттабычей. Синтаксический анализатор отныне включает в себя семантический дешифровщик.

Несмотря на качественные изменения к лучшему, разработчик не смог ликвидировать некоторые недостатки. В частности, прибор не защищен от рекурсивных алгоритмов…»

— Вы что там делаете?..

Андрей вздрогнул и осторожно посмотрел по сторонам.

— Да, да, вы, не вертите головой. На четвертом ряду! Вы мне сегодня весь день мешаете вести лекцию!.. Что вы там делаете?

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

— Фамилия?

Андрей жалостливо прошептал:

— Алексей Григорьевич…

— Свои имя и отчество я знаю, — спокойно сказал он. — А ваша фамилия?.. Для начала встаньте!

Андрей молча повиновался. «Мы слушаем тебя, о мудрый Каа…» — почему-то вспомнилось ему.

— Ладно, — подумав, сказал лектор. — Ваше лицо я запомнил. Мы увлекательно побеседуем на экзамене. Садитесь.

Алексей Григорьевич продолжил монотонным голосом:

— Единственный случай оптимального использования этого метода — алгоритмы сортировок. Рассмотрим так называемую быструю сортировку, или quick sort…

Слушатели снова занялись каждый своим делом.

Андрей тяжело опустился и мрачно уставился в окно. «Вот невезуха!» — подумал он. На улице весна, поют птички, вокруг буйная зелень, точно подошедшие дрожжи. Все это, увы, говорило о близкой летней сессии. «Побеседуем на экзамене!.. — вспомнил Андрей. — Э-эх… Тяжела моя доля… А до сессии — всего три недели…»

Он отвернулся от окна и уставился в конспект. Потом взглянул на шкатулочку Пандоры. Покрутил ее в руках.

Коробочка из блестящей пластмассы, явно пустотелая, с абсолютно неряшливо впаянными кнопками, она сильно смахивала на обычный студенческий прикол, вроде ручки, бьющей током. Конечно, хорошо продуманная шутка, но все же… А впрочем, почему бы и нет? Чего на свете не случается… И, если подумать, как объяснить исчезновение бутылки?

Андрей еще раз заглянул под парту. Бутылка так и не появилась. Загадочно. Что ж…

1. Нажать одну из кнопок, расположенных на верхней грани прибора.

Кнопка утопилась мягко, без щелчка.

2. Произнести желание вслух.

«Пусть этой лекции не будет» — шепотом сказал Андрей. В воздухе немного потемнело. На солнце набежала тучка. Ничего из ряда вон выходящего не случилось. «Что и требовалось доказать…» — разочарованно подумал Андрей. Он небрежно забросил коробочку обратно в стол.

3. Подождать пять секунд, пока синтаксический анализатор распознает желание.

«Пусть этой лекции не будет» — сказала шкатулочка приятным женским голосом.

4. В случае удачного анализа последует исполнение команды, кнопка сохранит свое нажатое положение.

* * *

Это напоминало смену кадра в кино. Беззвучно и сразу.

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

Постояв секунд десять, Андрей немного пришел в себя и огляделся. Он сразу понял, что находится возле третьего корпуса университета. Сквозь широкие окна виднелись веселые после пары студенты.

После пары? Андрей достал мобильный телефон. Час пятьдесят. Все верно. Теория программирования полностью выпала из потока времени.

Андрей почувствовал, что его правая рука до сих пор что-то сжимает, опустил глаза. Сиреневая пластмасса тускло вспыхнула на солнце. Все те же неряшливо вплавленные в пластмассу две кнопки. И одна из них была глубоко утоплена.

В случае удачного анализа последует исполнение команды, кнопка сохранит свое нажатое положение.

Андрей сел на скамейку и призадумался. Он понял, что ему предстоит нелегкая задача — из бесконечного количества возможностей выбрать одну единственную так, чтобы потом не было мучительно жалко. Даже доктор Фауст запутался в своих желаниях, а ведь у него в запасе их было неограниченное количество. А тут — одно, оставшееся из двух.

Еще в детстве его злило, как глупо распоряжались желаниями герои сказок. Цветик-семицветик, борода Хоттабыча, щука, пойманная Емелей, не давали Андрею покоя. И теперь он перебирал в уме все прочитанное и все глубже укреплялся в мнении, что огромные литературные наработки человечества не помогут ему. Он понял, что думать придется самому.

Пожелать счастья для всех? Нет, не сработает — что счастье для одного, может быть катастрофой для другого. Или эти логические противоречия автоматически улаживаются? А может, шкатулка осчастливит каждого лишь на короткое время, после чего все пойдет своим чередом? Нет, не катит, так рисковать нельзя. Есть ведь ТОЛЬКО ОДНО желание.

Может быть, заказать что-нибудь только для себя? Машинку, которая печатает деньги? Бессмертие? Нет, это все очень банально…

Андрей с силой ударил кулаком о скамейку. Ну что за несправедливость? Почему именно он?!

Эх… А может быть загадать что-нибудь самое простое, но возвышенное… Там, устроить дождь из цветов или повстречать девушку своей мечты…

Тьфу ты! Что за бред?! Не, так дело не пойдет! Надо решать вопрос фундаментально. Уйти в отшельничество, глубоко заняться философией, постичь смысл бытия и только потом, спустя годы… Может быть, Андрей избранник судьбы! Шкатулка будет передаваться от отца к сыну как реликвия, и однажды, какой-нибудь дальний потомок…

Андрей даже всхлипнул, но тут же понял, что все это глупые фантазии. У него просто не хватит терпения — слишком чесались руки быстрее нажать на вторую кнопку.

Андрей вскочил — он вспомнил, кто ему сможет помочь.

Он достал мобильный, набрал номер Кирилла. Наконец, трубка ответила.

— Алло?

— Кирилл, привет. Слушай… Надо срочно одну вещь уладить.

— Что, так печет? — наконец спросил он.

— Да! Я тебе сейчас задам один вопрос. Он может показаться глупым, но…

— Переходи к делу.

— Представь, тебе выпала возможность загадать любое желание. И оно исполнится… Но желание только одно. Да… Что бы ты загадал?

Кирилл засмеялся.

— Ты что, соцопрос проводишь? «А что, это тоже идея, между прочим…» — заметил он про себя.

— Нет, просто скажи, что бы ты загадал?

Кирилл недоверчиво помолчал.

— Ты что, прикалываешься, да?

— Да нет же!

— А зачем тебе?

Андрей сцепил зубы.

— Ты же мозг! Что тебе, тяжело?!

— Да ладно! Если так срочно… Я бы заказал… Хм, заказал бы…

Кирилл замолчал, но Андрей терпеливо ждал. Он знал: если Кирилл брался за вопрос, то брался фундаментально, со всей серьезностью.

Андрей глянул на бредущих мимо людей и внезапно ощутил собственную важность. Все они зависят от него! И ничего не подозревают… Вот какая ответственность на мне!

— Алло, Андрюха, ты еще слушаешь? Я перебрал возможные решения и пришел к выводу, что наиболее полная формулировка всемирного счастья… Тебя ведь именно она интересует?

«Голова!» — уважительно подумал Андрей.

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

Андрей, ошарашенный, не отвечал.

— Миллион желаний… — прошептал он. — Миллион… Как я сам не догадался… Просто ведь!

— Алло, ты слушаешь? Если это и запрещено, можно организовать все взаимовызовом желания из самого себя! А если и это нельзя, то… Алло, ты слушаешь?.. Алло…

Андрей не слушал. Он медленно положил телефон в карман и вытащил шкатулочку. Полюбовался игрой света на полированной поверхности.

1. Нажать одну из кнопок, расположенных на верхней грани прибора.

Кнопка нажалась мягко, без щелчка.

2. Произнести желание вслух.

«Я хочу получить возможность загадывать миллион желаний» — как можно разборчивее сказал Андрей. Как и в прошлый раз, сразу ничего не случилось.

3. Подождать пять секунд, пока синтаксический анализатор распознает желание.

Андрей нетерпеливо постучал по коробочке пальцем.

4. В случае неудачного анализа кнопка вернется в первоначальное состояние и желание исполнено не будет.

Коробочка негромко щелкнула. Андрей напряженно смотрел на кнопки. Все было по-прежнему, одна кнопка нажата, вторая отжата. А пониже кнопок, маленькими красненькими буковками значилось: «Недопустимая команда. Недостаточно мощности системы».

Андрей нахмурился. Он еще раз прочитал инструкцию к шкатулочке. «Разбирать ее нельзя. А вот что такое рекурсивные алгоритмы?.. Ладно, а если так?..».

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

Андрей задумчиво посмотрел на непослушный прибор. «Неужели поломалась?» — с отчаяньем подумал Андрей. И вдруг его озарило. Он взволнованно встал, огляделся, потом опять, щурясь, взглянул на шкатулочку. Все просто. И генильно. Оставалось только правильно оформить команду. Он вдруг рассмеялся. Его даже дрожь пробила.

1. Нажать одну из кнопок, расположенных на верхней грани прибора.

— Так! — громко повторил он, надавливая на кнопку.

2. Произнести желание вслух.

«Я хочу получить еще одну шкатулку Пандоры, которая в точности соответствовала бы параметрам данной» — четко произнес Андрей.

BIGITALRU_66

3. Подождать пять секунд, пока синтаксический анализатор распознает желание.

Андрей, довольный своим красивым желанием, замер, ожидая результата.

4. В случае удачного анализа последует исполнение команды, кнопка сохранит свое нажатое положение.

«Я хочу получить еще одну шкатулку Пандоры, которая в точности соответствовала бы параметрам данной» — повторила шкатулочка произнесенное желание. Запахло озоном. В воздухе что-то замаячило, и перед Андреем появилась новая шкатулочка. Она повисела секунду в воздухе, а потом упала на землю.

— Сработало! — Андрей издал победоносный кличь.

Он нагнулся, поднимая новую шкатулочку. К его удивлению, обе кнопки на ней были нажаты.

1. Нажать одну из кнопок, расположенных на верхней грани прибора.

2. Произнести желание вслух.

3. Подождать пять секунд, пока синтаксический анализатор распознает желание.

4. В случае удачного анализа последует исполнение команды, кнопка сохранит свое нажатое положение.

«Я хочу получить еще одну шкатулку Пандоры, которая в точности соответствовала бы параметрам данной» — сказала шкатулочка.

Опять запахло озоном. Третья шкатулка Пандоры соткалась из знойного воздуха пред глазами Андрея…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *