[HN Gopher] How to Multiply Roman Numerals
       ___________________________________________________________________
        
       How to Multiply Roman Numerals
        
       Author : tontonius
       Score  : 49 points
       Date   : 2022-05-09 08:29 UTC (1 days ago)
        
 (HTM) web link (rbutterworth.nfshost.com)
 (TXT) w3m dump (rbutterworth.nfshost.com)
        
       | jacobolus wrote:
       | Binary (halving and doubling) multiplication is one (but not the
       | only) way people multiplied, not just in Rome but in many times
       | and places. The oldest extant example is from the famous Rhind
       | Mathematical Papyrus from three and a half millennia ago.
       | https://en.wikipedia.org/wiki/Ancient_Egyptian_multiplicatio...
       | 
       | Romans did not, in general, use Roman numerals directly for
       | arithmetic. Roman numerals are a kind of serialization format for
       | the state of a counting board. If you want to do arithmetic like
       | a Roman, you need a bunch of lines on a paper (or the ground, or
       | a board, or a piece of cloth) and a pile of tokens or pebbles.
       | Deserialize your input numbers onto the counting board(s),
       | perform your algorithm there, then serialize the result back into
       | your record.
        
         | gumby wrote:
         | Similar to the abacus or knuckle methods.
         | 
         | Btw, the word for pebbles is _calx_ , hence calculate/calculus.
        
         | credit_guy wrote:
         | A few weeks ago I wrote a comment here on HN with the details
         | of the Roman arithmetics. I'll copy/paste it here.
         | 
         | -------------------------
         | 
         | You often hear that it was next to impossible to calculate with
         | Roman numerals. That's not true at all. People developed a very
         | ingenious scheme to do additions and multiplications using
         | pebbles. Since the word for pebble in Latin is calculus, we now
         | call calculus calculus. How did it go? You represented the
         | digits of a number by a pebble. You drew some lines in the
         | sand, some rows and columns. The rows represented the digit
         | magnitude (I, V, X, etc). The columns were for the operands.
         | Two columns for a number. Why two? Because Roman numerals
         | sometimes use negative digits. Let's see a concrete example.
         | You want to do the addition 28+44. That is XXVIII + XLIV. You
         | first draw the lines and put the pebbles in the corresponding
         | squares. Note that XLIV has two negative digits (44 = XLIV =
         | -10 + 50 -1 + 5). So the pebble for 10 and the one for 1 are
         | put on the left side. The first number does not have any
         | negative digits, so no pebbles in its left column.
         | --------------------------------------------------------------
         | L    |        ||       |  o       X    |   oo   ||   o   |
         | --------------------------------------------------------------
         | V    |    o   ||       |  o        I    |  ooo   ||   o   |
         | --------------------------------------------------------------
         | 
         | So, now that we set the pebbles, we need to do the calculation.
         | We can do it in many ways. Let's start by first canceling the
         | digits that can be canceled: a positive 10 pebble with a
         | negative 10 pebble, and a positive 1 pebble with a negative 1
         | pebble. The table looks now like this:
         | --------------------------------------------------------------
         | L   |        ||       |  o       X   |   o    ||       |
         | --------------------------------------------------------------
         | V   |    o   ||       |  o        I   |   oo   ||       |
         | --------------------------------------------------------------
         | 
         | At this point we reduced the initial addition 28 + 44 (XXVIII +
         | XLIV) to the equivalent one XVII + LV ( 17 + 55). Now we just
         | move the pebbles from the fourth column to the second column.
         | --------------------------------------------------------------
         | L   |   o    ||       |          X   |   o    ||       |
         | --------------------------------------------------------------
         | V   |   oo   ||       |          I   |   oo   ||       |
         | --------------------------------------------------------------
         | 
         | We are almost done. We got the result as LXVVII. But this is
         | not a valid Roman numeral, we need to do the simplification VV
         | = X. We remove the two 5-pebbles and add a 10-pebble. Oh, and
         | let's get rid of the last 2 columns.
         | --------------------------------       L  |   o      ||
         | X  |   oo     ||         --------------------------------
         | V  |          ||          I  |   oo     ||
         | --------------------------------
         | 
         | So now our final result, in correct form, is LXXII, or 72.
         | Multiplication can be also performed, and it's quite a lot of
         | fun. I'll explain it in the post below.
         | 
         | Multiplication of Roman numerals. Here we need 3 columns, one
         | each for the multiplicands and one for the result. Our example
         | will be 12 * 61 = XII * LXI. I chose this example so that we
         | don't need to use negative digits; negative digits can be
         | handled easily, but you can get the idea without them. We start
         | with the operands on the first two columns. 12 has one pebble
         | at the X row and 2 at the units row; 61 has one pebble at the L
         | row, one at the X row and one at the I row. The column for the
         | result is now empty.                 D   |    ||          C   |
         | ||       ------------------------------       L   | o  ||
         | X o | o  ||         ------------------------------       V   |
         | ||          I oo| o  ||         ------------------------------
         | 
         | We start removing pebbles from the first multiplicand. For each
         | pebble in the multiplicand, we perform the multiplication with
         | the second multiplicand, which in our case means we "copy" the
         | multiplicand in the results column with an appropriate shift in
         | rows. Since the first mutiplicand has 3 pebbles, there are
         | three steps: Step 1:                 D   |    ||          C   |
         | ||       -------------------------------       L   | o  || o
         | X o | o  || o        -------------------------------       V
         | |    ||          I o | o  || o
         | -------------------------------
         | 
         | Step 2:                 D   |    ||          C   |    ||
         | -------------------------------       L   | o  || oo       X o
         | | o  || oo        -------------------------------       V   |
         | ||          I   | o  || oo
         | -------------------------------
         | 
         | Step 3:                 D   |    ||    o          C   |    ||
         | o       -------------------------------       L   | o  || oo
         | X   | o  || oo o       -------------------------------       V
         | |    ||          I   | o  || oo
         | -------------------------------
         | 
         | So, the result is DCLLXXXII. Of course, LL is not really
         | "legal", so we replace it with a C, so we get DCCXXXII, or 732,
         | which is indeed the correct number.
        
           | jacobolus wrote:
           | > _You drew some lines in the sand, some rows and columns.
           | The rows represented the digit magnitude (I, V, X, etc). The
           | columns were for the operands. Two columns for a number. Why
           | two? Because Roman numerals sometimes use negative digits._
           | 
           | Note that this is speculative. We don't actually have
           | descriptions of how Romans set up or used their counting
           | boards, only indirect evidence that they did most arithmetic
           | and accounting with them. The digits probably went left to
           | right or right to left rather than top to bottom (there is
           | some written account of IIRC Greek and Egyptian counting
           | boards going opposite directions).
           | 
           | The more specific and complete evidence we have today is from
           | medieval Europe, where typically digits were rows and tokens
           | on the lines were used for 1, 10, 100, etc. with tokens in
           | spaces between the lines used for 5, 50, 500. However, since
           | counting board arithmetic was a skill taught directly as oral
           | tradition, most practical algorithms (especially those used
           | by specialists for more obscure operations) have been lost.
           | We can do some additional speculation based on methods used
           | today on bead-on-rod sorobans/suanpans from
           | Japan/Korea/China.
           | 
           | We can speculate (from occasional examples in writing of IX
           | to represent VIIII, etc.) that Romans may have (sometimes?
           | often?) represented "negative" counts on the other side of a
           | dividing line, but this does not have direct evidentiary
           | support.
           | 
           | * * *
           | 
           | For more elaborate speculation about setup and algorithms,
           | Steve Stephenson has done quite a bit of thinking about
           | practical uses of counting boards. It's impossible to judge
           | how close this is to what ancient people actually did, but
           | it's interesting in itself, and IMO worth teaching to young
           | children today as a complement to pen and paper (and mental)
           | arithmetic. I think it is a better intellectual tool than the
           | sliding-bead soroban. My kids use some nice metal buttons as
           | counters:
           | 
           | https://ethw.org/Ancient_Computers
        
       | [deleted]
        
       | robot_no_419 wrote:
       | How to really multiply Roman numerals: convert them to Arabic
       | numeral notation, multiply them (use a calculator or your
       | favorite algorithm), and convert them back to Roman numerals.
       | 
       | It's very interesting to discuss this from a cultural or
       | anthropological point of view. It doesn't seem very interesting
       | from a mathematical POV. I'm disappointed that there's no mention
       | of the history of Roman arithmetic or content related to actual
       | Romans doing math.
       | 
       | I feel like anyone who is even asking the question "how can I do
       | arithmetic with Roman numerals?" knows enough math to make this a
       | trivial observation.
        
       | throw93232 wrote:
       | Nice, but this was mostly unused. Sea and trade was dominated by
       | Greeks and their numerical system. It is almost as practical as
       | decimal.
       | 
       | https://en.m.wikipedia.org/wiki/Greek_numerals
        
       | nh23423fefe wrote:
       | distributive property and rewrite rules                       1 5
       | 10 50             100 500             1000                  i v
       | x l             c d             m
       | 
       | x moves down, v moves over                       17 * 42 =
       | xvii * xxxxii =              x*xxxx + x*ii + v*xxxx + v*ii +
       | ii*xxxx + ii*ii             cccc + xx + llll + vv + xxxxxxxx +
       | iiii =              cccc + llll + xxxxxxxxxx + vv + iiii =
       | cccc + cc + c + x + iiii =              ccccccc + x + iiii =
       | dccxiiii =              714
        
       | jhallenworld wrote:
       | Use Claude Shannon's THROBAC-I
       | 
       | https://cacm.acm.org/blogs/blog-cacm/235492-calculating-with...
        
       | DonaldFisk wrote:
       | The Romans used an abacus to multiply numbers:
       | https://en.wikipedia.org/wiki/Roman_abacus
        
       | ipnon wrote:
       | If you ask me to multiply Roman numerals in an interview then I'm
       | going to multiply the perceived value of your offer by 0.
        
       | NAR8789 wrote:
       | Hm! I've come across this as "Russian Peasant Multiplication"
       | https://www.wikihow.com/Multiply-Using-the-Russian-Peasant-M...
       | 
       | Easier to digest I think to break TFA into two conceptual pieces
       | 
       | 1. the representational complexities of roman numerals (remember
       | not to use prefix notation; what does each character mean)
       | 
       | 2. the actual meat of the multiplication algorithm (russian
       | peasant method)
        
       ___________________________________________________________________
       (page generated 2022-05-10 23:01 UTC)