Number systems of the world, sorted by complexity of counting (2006)
sf.airnet.ne.jp
sf.airnet.ne.jp
https://pdfs.semanticscholar.org/5ca1/fa0ffca55e9003053de2f5... - Harald Hammarström - Rarities in Numeral Systems (2009)
And this page:
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...
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!)
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.
Here's a fantastic book on the subject:
https://www.amazon.com/Dead-Reckoning-Calculating-Without-In...
The grandparent poster's example only looks more complicated because we don't have standard glyphs for the negative digits.
Tome XI, p.789 (16 novembre 1840)
Found in
Oeuvres complètes d'Augustin Cauchy
1ère série
Tome V
III. Notes et articles extraits des comptes rendus hebdomadaires des séances de l'Académie des Sciences. (Suite.)
105. Calculs numériques. sur les moyens d'éviter les erreurs dans les calculs numériques.
PDF of Tome V here:
https://www.e-rara.ch/download/pdf/5702285?name=Tome%2520V%4...
As you have already found those errors and done that comparison, could you share some of what you've found?
EDIT: For whatever it's worth, I checked French on https://mpi-lingweb.shh.mpg.de/numeral/, and it lists the same forms for 70 and 90 for French and Belgian French. Which is incorrect.
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.
edit: actually it seems like the Huli system is more uniform than English. It doesn't switch up the word order after 15. So it's "15 and 1 ..." whereas english goes "3 and 10.." and then "2x10 and 1..."
They're just counting how many fifteens they've got: "two complete fifteens, and 3 from the third fifteen"
Before the 1990s there were also all sort of over-complicated hyphen rules. Thank god it's now simpler; hyphens everywhere.
See what happens when you're used to a saner numbering system? I always hear "soixante ..." and my brain goes "6... something" :p
1. (most complex)
19. French
33. Swiss French
69. (simplest)It's regular in construction, but the words change and drop parts of the basic number without a particular pattern (as an outsider to the language). "kira" -> "ki" makes sense. "duria" -> "dauni" -> "dau" kind of makes sense, but adds an extra letter (how does the sound actually change?). "tebira" -> "tebone" -> "tebo". A pattern is forming. Drop the "r-" and replace it with an "n-" (except for some) and later drop the "n-".
Compare this to "Fifty five" and "Fifty seven".
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.
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.
>
> 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")
- quatre-vingt is the name for 80 - dix-sept is the name for 17
so we could also say it's eighty-seventeen.
Japanese numerals are quite easy, but when it comes to actually counting things, it is quite complex. There are two series of numeral words that are used in different contexts, as well as dozens of counter words that pair with a variety of semantic categories. Many combinations or number + noun have quite irregular combinations, like "hatachi" (20 years of age) or "hatsuka" (20th day of the month).
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?
As for 90 - devyanosto - I think it comes from “9 to 100”. Its strange though its 9 and not 10.
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".
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.
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.
The "perfect" would obviously be a purely base-10 with suffix if it's 10's, 100's, ect.
I wonder if a French people make change with 20 Euro-cent coins more often than others do.
Would be interesting to see relative difficulty of each language, some of them are pretty close and have very similar difficulty while others are close but widely different difficulty.
Presumably you were not a kid anymore at that time. The OP was mentioning about how easy is for kids to acquire/improve their maths skills if counting is made easier by the language itself. That probably doesn't correlate that well with those kids' academic performances 15 or 20 years later, but that was not the point.
> "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/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...
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.
example:
chauntees = 34 = 30 and 4. Word for 30 is tees and word for 4 is char - combined to form chaun-tees.
chhuttees = 36 = 30 and 6. Word for 30 is tees and word for 6 is chey - combined to form chhut-tees.
So on for all the words from 20 till 99. The combination rules might not be obvious here in transcription, but they come naturally to a Hindi speaker. So in reality there are dedicated words for 1 thru 19, and then the rest are compounds formed from the words corresponding to each digit.
NOTE: Hindi has its own script for numbers as well which the article is missed to point out.
So, it's not like each number has a different name.
However, it's almost like that.
Basically, the numbers can be broken down into a logical tens and ones place -- e.g. 45 will be five-forty (paintalees -- pai/talees), however the exact way to say "five" will change based on the number, as will the exact way to say "forty".
There's not much logic to it -- some tens series are more regular than others -- which means you effectively end up memorizing it, but subconsciously.
Imagine numbers in English but there were three ways of saying each digit, and each number 1-100 would pick from the synonyms. It's basically like that. That is to say, it's not too hard to deal with -- you'll mentally be associating the numbers with their words so it's not hard to say it out, and because they're synonyms not hard to understand when spoken.
It really makes a lot of sense actually.
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.In Haskell, first line would be the same without the const and the other could be
tongan = intercalate " ".reverse.map ((base !!).(`mod` 10)).takeWhile (> 0).iterate (`div` 10)
(ISTM that there must be a better alternative to takeWhile + iterate).
val base = List("noa", "taha", "ua", "tolu", "fa", "nima", "ono", "fitu", "valu", "hiva")
def tongan(n: Int) = n.toString.map(_.asDigit).map(base).mkString(" ") 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)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.
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.
But you are right: they are worse than random, since they are named close enough to other entities to be confuseaable.
A counter word is a counting prefix (different from the abstract number word) plus different suffixes for a variety of things. This object is long and thin, so it has one suffix. This object is a drop of liquid, so it has another suffix. This is a small animal, so it gets another suffix. The counting words for use with these suffixes are different from abstract numbers.
Frankly, the system is bananas.
Abstract numbers in Japanese are very simple and logical, but the overall counting system of e.g. English is objectively simpler, and I don't think you can disregard counting when examining the number system.
In English, it would be equally correct to say "10 cows" or "a herd of cattle." Literally translating the first (without counting words) in Japanese would be incorrect.
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...
And here's the pronounciation generator for so called "regular" numbers.
https://github.com/tshatrov/ichiran/blob/master/numbers.lisp...
I.e. 1000 = issen (ichi+sen) 3000 = sanzen (san + sen), 800 = happyaku (hachi + hyaku).
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.
https://www.quora.com/Why-is-a-group-of-crows-called-a-murde...
I have never heard or read the words "a murder of crows" (or "a parliament of owls" and similar contrivances) except in lists of collective nouns.
Compare:
Jap Sin
1 ひとつ イチ
2 ふたつ ニ
3 みっつ サン
4 よっつ ヨン
5 いつつ ゴ
6 むっつ ロク
7 ななつ シチ
8 やっつ ハチ
9 ここのつ キュウ
10 とお ジュウ
The native Japanese numerals are themselves variable: I have listed the forms they assume when paired with the つ counter. For example, two days is rendered as ふつか and six days as むいか.Further reading: https://en.wikipedia.org/wiki/Japanese_numerals https://japanese.stackexchange.com/questions/14959/are-there...
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.
Crazy interesting https://www.youtube.com/watch?v=Y8yEH8TZUsk
The 'Number' column doesn't reflect the same fact very well.
What's more, there are multiple characters for the same numeral, mostly used to counter tempering in bookkeeping.
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.
The page's actual title is: "Number Systems of the World"
I don't think that's as informative.