May 7th, 2019

snowman

Ошибка на единицу

В программировании есть понятие «ошибка на единицу». Так называют не просто ошибку, в результате которой ответ отличается от правильного на единицу, а особую категорию ошибок, вызываемых неправильным учётом первого или последнего элементов набора. Самый характерный пример ошибки на единицу — так называемая ошибка заборного столба. Если вы ставите прямой забор длиной 30 м со столбами через каждые 3 м, то сколько столбов вам необходимо? Очевидный ответ «10» ошибочен: хотя забор состоит из 10 трёхметровых отрезков, число столбов на единицу больше числа отрезков. Правильный ответ — 11 столбов.

Ошибки на единицу очень неприятные, потому что, даже когда учёл их, всегда остаётся лёгкое сомнение в том, что учёл правильно. В нужную ли сторону скомпенсировал? С 5 по 10 число включительно — это сколько дней? А сколько ночей? А не наоборот? Каждый раз приходится останавливаться и думать.

В быту есть множество ситуаций, провоцирующих ошибки на единицу или похожие на них. Больше всего меня раздражает то, как мы говорим о времени суток. Во-первых, мы говорим о ещё не наступившем часе: «пять минут седьмого» означает шесть часов и пять минут, а не семь часов и пять минут. Не забыть применить поправку на единицу, причём в правильную сторону! Во-вторых, мы пишем, к примеру, «17», а говорим «пять», что звучит почти как «пятнадцать». Но нет. Семнадцать — это пять. А пятнадцать — это не семь. И полпятого — это не семнадцать-тридцать, а 16:30.

Collapse )