Roman numerals _together with some form of abacus_ were far superior to Arabic numerals for commercial calculations until the appearance of decimal adding machines. The user had to memorize the manipulations for the addition table, including carries, which is no harder than modern paper and pencil methods, but far more practical before the invention of paper and pencils. The increasing requirement for multiplication in business over the centuries was apparently a much less important factor, since there is a practical shift and add algorithm for multiplication on the abacus.
If we omit the later use of subtractive notation (iv=4, xc=90 etc.), the original Roman numerals are exactly equivalent to the Chinese abacus where each wire holds four beads below the bar (value I, X, C, M) and one above (value V, L, D, U+2181). It is well known that practiced abacists could beat users of mechanical adding machines in multi-column addition and subtraction. The same technique is taught (under the Korean name Chisanpeop) for two-column finger arithmetic, using the thumbs for the five beads and the other fingers for the one beads.
I don't know the structure of the Roman abacus apart from its use of pebbles (calculi), but I expect that it was quite similar in structure and efficiency. Some kind of abacus was in use in Europe from Roman times until the 17th century.
The first decimal mechanical calculators were invented by Pascal (addition and subtraction) and Leibniz (with multiplication and division also) in the 17th century. Pascal's design was in common use by schoolchildren until electronic calculators took over.
Richard Feynman told a wonderful tale of his encounter with a Japanese abacus salesman in Brazil. Feynman may have been the only person in Brazil at the time who could beat him by mental calculation of "raios cubicos" (cube roots).
I have shown how to work the problems cited below in Roman numerals, and added an example of a modern method for handling pounds, shillings, pence (Lsd).
Edward Cherlin
Generalist
"A knot! Oh, do let me help to undo it."
Alice in Wonderland
> -----Original Message-----
> From: unicode-bounce@unicode.org
> [mailto:unicode-bounce@unicode.org]On
> Behalf Of James Kass
> Sent: Sat, September 22, 2001 4:52 PM
>
> Doug Ewell wrote:
>
> > >> I would be fascinated to see some sort of evidence
> that addition and
> > >> subtraction is easier in Roman numerals than in
> Hindu-Arabic ("European")
> > >> numerals.
> > >
> > > I + I = II
> > > X + X = XX
> > > X + X + X = XXX
> > > C + X = CX
> > > CX - X = C
> >
> > For these carefully chosen examples, sure, but what about:
> >
> > III + IX = XII
III+IX = III + VIIII = VIIIIIII = XII
> > XXIV + XXVII = LI
XXIV + XXVII = XXIIII + XXVII = XXXXVIIIIII = XXXXXI = LI
> > C - I = XCIX
C - I = LXXXXX - I = LXXXXVIIIII - I = LXXXXVIIII = XCIX
Let's get serious. Try 1984 + 1066.
MCMLXXXIV + MLXVI = MDCCCCLXXXIIII + MLXVI = MM DCCCCLL XXXXVIIIII
= MMML = 3050
> > etc. This is no better than European digits, and it
> feels a little like
> > doing math with pounds, shillings, and pence.
Lsd is a simple mixed base. Unfortunately, the only programming language that is good at mixed bases is APL, including its recent manifestation in J.
Lsd1 =. 10 17 9 NB. Arrays are first-class objects in all APLs
Lsd2 =. 7 15 8
Lsd1 + Lsd2 NB. Functions apply to whole arrays
17 32 17
Base =. 0 20 12 NB. 0 means no upper bound on this place
basevalue =. #. NB. J has function assignment
basedigits =. #:
Base basedigits (Base basevalue Lsd1) + (Base basevalue Lsd2)
18 13 5
In English, convert Lsdx to d, add, and convert back. You can also do
Base basedigits (Base basevalue (Lsd1 + Lsd2))
18 13 5
> See the section called "How can I use Roman numerals to do
> arithmetic problems?" at Dr. Math's Roman page:
> http://forum.swarthmore.edu/dr.math/faq/faq.roman.html
>
> There were tricks and shortcuts for performing math operations
> using Roman numerals, but I suspect that doing math in Roman
> numerals is only easier if other numerals are unfamiliar...
>
> Best regards,
>
> James Kass.
>
>
>
>
This archive was generated by hypermail 2.1.2 : Sat Sep 29 2001 - 19:48:12 EDT