
Number systems of the world, sorted by complexity of counting (2006) - ColinWright
http://www.sf.airnet.ne.jp/ts/language/number.html
======
no_identd
A LOT of these have massive errors. I strongly recommend comparing all that to
this paper:

[https://pdfs.semanticscholar.org/5ca1/fa0ffca55e9003053de2f5...](https://pdfs.semanticscholar.org/5ca1/fa0ffca55e9003053de2f5ef36a25819109b.pdf)
\- Harald Hammarström - Rarities in Numeral Systems (2009)

And this page:

[https://mpi-lingweb.shh.mpg.de/numeral/](https://mpi-
lingweb.shh.mpg.de/numeral/) "Numeral Systems of the World's Languages"

By the way: If anyone can find a digital copy of this paper from 1840 by
Augustin-Louis Cauchy (yes, THAT Cauchy!):

[https://scholar.google.com/scholar?cites=6877129426190119313...](https://scholar.google.com/scholar?cites=6877129426190119313&as_sdt=2005&sciodt=0,5&hl=en)

I'd very much appreciate it.

Donald E. Knuth cites it in TAOCP while discussing Balanced Ternary:

"Cauchy pointed out that negative digits make it unneccesary for a person to
memorize the multiplication table past 5x5." [Comptes Rendus Acad. Sci. 11
(Paris, 1840), 789-798]

But he doesn't elaborate on it further, and neither does anyone else from what
I can tell, and I have yet to figure out the trick. (I currently try to teach
myself to EFFICIENTLY do all my mental arithmetic in balanced ternary - not an
easy task!)

~~~
joshuamorton
>But he doesn't elaborate on it further, and neither does anyone else from
what I can tell, and I have yet to figure out the trick

5 * 9 = 5 * (10 - 1) = 50 - 5 = 45

Specifically, you need to know everything in the 5x5 area, and how to multiply
by 10.

More generally, any digit 6-9 can be rewritten as (10 - (10 - digit)) and then
you can apply distribution rules to clean things up. Here's a three by two
digit example:

247 * 68 =

    
    
        (10 - 3) * (10 - 2) +         // 7 * 8
        10 * (10 - 3) * (10 - 4) +    // 7 * 60
        10 * 4 * (10 - 2) +           // 40 * 8
        10 * 10 * 4 * (10 - 4) +      // 40 * 60
        10 * 10 * 2 * (10 - 2) +      // 200 * 8
        10 * 10 * 10 * 2 * (10 - 4)   // 200 * 60
    

evaluating we get

    
    
        100 - 50 + 6 +
        10 * (100 - 70 + 12) + 
        10 * (40 - 8) + 
        100 * (40 - 16) + 
        100 * (20 - 4) + 
        1000 * (20 - 8)
    

And then to finish up:

    
    
        00056 +
        00420 +
        00320 + 
        02400 +
        01600 +
        12000 =
    
    

16796, which is the correct answer.

Edit:

The fun thing to think about is conceptually why this works. If you consider
numbers as just bits, all you're doing is converting the highest bit from base
to sign, without actually changing it, doing the multiplications on the lower
bits, and then tracking the sign to know whether or not to add or subtract
later.

Or to put it another way, you're shifting your set of numbers from being +0 -
+10 to being -5 - +5. This makes the lookup table smaller, but requires you to
do some additional intermediate lookups (up to four, one in each "quadrant" of
the 10x10 table) to be as powerful.

Fun to conceptualize that way.

~~~
pierrebai
I think this is one instance where using a larger look-up table (i.e.
multiplication table up to 10x10) yields clear benefit. The technqiue using
only 5x5 increases the number of intermediary results to keep in one's head.

~~~
jacobolus
Most everything is easier with negative digits. Easier addition, easier
rounding, easier multiplication, much easier subtraction. The one part that
needs slightly more distinct techniques vs. what you are used to is division,
but it's still probably easier overall.

The grandparent poster's example only looks more complicated because we don't
have standard glyphs for the negative digits.

------
jazzyb
I don't understand how the author is judging complexity. The top one, Huli, is
a base-15 number system but looks quite regular otherwise. French, on the
other hand, switches from a base-10 to a base-20 at 80 and then switches
things up at 97.

According to the listing, Welsh sits somewhere between these two but it has
separate numbering systems for {20s, 40s, 60s, 80s}, {30s, 70s, 90s}, and
{50s}. That seems much more complicated than either Huli or French.

~~~
dingo_bat
Agreed. Hindi is ranked 4th most difficult but the system is identical to
English (rank 41). Just the symbols for the digits are different. Even they
are similar looking!

~~~
Manishearth
Hindi/Marathi are _not_ easy, you _almost_ have to memorize the numbers 1-100.

Hindi and Marathi both have dedicated names for the tens (11, 12, 13, ...) and
after that numbers are named in the reverse order of their digits. E.g. 45
will be five - forty.

_except_ the word for five will be different from the word for five in, say,
75. Similarly, the word for "fifty" in the fifties is different for many of
them.

There's a lot of variation which you basically don't realize if you speak
these languages natively, the variation can't be boxed into "rules" to make it
easy to learn, and the end result is that you just end up implicitly
memorizing it.

It's hard to realize because you basically end up modeling this subconsciously
as there being multiple ways to say "five" and multiple ways to say "seventy",
so the numbers seem to be following a fixed scheme, but in reality you've
learned which synonym to use where.

In fact when folks talk about french numbers being weird and complex, this is
often the counterexample I give.

I suspect this complexity arose from having synonyms for numbers which
eventually randomly settled down, and also from having sandhi (rules for
melding words together) which got corrupted over time, leading to things like
"tay/ees" vs "chau/bees"

The website probably should have used the "different form"/"different word"
thing it did for English. But note that the site did consider "twelve" to be
its own number, not 10 + 2, which is basically what's happening here too, just
extended 1-100.

~~~
dingo_bat
> Hindi and Marathi both have dedicated names for the tens (11, 12, 13, ...)

Same deal with English.

> and after that numbers are named in the reverse order of their digits. E.g.
> 45 will be five - forty.

Which is similar in complexity to English, just the order of speaking is
reversed.

> _except_ the word for five will be different from the word for five in, say,
> 75. Similarly, the word for "fifty" in the fifties is different for many of
> them.

Now I realize what you're saying. It seems that I _have_ memorized every
number. Because I never thought of this.

~~~
Manishearth
> Same deal with English.

>

> Which is similar in complexity to English, just the order of speaking is
> reversed.

Yes, I was mentioning these to paint an accurate picture, not to contrast with
English :)

