
Russian Peasant Multiplication - sayham28
http://www.virtualspecies.com/2015/02/russian-peasant-multiplication.html
======
jcoffland
I've been using a less strict version of this method to multiply in my head
since I was a kid. Nice to know there's a name for it.

You can also take advantage of multiples of 5 and 10. For example:

    
    
       115 x 37 = (100 + 10 + 5) x 37
       = 3700 + 370 + 370/2
       = 3700 + 370 + 300/2 + 70/2
       = 3700 + 370 + 150 + 35
       = 4255

~~~
smallnamespace
Somewhat surprisingly, this is how Common Core arithmetic is taught nowadays.

Some parents are making a fuss because 'that's not how they learned
arithmetic' [1], but actually anyone who is good with mental math uses these
sort of tricks, particularly taking advantage of commutativity and
distributivity.

In fact this builds far stronger intuition for the properties of numbers and
is a good way to prepare for algebra and proof-based approaches later on.

Same sort of mental shortcuts for two-digit squaring:

52² = (50 + 2)² = (5 ⋅ 10)² + 2 * (50 ⋅ 2) + 4² = 5² ⋅ 10² + 200 + 4 = 2500 +
200 + 4 = 2604

[1]
[https://www.salon.com/2015/11/28/youre_wrong_about_common_co...](https://www.salon.com/2015/11/28/youre_wrong_about_common_core_math_sorry_parents_but_it_makes_more_sense_than_you_think/)

~~~
romwell
>Somewhat surprisingly

..to people who learn about Common Core from the rants of the parents who
don't get it, quite sadly.

~~~
pdx
I don't like Common Core because it attempts to solve a problem that does not
exist. The way we learned math was sufficient to enable us to build atomic
bombs and go to the moon, all with slide rules for the most part. It has a
proven history of working and working well.

The math shown in this article as well as much common core does not provide
the user/student with understanding. Instead, they are taught incantations and
rituals to get to an answer. This is a recipe for a society of math
illiterates. Who is pushing this and why do they want such a society?

Common Core is not a better system than the one taught for a hundred years in
this country. If you disagree, I would love to see the evidence. I'm sure
before such a huge change was made to our educational system, there must be
MOUNTAINS of such evidence that was presented. No? Not really?

~~~
will_hughes
> Instead, they are taught incantations and rituals to get to an answer.

My early school math involved memorising multiplication tables. Later on,
there was rote memorisation of other aspects of math that I just never
understood - you just "had to", and none of the teachers could explain _why_.

It was for this reason that I hated math, and it wasn't until I started
understanding some of the more fundamental relationships many many years after
school that I finally got it.

While this is but one anecdote, and having heard similar stories from others
is just more anecdotes - there does seem to be research backing up that a lot
of people don't understand the fundamental relationships between numbers and
how math works.

I see Common Core math trying to teach relationships between numbers - showing
that by being able to break down large unwieldy numbers you can get something
that while it might have a bunch more steps, they're at least feasable without
counting on fingers/toes or trying to remember times tables.

~~~
smallnamespace
For some reason, I immediately groked calculus and why it would be useful
(maybe because I liked physics and the relationship between velocity and
position is an intuitive one), but the point of linear algebra was a complete
mystery to me.

Why are we multiplying these big matrices of numbers, and what is this
complicated determinant thing? Why would anyone ever care what a kernel is,
and what are these subspaces that keep getting referenced?

Now every other somewhat mathy problem I see can be broken down into linear
algebra and I wish I had learned it better (and that it was taught with more
intuition).

~~~
4e1a
I completely suck at calculus, but have a great need for kernels. I am an
intermediate programmer/musician and I use them for audio convolution[0].

[0] -
[https://en.m.wikipedia.org/wiki/Convolution_reverb](https://en.m.wikipedia.org/wiki/Convolution_reverb)

------
pmoriarty
Anyone interested in this should watch some "Flash Anzan" videos. Here are
some of the more impressive ones I've seen: [1], [2], [3]

Here's one describing more of the basics: [4]

[1] -
[https://www.youtube.com/watch?v=JawF0cv50Lk](https://www.youtube.com/watch?v=JawF0cv50Lk)

[2] -
[https://www.youtube.com/watch?v=7ktpme4xcoQ](https://www.youtube.com/watch?v=7ktpme4xcoQ)

[3] -
[https://www.youtube.com/watch?v=_vGMsVirYKs](https://www.youtube.com/watch?v=_vGMsVirYKs)

[4] -
[https://www.youtube.com/watch?v=OFmDvAnIXo8](https://www.youtube.com/watch?v=OFmDvAnIXo8)

------
nthState
I struggled and still do with multiplication taught in School. As a child my
dad showed me "Napier's Bones". I haven't looked back since, it may be slower,
more drawing, but for me it works

[https://en.wikipedia.org/wiki/Napier%27s_bones](https://en.wikipedia.org/wiki/Napier%27s_bones)

[https://www.youtube.com/watch?v=WZLpqTyZMM4](https://www.youtube.com/watch?v=WZLpqTyZMM4)

~~~
jacobolus
Your video link just shows the common lattice method for writing the standard
multiplication algorithm, used since at least the 1200s by Arabs and common
around the world ever since. Napier's bones is a physical artifact, which
tries to eliminate the required memorization of a 1-digit multiplication
table, and is very rarely used in practice by anyone anywhere.
[https://en.wikipedia.org/wiki/Lattice_multiplication](https://en.wikipedia.org/wiki/Lattice_multiplication)

~~~
nthState
oh, I always thought it was called Napier's Bones, oh well.

------
tgb
My takeaway (since I'm okay at multiplying numbers) is the algorithm for
figuring out the binary digits of a number. I've always just done "okay, it's
bigger than 256, so subtract that and then it's bigger than 64 so subtract,
etc." I much prefer this strategy of successively divide by 2 and discard
remainder, mark a 1 for each time that the result is odd and 0 for even.

~~~
romwell
That's, essentially, the algorithm for computing the representation of a
number in a given base: divide by the base and write down the remainders.

To build up intuition on how this works, do it with base 10.

What are the digits of the number 8675309 ? Just remainders after repeatedly
dividing by 10.

Now when it's almost obvious it works for base 10, you realize there's no
reason it wouldn't work the same way for other bases. Hence the algorithm.

~~~
tgb
You're of course completely correct, but I feel like that misses the point.
The great thing about this algorithm is not that it works - there are plenty
of ways to figure out the binary representation of a number. Rather, it's that
it only needs operations that are easy to perform and requires little state to
remember. I'd much rather divide by two and round down than subtract the
largest power of two that's less than my number from it. And I don't have to
remember which power of N I last worked to know how many zeros I need to add
before using the next power of 2 that fits in my number.

------
userbinator
Also known as "shift-and-add", and very commonly implemented in
microcontrollers and early microprocessors that didn't have multiplication
instructions in hardware.

------
ColinWright
See also:

[http://www.solipsys.co.uk/new/RussianPeasantMultiplication.h...](http://www.solipsys.co.uk/new/RussianPeasantMultiplication.html)

------
ztjio
Wow! This website design is what everyone would have if the 90's dial-up BBS
scene aesthetic had been the guiding light of website design from then on.

And I like it.

~~~
milankovic
Especially that twisting Tag animation.. :)

------
knowThySelfx
Some of the Vedic Multiplication short cuts: [http://mathlearners.com/vedic-
mathematics/multiplication-in-...](http://mathlearners.com/vedic-
mathematics/multiplication-in-vedic-mathematics/)

------
PinkMilkshake
Another impressive system for mental arithmetic is the Trachtenberg System:
[https://en.wikipedia.org/wiki/Trachtenberg_system](https://en.wikipedia.org/wiki/Trachtenberg_system)

------
tandav
BTW There are many fast algorithms
[https://en.m.wikipedia.org/wiki/Multiplication_algorithm](https://en.m.wikipedia.org/wiki/Multiplication_algorithm)

Fastest of them use FFT and parallelism

~~~
bradleyjg
Fastest for sufficiently large numbers. In this case the crossover point is
somewhere beyond 10,000 decimal digits.

------
sounds
This is a good introduction to how to create a binary multiplier unit in
digital logic.

------
tzhenghao
I highly recommend the Secrets of Mental Math book:

[http://a.co/095nXaa](http://a.co/095nXaa)

Lots of good insights on how to make shortcut mental calculations.

------
lawlessone
Could this be used to speed up multiplcation by computer? or is that already a
"perfectly" optimized?

~~~
jwilk
This is mostly equivalent to grade-school multiplication, but in binary. Good
enough for multiplying small numbers; too slow for very big numbers.

~~~
sirclueless
Actually, this is basically how it is done in circuits, with some minor
optimizations on top and without the explicit doubling operation.

It's about as simple as you can make a task like this. The grade school
mechanism doesn't look so bad, when you consider that where multiplying by a
digit 0-9 occasionally involves some carrying and non-trivial work but
multiplying by a binary digit is a simple AND operation. The result is that
with fixed operand size and no carrying, each digit you would write under the
line using the grade school method can be determined directly as the AND of
two bits of the input, and what's left is only a bunch of binary addition.

[https://en.wikipedia.org/wiki/Binary_multiplier](https://en.wikipedia.org/wiki/Binary_multiplier)

------
gozur88
I really love this kind of stuff, and it makes me wonder how the first person
who did it figured it out.

