Предупреждение: у нас есть цензура и предварительный отбор публикуемых материалов. Анекдоты здесь бывают... какие угодно. Если вам это не нравится, пожалуйста, покиньте сайт. 18+

История №-9932066

ПРОГРАММИСТКИЕ БАСHИ (by Эдсгер Дейкстра)

В незапамятные времена была организована железнодорожная компания.
Один из ее руководителей (вероятно, коммерческий директор) обнаружил,
что можно сэкономить много денег, если снабжать туалетом не каждый
железнодорожный вагон, а лишь половину из них. Так и решено было
сделать.
Однако вскоре после начала пассажирских перевозок начались
неприятности с туалетами. Причина их была крайне проста: хотя компания
была только что создана, неразберихи уже хватало, и о распоряжении
коммерческого директора ничего не знали на сортировочных станциях, где
все вагоны считали одинаковыми. В результате в некоторых поездах
туалетов почти совсем не было.
Чтобы исправить положение, каждый вагон снабдили надписью,
говорящей, есть ли в нем туалет, и сцепщикам было велено составлять
поезда так, чтобы около половины вагонов имели туалеты. Хотя это и
осложнило работу сцепщиков, вскоре они с гордостью сообщили, что
тщательно выполняют новую инструкцию.

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

Я рассказывал эту историю разным людям. Программистам, как правило, она
нравилась, а их начальники обычно сердились все больше и больше по мере
ее развития. Hастоящие математики, однако, не могли понять, в чем соль.
+354
Проголосовало за – 455, против – 101
Статистика голосований по странам
Чтобы оставить комментарии, необходимо авторизоваться. За оскорбления и спам - бан.

Общий рейтинг комментаторов
Рейтинг стоп-листов

Рейтинг@Mail.ru