\-----

As a native Marathi / nonnative Hindi speaker, I can tell you that the Hindi
numbers are pretty hard to get, and took me forever to get used to, even
though the variations are almost the same as the ones Marathi has.

(However if you asked me about Marathi I'd have the exact same response as
you, "what complexity? oh wait I see I've memorized everything oops")

------
drewmate
I didn't see Russian listed anywhere on there, but I suspect it would be in
the top 20 on this list. It is a pretty straightforward base 10 complicated by
archaic phonetic rules that change the pronunciation and stress of words with
logical roots in unintuitive ways.

In addition, countable nouns (like cars, people, cities, but also including
multiples of 100, 1000, etc...) change form depending on how many of them
there are (1, 2-4, 5-20, 21-24, 25-30 etc...) Usually these separate forms are
phonetically related, but sometimes there is no connection at all. These rules
don't come in to play when strictly counting numbers until 200, but is an
integral part of what makes it hard to count things in Russian.

There are also wrinkles like the word for 40 (сорок) and 90 (девяносто) that
don't fit in the usual tens pattern like 20 (двадцать - two * ten) or 30
(тридцать - three * ten). Any Russian speakers care to explain what's going on
with those two?

~~~
Fins
Initially, Russian used the same convention for 40 as it does for other
multiples of 10. Other Slavic languages still do. However, 4 (четыре) is the
longest word by syllable count in the 1..10 range, so over time a shorter word
that used to mean "a bag with 40 skins" (apparently a standard count to make
some article of garment) came to replace it. The original meaning is all but
forgotten now, and _сорок_ means only 40 now.

90 also used to use the more common form of "nine tens", but for some reason
came to be replaced by something that looks like it means "nine out of
hundred" but the etymological explanations for it seem to be rather
inconsistent. One explanation is that Russians used to count by 9 -- remnants
of that can be seen in fairy tale expressions for "very far" \-- "beyond three
times nine lands".

~~~
drewmate
Thanks for sharing. Studying Russian has helped me notice interesting patterns
in languages. Where there is much friction (due to heavy usage, difficult
pronunciation, or both) languages tend to break rules to make things easier to
say.

For example, it's trivial to conjugate a verb like "контролировать" that you
might only use occasionally, but verbs that you say dozens or hundreds of
times a day, like "идти" become increasingly irregular.

