fencepost error

( n.)

   1.  [common]  A  problem  with  the discrete equivalent of a boundary
   condition,  often  exhibited in programs by iterative loops. From the
   following  problem: "If you build a fence 100 feet long with posts 10
   feet  apart, how many posts do you need?" (Either 9 or 11 is a better
   answer  than  the  obvious  10.) For example, suppose you have a long
   list  or  array  of items, and want to process items m through n; how
   many items are there? The obvious answer is n - m, but that is off by
   one; the right answer is n - m + 1. A program that used the `obvious'
   formula  would  have  a  fencepost error in it. See also {zeroth} and
   {off-by-one  error},  and  note  that  not  all off-by-one errors are
   fencepost  errors. The game of Musical Chairs involves a catastrophic
   off-by-one  error where N people try to sit in N - 1 chairs, but it's
   not  a  fencepost  error.  Fencepost errors come from counting things
   rather  than the spaces between them, or vice versa, or by neglecting
   to consider whether one should count one or both ends of a row.

   2.  [rare]  An  error  induced  by  unexpected  regularities in input
   values,  which  can  (for instance) completely thwart a theoretically
   efficient  binary  tree or hash table implementation. (The error here
   involves  the difference between expected and worst case behaviors of
   an algorithm.)

[glossary]
[Reference(s) to this entry by made by: {banana problem}{off-by-one error}{slop}{zeroth}]