Unary numeral system

From Example Problems
Jump to navigation Jump to search

Template:Table Numeral Systems

The unary numeral system is the simplest numeral system to represent natural numbers: in order to represent a number N, an arbitrarily chosen symbol is repeated N times. For example, using the symbol "|" (a tally mark), the number 6 is represented as "||||||". The standard method of counting on one's fingers is effectively a unary system. Unary is most useful in counting or tallying ongoing results, such as the score in a game of sports, since no intermediate results need to be erased or discarded. 

File:Unary numeral eight.png
Variations on the number eight in unary

Marks are typically clustered in groups of five for legibility. This is similar to the practice of using decimal separators such as spaces or commas in the decimal system, to make large numbers such as 100,000,000 easier to read. The first or fifth mark in each group may be written at an angle to the others for easier distinction. Other example of an unary counting system clustered in counts of five is the Japanese custom of writing the character 正 which takes 5 strokes to write, one stroke each time something is added. Incidentally, 正 (せい, sei) means (logical) true, or correct if used as adjective as in 正しい (tadashī). In the fourth example depicted at left, the fifth stroke "closes out" a group of five, and is sometimes nicknamed the "herringbone" method of counting.

Addition and subtraction are particularly simple in the unary system, as they involve little more than string concatenation. Multiplication and division are more cumbersome, however.

Compared to positional numeral systems, the unary system is inconvenient and is not used in practice for large calculations. It occurs in some decision problem descriptions in theoretical computer science (e.g. some P-complete problems), where it is used to "artificially" decrease the run-time or space requirements of a problem. For instance, the problem of integer factorization is suspected to require more than a polynomial function of the input as run-time if the input is given in binary, but it only needs linear runtime if the input is presented in unary. But this is potentially misleading: using a unary input is slower for any given number, not faster; the distinction is that a binary (or larger base) input is proportional to the base 2 (or larger base) logarithm of the number while unary input is proportional to the number itself; so while the run-time and space requirement in unary looks better as function of the input size, it is a worse function of the number that the input represents.

For a real example of the unary system in ancient mathematics, see the Moscow Mathematical Papyrus, dating from circa 1800 BC.

Dr. Melzak's Q machines, a simplification of Turing machines, basically a set of bottomless pits containing stones, work with the unary number system.

See also

fr:Système unaire sl:Eniški_številski_sistem