fencepost error
1. (Rarely "lamppost error") 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. The "obvious" formula
exhibits a fencepost error.
See also zeroth and note that not all offbyone errors are fencepost errors.
The game of Musical Chairs involves a catastrophic offbyone 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
coding implementation. The error here involves the difference between expected
and worst case behaviours of an algorithm.
[Jargon File]
(19941201)
Nearby terms:
FEL « femto « fence « fencepost error »
fepped out » FEPROM » Fermat prime
