Background
Today I had to explain to some kid how to multiply numbers with multiple digits in them. Then I recalled, that some other day I answered this question describing one of the numerous so-called vedic math methods.
Essentially, the method sets up a scheme for multiplying digits by drawing crossing lines so that for instance $2\cdot 3$ would be represented by two lines crossing three lines and then you count the number of intersections. Naturally there would be $2\cdot 3=6$ points of intersection - no magic in that!
But there I indicated, that maybe that algorithm was not so relevant for multiplying large numbers or numbers with larger digits in them, since for instance counting the $56$ points of intersection for $7$ and $8$ lines respectively one-by-one would seem a tedious task. Then rather learn or recreate a table of multiples of $8$ and apply that.
Then I reckoned, that maybe skipping the line-drawing thing and rotating the scheme a bit would render the method a nice way of structuring the steps of a multiplication:
Method
Take as an example $517\cdot 238$. Then the method can be carried out via the following table: $$ \newcommand{\blue}{\color{blue}} \newcommand{\grey}{\color{grey}} \newcommand{\red}{\color{red}} \newcommand{\green}{\color{green}} \begin{array}{c|c:c:c|c} \cdot&\bf2&\bf3&\bf8&\\ \hline \bf7&\red{14}&\blue{21}&56&\\ \hdashline \bf1&\green{2}&\red{3}&\blue{8}&\grey{56}\\ \hdashline \bf5&10&\green{15}&\red{40}&\grey{29}\\ \hline &&\grey{10}&\grey{17}&\grey{57} \end{array} $$
where the gray numbers are diagonal sums so that numbers of the same color are summed. Then we can fill in an appropriate number of zeros to each sum and then add them together
111 111
-------- --------
100000 10
17000 or even 17
5700 skipping 57
290 zeros for 29
56 simplicity 56
-------- --------
123046 123046
which then yields the correct result $517\cdot 238=123046$.
Binary version
In binary we have 517 as $1000000101$ and 238 as $11101110$ so $238\cdot 517$ becomes $$ \begin{array}{c|c:c:c:c:c:c:c:c:c:c|c} \cdot&\bf1&\bf0&\bf0&\bf0&\bf0&\bf0&\bf0&\bf1&\bf0&\bf1&\\ \hline \bf0&\red0&0&\green0&\blue0&\red0&0&\green0&\blue0&\red0&0&\\ \hdashline \bf1&\blue1&\red0&0&\green0&\blue0&\red0&0&\green1&\blue0&\red1&\grey{0}\\ \hdashline \bf1&\green1&\blue0&\red0&0&\green0&\blue0&\red0&1&\green0&\blue1&\grey{1}\\ \hdashline \bf1&1&\green0&\blue0&\red0&0&\green0&\blue0&\red1&0&\green1&\grey{1}\\ \hline \bf0&\red0&0&\green0&\blue0&\red0&0&\green0&\blue0&\red0&0&\grey{10}\\ \hdashline \bf1&\blue1&\red0&0&\green0&\blue0&\red0&0&\green1&\blue0&\red1&\grey{1}\\ \hdashline \bf1&\green1&\blue0&\red0&0&\green0&\blue0&\red0&1&\green0&\blue1&\grey{10}\\ \hdashline \bf1&1&\green0&\blue0&\red0&0&\green0&\blue0&\red1&0&\green1&\grey{1}\\ \hline &&\grey{1}&\grey{1}&\grey{1}&\grey{0}&\grey{1}&\grey{1}&\grey{1}&\grey{1}&\grey{1}&\grey{10} \end{array} $$ and therefore we can add them like this:
11111 1 1
-----------------------
1 . . . .
1 . . . .
1. . . .
0 . . .
.1 . . .
. 1 . . .
. 1. . .
. 1 . .
. 1. .
. 10 .
. 1.
. 10
. 1
. 10
. 1
. 1
. 0
-----------------------
11110000010100110
to get the result of the multiplication. You can check that 123046 has binary representation $11110000010100110$. So it worked out well!
Questions
- What are possible advantages or disadvantages of this method?
- What are the best methods you know of for the task of multiplication, and what make them particularly good/practical?
NB: This question received a close vote. I tried to clarify what I am asking in order to prevent the question from being closed. I ask for qualified arguments, not just opinions. Answerers must back up their claims by arguing why specific method are practical or impractical.
I've seen and use a similar notation:
This improves on the design in two ways: