English

Counting is Easy

Computational Complexity 2007-05-23 v1 Data Structures and Algorithms

Abstract

For any fixed kk, a remarkably simple single-tape Turing machine can simulate kk independent counters in real time. Informally, a counter is a storage unit that maintains a single integer (initially 0), incrementing it, decrementing it, or reporting its sign (positive, negative, or zero) on command. Any automaton that responds to each successive command as a counter would is said to simulate a counter. (Only for a sign inquiry is the response of interest, of course. And zeroness is the only real issue, since a simulator can readily use zero detection to keep track of positivity and negativity in finite-state control. In this paper we describe a remarkably simple real-time simulation, based on just five simple rewriting rules, of any fixed number kk of independent counters. On a Turing machine with a single, binary work tape, the simulation runs in real time, handling an arbitrary counter command at each step. The space used by the simulation can be held to (k+ϵ)log2n(k+\epsilon) \log_2 n bits for the first nn commands, for any specified ϵ>0\epsilon > 0.

Cite

@article{arxiv.cs/0110038,
  title  = {Counting is Easy},
  author = {Joel Seiferas and Paul Vitanyi},
  journal= {arXiv preprint arXiv:cs/0110038},
  year   = {2007}
}