Слон в Каире это термин , используемый в программировании для описания части данных, соответствующие критерии поиска целенаправленно вставленных в конце пространства поиска, для того , чтобы убедиться , что алгоритм поиска , конечны; это юмористический пример дозорной ценности . Этот термин происходит от юмористического эссе, распространенного в Интернете и опубликованного в журнале Byte в сентябре 1989 года, в котором описывается, как люди разных профессий занимаются охотой на слонов. [1]
Алгоритм
В статье описывается, как программисты при охоте на слонов следуют этому алгоритму: [1]
- Отправляйся в Африку .
- Старт на мысе Доброй Надежды . [2]
- Двигайтесь на север упорядоченно, пересекая континент попеременно на восток и запад,
- Во время каждого прохода траверса:
- Лови каждое увиденное животное.
- Сравните каждое пойманное животное с известным слоном.
- Остановитесь при обнаружении совпадения.
В этом алгоритме есть ошибка, а именно ошибка проверки границ : если слоны не найдены, программист продолжит движение на север и окажется в Средиземном море, что приведет к аварийному завершению работы из-за утопления .
Таким образом, опытные программисты модифицируют вышеуказанный алгоритм, помещая известного слона в Каир, чтобы гарантировать, что алгоритм завершится. [3] Таким образом, модифицированный алгоритм выглядит следующим образом:
- Отправляйся в Африку .
- Посадите слона в Каире .
- Старт на мысе Доброй Надежды .
- Двигайтесь на север упорядоченно, пересекая континент попеременно на восток и запад,
- Во время каждого прохода траверса:
- Лови каждое увиденное животное.
- Сравните каждое пойманное животное с известным слоном.
- Остановитесь при обнаружении совпадения.
- Если вы находитесь в Каире, то в Африке нет слонов (кроме того, которого вы туда поместили).
Смотрите также
Рекомендации
- ^ a b Олсен, Питер С. (сентябрь 1989 г.), «Прогнозирование персонала для толстокожих» , Stop Bit, Byte , p. 404
- ^ Мыс Доброй Надежды традиционно считается точка южной Африки, но это на самом деле мыс Игольный .
- ^ Штойбен, Майкл (1998). Двадцать лет до доски . Издательство Кембриджского университета. С. 62 . ISBN 9780883855256.