I’ve been reading (listening to, actually) a book on the state of scientific and technical knowledge in what has traditionally been referred to as the “Dark Ages” (roughly the 5th to 14th centuries). One of the things I became intrigued by was the use of Roman numerals for relatively complex math during this period.
Quick Review
You’re probably familiar with Roman numerals. Conceptually, they’re easy. Letters represent numbers. To get the value of a number written in Roman numerals you simply add the individual numerals (or groups of numerals). Here are the letters you use to represent values up to 3999:
I = 1
V = 5
X = 10
L = 50
C = 100
D = 500
M = 1000
Values are read from left to right, and it is traditional to put the larger numerals first. So III is 3, XII is 12, and DCLXVI is 666 (“let the reader understand”). One complication is that you never write the same numeral more than 3 times in a row, and that a smaller numeral appearing before a larger one means it should be subtracted from the larger value. So 14 is XIV, not XIIII. 3999 is MMMCMXCIX. That being said, the Romans weren’t real picky about how these numbers were written. For simplicity, I’m going to ignore the no-more-than-3 rule from time to time in my discussion below.
I’ll use the symbol => to indicate that I’m rearranging or simplifying.
Adding and Subtracting
Addition with Roman numerals is easy: just put all the numerals in one group and rearrange them. So III + XVIII is IIIXVIII => XVIIIIII => XVVI => XXI.
Subtraction is similar. Convert larger digits into groups of smaller ones if needed for convenience, then just subtract similar numerals from each other. So XXI – III is XVVI – III, which is XVIIIIII – III, or XVIII.
Doubling and Halving
Before getting into the fun stuff (multiplication and division), it helps to think about how to double and halve a value written in Roman numerals.
Doubling is just adding the number to itself. To double a number, just write two of each numeral. Twice XXI is thus XXIXXI => XXXXII => XLII. Twice III is IIIIII => VI.
Halving is similar. Divide each numeral by 2 and append the next lesser numeral if there is a remainder. This is slightly circular, since we’re saying to divide by 2 you divide by 2. If you don’t remember what half of L is, write it out as XXXXX and take half of those X’s to get XX with a remainder of half an X, which is V. To get half of 666, follow these steps:
DCLXVI
CCL + half of CLXVI
CCL + L + half of LXVI
CCL + L + XXV + half of XVI
CCL + L + XXV + V + half of VI
CCL + L + XXV + V + II + half of II
CCL + L + XXV + V + II + I
CCLLXXVVIII
=> CCCXXXIII
Multiplication
Multiplication is a combination of doubling, halving, and adding remainders. Note that in general A ✖️ B is the same as (A / 2) ✖️ (B ✖️ 2). That is, if we double one term and halve the other term, the result is the same. In familiar terms, 8 ✖️ 3 (24) is the same as half 8 (4) times twice 3 (6). Further note that we can do that again, so:
8 ✖️ 3 = 4 ✖️ 6 = 2 ✖️ 12 = 1 ✖️ 24 = 24
Where it gets tricky with Roman numerals is handling remainders. Consider if we reversed which term was being doubled and which halved in our example above:
8 ✖️ 3 = 16 ✖️ 1.5 = 32 ✖️ .75 ….
While the first attempt actually took us all the way to the correct answer, the second appears to be getting harder and harder. Let’s look at both with Roman numerals:
Half
VIII
IIII
II
I
Double
III
VI
XII
XXIIII => XXIV
When the halving leaves a remainder, we can ignore it. I’ll mark those with an asterisk.
* drop remainder
Half
III
I
Double
VIII
XIIIIII => XVI
When we have remainders, there’s one more step. We need to add the value from the “double” column to our final result to get our true result (since we technically dropped that value when we dropped the remainder):
XVI + VIII = XVVIIII => XXIIII => XXIV
We can apply this technique to do arbitrarily complicated multiplication:
39 ✖️ 81
* drop remainder
* drop remainder
* drop remainder
* drop remainder
Half
XXXVIIII
XVIIII
VIIII
IIII
II
I
Double
LXXXI
CLXII
CCCXXIIII
DCXXXXVIII
MCCLXXXXVI
MMDLXXXXII
Now add the value from the “double” column for each odd value in the “half” column.
MMDLXXXXII + LXXXI + CLXII + CCCXXIIII = MMDCCCCLLLXXXXXXXXXXIIIIIIIII => MMMLLLVIIII => MMMCLIX
I’ll leave it to the reader to verify my work.
Division
I’m not sure if there’s an easier way to do vision, but here’s what I came up with. First, we repeatedly double the divisor (the number by which we’re dividing) until we get a value greater than the dividend (the number that we’re dividing). We’ll keep track of the multiplier for each because we’ll need those later.
Consider 365 / 12
In Roman numerals: CCCLXV / XII
Multiplier
I
II
IV
VIII
XVI
XXXII
Double
XII
XXIV
XXXXVIII
LXXXXVI
CLXXXXII
XXXLXXXIV
exceeds dividend
We now know that XII goes into CCCLXV at least XVI times. We can make a note of that, and also subtract the doubled divisor to see what’s left:
CCCLXV – CLXXXXII = CCLLXXXXXXIIIII – CLXXXXII = CLXXIII
XII goes into CCCLXV XVI times with a remainder of CLXXIII
Now check our list of doubled divisors to see what the biggest one is that goes into the remainder (CLXXIII). It looks like LXXXXVI is the largest value that is smaller than CLXXIII. Repeat the step above. Subtract LXXXXVI from our remainder and add the multiplier to our accumulated multiplier:
CLXXIII – LXXXXVI = LLXXXXXXVVIII – LXXXXVI = LXXVII
XII goes into CCLXV XXIV times with a remainder of LXXVII
Repeating, this time using a multipler of IV and a doubled divisor of XXXXVIII:
LXXVII – XXXXVIII = XXXXXXVVIIIIIII – XXXXVIII = XXVIIII => XXIX
XII goes into CCLXV XXVIII times with a remainder of XXIX
Repeating, this time using a multiplier of II and doubled divisor XXIV:
XXVIIII – XXIIII = V
XII goes into CCLXV XXX times with a remainder of V.
Since V is less than our original divisor, that’s as far as we can go.
Again, the proof is left to the reader.
Fractions
I’m not going to dwell on fractions except to say that the only fractions the Romans seemed to use were twelfths and halves. Each twelfth was a dot following the number. Since we coincidentally divided by 12 in the previous example, our remainder of 5 would be represented as 5 dots following XXX. I believe they were written in some kind of pattern, perhaps like we use on dice or playing cards.
Halves were represented using the letter S. So 7/12 would be “S..” or maybe “S:”.
Conclusion
While this is fun, and while our Middle Ages ancestors could do amazing things using these simple techniques, it’s pretty clear why the hard math was being done using base-10 and place value representation.