Рассказавший мне эту историю программист уверял, что это истинная
правда.
В незапамятные времена была организована железнодорожная компания. Один
из ее руководителей (вероятно, коммерческий директор) обнаружил, что
можно сэкономить много денег, если снабжать туалетом не каждый
железнодорожный вагон, а лишь половину из них. Так и решено было
сделать.
Однако вскоре после начала пассажирских перевозок начались неприятности
с туалетами. Причина их была крайне проста: хотя компания была только
что создана, неразберихи уже хватало, и о распоряжении коммерческого
директора ничего не знали на сортировочных станциях, где все вагоны
считали одинаковыми. В результате в некоторых поездах туалетов почти
совсем не было.
Чтобы исправить положение, каждый вагон снабдили надписью, говорящей,
есть ли в нем туалет, и сцепщикам было велено составлять поезда так,
чтобы около половины вагонов имели туалеты. Хотя это и осложнило работу
сцепщиков, вскоре они с гордостью сообщили, что тщательно выполняют
новую инструкцию.
Тем не менее, неприятности с туалетами продолжались. Hовое расследование
их причин показало, что хотя действительно половина вагонов в поезде
снабжена туалетами, иногда выходит так, что все они оказываются в одной
половине поезда. Чтобы спасти дело, были выпущены инструкции,
предписывающие чередовать вагоны с туалетами и без них. Это добавило
работы сцепщикам, однако, поворчав, они и с этим справились. Но проблема
на этом не кончилась. Поскольку туалеты располагаются в одном из концов
вагона, расстояние между двумя соседними туалетами в поезде могло
достигать трех длин вагонов и для пассажиров с детьми - особенно если
коридоры были заставлены багажом - это было слишком далеко. Тогда вагоны
с туалетами были снабжены стрелкой, и были изданы новые инструкции,
предписывающие, чтобы все стрелки были направлены в одну сторону. Нельзя
сказать, чтобы эти инструкции были встречены на сортировочных станциях с
энтузиазмом - количество поворотных кругов было недостаточным, но,
напрягшись, сцепщики научились делать и это. Теперь, когда все туалеты
находились на равных расстояниях, компания была уверена в успехе, однако
пассажиры продолжали беспокоиться: хотя до ближайшего туалета было не
больше одного вагона, но не было ясно, с какой стороны он находится.
Чтобы решить и эту проблему, внутри вагонов были нарисованы стрелки с
надписью "Туалет", сделавшие необходимым правильно ориентировать и
вагоны без туалетов.
На сортировочных станциях новая инструкция вызвала шок: сделать
требуемое вовремя было невозможным. В критический момент кто-то, чье имя
сейчас невозможно установить, заметил следующее. Если мы сцепим вагон с
туалетом и без оного так, чтобы туалет был посередине, и никогда их не
будем расцеплять, то сортировочная станция будет иметь дело вместо N
ориентированных объектов с N/2 объектами, которые можно во всех
отношениях и со всех точек зрения считать симметричными. Это наблюдение
решило проблему ценой двух уступок. Во-первых, поезда могли теперь
состоять лишь из четного числа вагонов - недостающие вагоны могли быть
оплачены за счет экономии от сокращения числа туалетов, и, во-вторых,
туалеты были расположены на чуть-чуть неравных расстояниях.
Но кого беспокоит лишний метр?
Хотя во времена, к которым относится наша история, человечество не знало
ЭВМ, неизвестный, нашедший это решение, был первым в мире компетентным
программистом.
Я рассказывал эту историю разным людям. Программистам, как правило, она
нравилась, а их начальники обычно сердились все больше и больше по мере
ее развития. Настоящие математики, однако, не могли понять, в чем соль.