~~~
Fins
You're welcome.

Irregular verbs generally tend to be the ones that are used most often, and
that are most archaic.

Looking at languages there are lost of interesting patterns you can notice.
It's even more fun if you look at ones from an entirely different family. Some
agglutinating languages may have no irregular verbs at all.

------
julian_t
I'd put traditional Danish numbering a bit further up the list... it's pretty
strange
([http://www.olestig.dk/dansk/numbers.html](http://www.olestig.dk/dansk/numbers.html))

~~~
hvidgaard
I was surprised to see Danish so high on the list, but after a short while
it's not too surprising. It's base-20 for the first 20, like English. Then
it's backwards base-10 up to 99 with special names for the whole 10s, 42 is
pronounced as "2 and 40". Above 99 it's base-10, 420 is "400 20". But if it's
428 it's "400 8 and 20", but 512 would be "500 12". It's not difficult, it's
just a special rule for 1-20, backwards for 21-99, and then straight as you'd
expect (including the irregular first 20). Okay, it is quite confusing for
none native speakers. To our defense, we use a system more like the Norwegian
and Swedish for formal documents including contracts and cheques, though the
latter has been phased out in Denmark.

The "perfect" would obviously be a purely base-10 with suffix if it's 10's,
100's, ect.

~~~
gkya
That's nearly exactly how german works, 428 is "4-vier 100-hundert 8-acht and-
und 20-zwanzig", 512 is "5-fünf 100-hundert 12-zwölf" (excuse my rusty
german). The und thing is a germanic thing I think.

~~~
hvidgaard
"Und" is "and" in English, and "og" in Danish, and is used in Danish as well.
I think Danish and German is quite similar as you say. It's been 20 odd years
since I learned to speak German and it's long since forgotten.

------
hmd_imputer
Another article that was published a while ago had an interesting take on it.
There is a quite high correlation between numbering system of a language and
how quickly/well kids speaking that language learn counting and math skills.
Apparently, the article itself is taken down, but I found an archived version.
[https://web.archive.org/web/20141215072819/http://playthink....](https://web.archive.org/web/20141215072819/http://playthink.wordpress.com:80/2008/11/17/gladwell-
why-asianchildren-are-better-at-maths/)

~~~
FabHK
There are a few articles linked on the bottom of the page (dead links
unfortunately) that purport to show the same.

> "Surprisingly enough, it's proven that Chinese-speaking children are better
> at counting numbers than English-speaking counterparts because of their
> language. Bilingual children are better at counting when they think in
> Chinese than in English. The irregularity of the English number system makes
> it harder for children to count numbers properly."

Not sure I'd give much credence to that hypothesis, though. Hard to
disentangle the many factors influencing the results. Having said that, the
Chinese numbers are pleasantly short and logical, by and large.

English has the advantage again in big numbers, where we have million,
billion, trillion, quadrillion, etc., with the Latin prefix N indicating 10^6N
(long scale, old British usage and continental Europe) or 10^(3+3N) (short
scale, American usage).

[https://en.wikipedia.org/wiki/Long_and_short_scales](https://en.wikipedia.org/wiki/Long_and_short_scales)

~~~
vixen99
If the questionable hypothesis is correct, this would surely factor into the
assessment of numerical IQ.

------
dsr_
Can any native Hindi speakers comment on the difficulty of doing math in a
language where every number 1-100 has its own name?

~~~
abhishek0318
Every number doesn't have its own name. If you observe closely there is a
pattern. From 21 to 99, you can observe that every digit at tens place decides
the suffix and the digit at ones place decides the prefix.

~~~
rlpb
Further, the author says "because of a lot of irregular pronunciation, you
have to memorize 100 different words as if it were a centesimal system". But I
could say the same for English. We won't say "three-ty-three", we say "thirty-
three". Hindi's irregularities are pretty much at the same level.

~~~
Manishearth
No, for English the thirty series is always "thirty-foo", and numbers ending
in three are always "foo-three". It is true that you don't use the same word
for the number when it's in the tens place (like Chinese), but that's as
complex as it gets (and the teens, of course).

In Hindi 40 and 41 use a different word for 40. 51 and 53 use a different word
for 50. 55 and 45 use a different word for 5. Plus there are smaller but still
significant differences between pretty much every number -- e.g. it's
chauBees, but puchees and chauNtees.

------
gbrown_
The base 60 Sexagesimal system used by the Sumerians is always an interesting
one.

[https://en.wikipedia.org/wiki/Sexagesimal](https://en.wikipedia.org/wiki/Sexagesimal)

~~~
bfrydl
> The number 60, a superior highly composite number, has twelve factors,
> namely 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, and 60, of which 2, 3, and 5
> are prime numbers. With so many factors, many fractions involving
> sexagesimal numbers are simplified.

It really makes a lot of sense actually.

~~~
mjlee
This is why I still do woodwork (as a hobby) in imperial units.

------
DonaldFisk
Khmer is quite complex, and isn't on the list:

[https://en.wikipedia.org/wiki/Khmer_numerals](https://en.wikipedia.org/wiki/Khmer_numerals)

Up to 30, it's got a base-5 component so, for example, 16 = dap pram muoy (10
5 1). From 30 onwards, like Thai it follows the more straightforward Chinese
number system.

The numbers in Scottish Gaelic have recently been changed and are now base 10:

[https://gaelicgrammar.org/~gaelic/mediawiki/index.php/Numera...](https://gaelicgrammar.org/~gaelic/mediawiki/index.php/Numerals#Decimal_20-99)

------
tekkk
Wow, Tongan number system is simply beautiful. Pure elegance that I'm sure
could be defined mathematically very simply. I myself can only scribble a
naive implementation for natural numbers in Javascript:

    
    
      const base = ["noa", "taha", "ua", "tolu", "fa", "nima", "ono", "fitu", "valu", "hiva"]
      const tongan = n => Array.from(n.toString()).map(Number).map(i => base[i]).join(" ")
    

Not as pretty as I thought. Probably would look better in functional language.

~~~
kccqzy
English numbers aren't much harder.

    
    
        englishNumbers n = ten9 !! (n - 1)
          where infixr 7 <<>>
                (<<>>) = liftA2 (<>)
                ten1 = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
                ten2 = ten1 <> ["ten", "eleven", "twelve"] <> (["thir", "four"] <> prefixes) <<>> ["teen"] <> (["twen", "thir", "for"] <> prefixes) <<>> ["ty"] <<>> ([[]] <> ten1)
                  where prefixes = ["fif", "six", "seven", "eigh", "nine"]
                ten3 = ten2 <> ten1 <<>> ["hundred"] <<>> ([[]] <> ten2)
                ten6 = ten3 <> ten3 <<>> ["thousand"] <<>> ([[]] <> ten3)
                ten9 = ten6 <> ten3 <<>> ["million"] <<>> ([[]] <> ten6)

------
wodenokoto
Danish typically ranks high on these lists because the names for some of the
tens have etymological roots in base 20.

But this doesn't add any complexity, compared to having just named tens.

Nobody is doing any kind of everyday counting in base 20 in Denmark.
Everything is base 10, with 9 irregular named numbers for the multiples of 10.

~~~
madmoose
As a parent of English/Danish bilingual children I have to tell you that you
are very wrong on this.

My children still occasionally make mistakes when saying numbers in the range
50-99 in Danish, they haven't said the English numbers wrong for years.

That the word for 50 contains the word "tre" (three) and the word for 90
contains the word "fem" (five) is very confusing to our children, especially
when the English equivalents are so simple in comparison.

~~~
wodenokoto
Fair enough. As a child I could never remember if it was 50 or 60 that had
"halv" (50 is halvtreds, 60 is treds, neither word have any resemblance to 5,
6 or 10, but 50 sounds a bit like it ought to be half of 60), but my point is
that the number system has nothing to do with base 20 except a few
etymological roots of some names, that for all intents and purposes might as
well be random.

But you are right: they are worse than random, since they are named close
enough to other entities to be confuseaable.

------
empath75
I think they're understanding the complexity of the Japanese number system by
quite a lot:
[https://en.wikipedia.org/wiki/Japanese_counter_word](https://en.wikipedia.org/wiki/Japanese_counter_word)

~~~
yorwba
Classifiers are mostly orthogonal to the number system, and they're really no
different from e.g. English using "a herd of cattle" or "a murder of crows" to
redundantly encode the kind of thing being talked about. I'm actually not
aware of any language that _doesn 't_ have different units of measurement for
different objects, it's just that some languages effectively make it mandatory
to use them. (E.g. in Chinese you could just always say 一个 to mean "one" but
it sounds strange when there's a specific form that's more common.)

~~~
Grue3
Yes, they are different from English. In English you say "one herd of cattle",
"two herds of cattle", and so on. You just need to know a plural of "herd" and
the regular numbers.

In Japanese the _numbers themselves_ depend on the counter. You can't say "one
day", "two days", "three days". You can only say "one day (ichinichi)",
"foobar (futsuka)", "bazbar (mikka)", and so on. And this counting system is
used pretty much _only_ for days. Except similar words to "foo" and "baz" here
are also used to count some things. But not the others.

Also the rules of combining a numeral and the counter are very inconsistent.
Here's my implementation of Japanese counters, suffices to say the English
version would be like 5 lines of code:

[https://github.com/tshatrov/ichiran/blob/master/dict-
counter...](https://github.com/tshatrov/ichiran/blob/master/dict-
counters.lisp)

And here's the pronounciation generator for so called "regular" numbers.

[https://github.com/tshatrov/ichiran/blob/master/numbers.lisp...](https://github.com/tshatrov/ichiran/blob/master/numbers.lisp#L82)

I.e. 1000 = issen (ichi+sen) 3000 = sanzen (san + sen), 800 = happyaku (hachi
+ hyaku).

~~~
yorwba
The completely different number words used for some things are actually not
related to the counter, although it may appear like that because the written
form uses the Chinese-style number + counter system. The spoken words are
holdouts from ancient Japanese (before Chinese become influential), which TFA
discusses separately.

The situation is similar to Latin or Greek numerals in English, which are also
applied pretty inconsistently. E.g. _duplicate, triplicate, quadruple_ , ...
but _pair, triple, quadruple_ , ...

In general, all languages are riddled with exceptions, ambiguities,
contradictions and archaic forms, but it's easier to notice them when you're
learning the language later in life and have the "logical" structures of your
mother-tongue to compare them to.

------
jessaustin
Typo on traditional Welsh:

 _The traditional system is basically vigesimal (base 20), but it calls 50
"half-hundred" and 19 "two-nine", and it also uses 15 as a reference point._

------
elvirs
im surprised not to see lezgi language here. we have 1 to 10 10+1 to 9 20+ 1
to 19 (ie 37 is 20 and 19) 40+ 1 to 19 3x20+ 1 to 19 (ie 63 is 3 twenties and
13) 4x20+ 1 to 19 hundred

------
rhcom2
> Polari is an in-group language of gay and lesbian people, theatrical people,
> and circus people in Britain. It's interesting 8 and 9 are called "6 + 2"
> and "6 + 3" in Polari.

Crazy interesting
[https://www.youtube.com/watch?v=Y8yEH8TZUsk](https://www.youtube.com/watch?v=Y8yEH8TZUsk)

------
abhishekjha
Doesn't hindi have its own script for numbers as well?

The 'Number' column doesn't reflect the same fact very well.

[https://en.wikipedia.org/wiki/Indian_numerals](https://en.wikipedia.org/wiki/Indian_numerals)

------
jankovicsandras
Why is hungarian considered more complex than english or norwegian? Hungarian
has regular "on ten one" for 11 and "on ten two" for 12, when english and
norwegian have different words; and teens are arguably also more complex.

~~~
Taniwha
probably because it has special words for 20 and 30, and switches between "9
on 20" to "30 plus 1"

------
amelius
Nice to see that Mandarin and Japanese have simple number systems compared to
English. It might be worthwhile to learn them and impress your friends while
you're reading numbers from restaurant menu-cards :)

~~~
panglott
Apparently the person who compiled this has never tried to actually count
items in Japanese, to figure out which of the two number systems to use and
which counter words to use.

~~~
magissima
The person who compiled it is Japanese

------
mtreis86
Wouldn't unary be considered the least complex?

~~~
ColinWright
Which language/society/culture uses unary?

~~~
hinkley
Some very dead ones. Unary works like hash marks. We have archaeological
records of that number system but GP is wrong. Doing multiplication in your
head with unary would be a horrible experience. And any number over ten would
put the listener to sleep.

I suspect in a unary language system people would invent their own counting
strategy in their head.

Edit: ah but Wikipedia reminds me that gauge systems such as for grinding or
wire use unary for negative numbers. Eg 000 guage wire or OO ground flour.

------
PaulHoule
How do they quantify complexity?

------
ColinWright
I've deliberately chosen a title for this submission that says more clearly
what the content is about, and thus helps people decide whether to click
through and have a look.

The page's actual title is: _" Number Systems of the World"_

I don't think that's as informative.

