The unary numeral system is the bijective base-1 numeral system. It is the simplest numeral system to represent natural numbers: in order to represent a number N, an arbitrarily chosen symbol representing 1 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.
Marks are typically clustered in groups of five for legibility. This is similar to the practice of using digit group 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 a unary counting system clustered in counts of five is the Chinese, Japanese and Korean custom of writing the Chinese character, Korean Hanja character, or Japanese kanji character 正 which takes 5 strokes to write, one stroke each time something is added. 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.
In Brazil but also France, a variation of this system is commonly used: Instead of arranging "sticks" in linear fashion, such as in the "herringbone" method, four marks are arranged to form a square, with the fifth mark crossing the square diagonally.
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.
There is no explicit symbol representing zero in unary as there is in other traditional bases, so unary is a bijective numeration system with a single digit. If there were a 'zero' symbol, unary would effectively be a binary system. In a true unary system there is no way to explicitly represent none of something, though simply making no marks represents it implicitly. Even in advanced tallying systems like Roman numerals there is no zero character, instead the Latin word for 'nothing,' nullae, is used.
Compared to standard 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 length 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.
Full article ▸