

Ethiopian Multiplication - azarias
http://threesixty360.wordpress.com/2009/06/09/ethiopian-multiplication/

======
einhverfr
This has been attributed to so many places. I actually spent some time coming
up with an algebraic proof that it worked when I was in college. It turns out
that it is perfectly clear what is happening if you write both numbers in
binary as another poster has pointed out.

However for historical purposes, the question is why? I think there is a very
simple reason. Before you have based number systems, most number systems are
usually derived from tally sticks. This makes some functional sense, and once
you think about it from a tally stick, roman numerals make perfect sense. For
example consider the number XXIV. It represents a position on a tally stick:

IIIIVIIIIXIIIIVIIIIXIIIIVIIIIXIIIIVIIIIXIIIIVIIIIL

Count to the second X and then one before the V. IXL is the same. Count
backwards one X and then one I from the L. So while our system of numbers
today is based on position of digits, many earlier systems were based on
visualized markings on tally sticks. So you have numbers without a base
system. This divide and add approach works very well when you don't have a
number system. You can take your tally stick, figure out the number, and the
same on the other side. I cannot think of another way to do multiplication on
a tally stick.

Interestingly tally sticks of a slightly different sort were in use up until
the early 19th century in Britain as tax receipts and in 1836 the attempt of
the British government to get rid of these humble staves leveled both houses
of parliament. Before you have widespread numeracy, tally sticks are how you
track amounts for everything from debts to receipts. It isn't surprising that
this would be a widespread method.

~~~
regularfry
The interesting part is that Romans wouldn't have written 24 as XXIV. They'd
have written it as XXIIII, which makes it much simpler because you only ever
go left to right..

~~~
einhverfr
the Romans, IIRC were extremely inconsistent. Sometimes, for example, you see
IIXX for 18. However either way it represents a place on a tally stick.

------
aaronbrethorst
To multiply 14 and 12 in my head, I break it down like this:

    
    
        14 * 12 = (14 * 10) + (14 * 2) = 168
    

Anyone else do that?

~~~
jcr
Similar here, but based on memorization. Since I know twelve squared ((12 *
12) = 144) by rote, the rest is easy.

    
    
      14 * 12 = (12^2) + (12*2) = 168

~~~
drharris
I tend to use the tens as well, but in this case I would have used the 12*12 +
24 trick. I also use some of the others listed here, so it makes me happy to
know there are people like me out there.

------
SeanLuke
Since dividing by two (ignoring remainders) is just a left shift, and
multiplying by two is just a right shift, this means you can do multiplication
with just <<, >>>, and +.

Of course, here's another, er, related algorithm. Take your two numbers A and
B. Make a variable called C, initially set to 0. Iteratively decrease A by 1,
and increase C by B. Do this until A = 0. Then C is your answer. Everyone
knows this technique, it's obvious. But it means that you can do
multiplication with just + and --.

I wonder what other ways you can do multiplication with a limited set of
mathematical operators.

~~~
ANTSANTS
The other interesting property to the first algorithm is that you don't need
to calculate a conditional for each bit in one of those factors. You can just
AND each bit in one factor by all the bits in the other factor (ANDing is
equivalent to multiplying in binary), before the shifts and the adds. Because
ANDs, shifts, and adders are extremely simple to implement in hardware, most
(all?) binary multiplication circuits are based off of the peasant
multiplication algorithm, with modifications that trade off expense of
manufacturing (more gates) for quicker computation (less gate delay due to
exploiting parallelism in the algorithm).

------
lmkg
I've heard this referred to as the "Peasant's algorithm," though I don't know
why. Interesting fact: In binary, the peasant and traditional multiplication
algorithms are actually step-for-step identical.

------
rfzabick
Some folks have pointed out the relationship to binary multiplication. Here's
a TED talk that discusses the long history of binary math in ancient Africa.
<http://www.ted.com/talks/ron_eglash_on_african_fractals.html> Spoiler: Boole
got the idea from Africa by way of the Middle East!

------
lotharbot
My dad wrote a short article on this in the 1980s:

<http://darrow.faithweb.com/peasantmultiply.htm>

------
Kafka
In Ruby:

    
    
      # Ethiopian Multiplication
      # usage: ruby em.rb 673 7
      m, n = ARGV.map(&:to_i)
      product = 0
      while m >= 1
        puts "%4d : %4d %s" % [m, n, m.even? ? "Ignore" : ""]
        product += n unless m.even?
        m = m / 2
        n = n * 2
      end
      puts "Product: #{product}"
    

<https://gist.github.com/3660240>

------
grumblepeet
My son was taught this method at school as THE way to do multiplication.
Imagine my confusion when he brought homework back and I started doing
multiplication the way we were all taught, only to be told "DADDY, you don't
know anything!".

~~~
exDM69
Do you live in the UK? I read an article some time ago about a new methods of
multiplication and division that was being taught at UK elementary schools.
Parents had trouble with it because they were not taught that way.

While the new simple methods got the job done, I still think the old methods
are worth teaching because they're required when doing some advanced math
later on.

The difficult method of long division, for example. After elementary school
arithmetic, I've had to re-learn the method several times. In grade school it
was doing divisions of numbers but later the same method was used for division
of polynomials, then doing binary and again when learning how to compute crc
checksums and hassling with polynomial fields in crypto class.

Math education is not necessarily supposed to be about learning how to get
shit done (if it were, it would be obsolete because of calculators), but
rather learning methods to deal with numbers, polynomials and other algebraic
beings.

------
nikatwork
Made me think of the Trachtenberg Speed System:
<http://mathforum.org/dr.math/faq/faq.trachten.html>

------
marginalboy
I don't know; I feel like this would get complicated far more quickly than the
FOIL method...

~~~
marginalboy
As soon as I walked away for some more water, I realized I had missed the
point ;-)

