Fascinating.
How did Iverson do division?

Op 15 jun. 2012, om 23:08 heeft David Leibs het volgende geschreven:

> Speaking of multiplication.  Ken Iverson teaches us to do multiplication by 
> using a * outer product to build a times table for the digits involved.
> +-+--------+
> | | 3  6  6|
> +-+--------+
> |3| 9 18 18|
> |6|18 36 36|
> |5|15 30 30|
> +-+--------+
> 
> Now you sum each diagonal:
>        (9) (18+18) (18+36+15) (36+30) (30)
>      9    36       69        66     30
> And just normalize as usual:
> 
>    9 36 69 66 30
>    9 36 69 69 0
>    9 36 75 9  0
>    9 43 5  9  0
>   13 3  5  9  0
>  1 3 3  5  9  0
> 
> The multiplication table is easy and just continued practice for your 
> multiplication facts.
> 
> You don't need much more machinery before you have the kids doing Cannon's 
> order n systolic array algorithm for matrix multiply, on the gym floor, with 
> their bodies.  This assumes that the dance teacher is coordinating with the 
> algorithms teacher. Of course if there isn't something relevant going on that 
> warrants matrix multiply then all is lost. I guess that's a job for the 
> motivation teacher. :-)
> 
> -David Leibs
> 
> On Jun 15, 2012, at 12:57 PM, Pascal J. Bourguignon wrote:
> 
>> David Leibs <david.le...@oracle.com> writes:
>> 
>>> I have kinda lost track of this thread so forgive me if I wander off
>>> in a perpendicular direction.
>>> 
>>> I believe that things do not have to continually get more and more
>>> complex.  The way out for me is to go back to the beginning and start
>>> over (which is what this mailing list is all about).  I constantly go
>>> back to the beginnings in math and/or physics and try to re-understand
>>> from first principles.  Of course every time I do this I get less and
>>> less further along the material continuum because the beginnings are
>>> so darn interesting.
>>> 
>>> Let me give an example from arithmetic which I learned from Ken
>>> Iverson's writings years ago.
>>> 
>>> As children we spend a lot of time practicing adding up
>>> numbers. Humans are very bad at this if you measure making a silly
>>> error as bad. Take for example:
>>> 
>>>   365
>>> +  366
>>> ------
>>> 
>>> this requires you to add 5 & 6, write down 1 and carry 1 to the next
>>> column then add 6, 6, and that carried 1 and write down 2 and carry a
>>> 1 to the next column finally add 3, 3 and the carried 1 and write down
>>> 7 this gives you 721, oops, the wrong answer.  In step 2 I made a
>>> totally dyslexic mistake and should have written down a 3.
>>> 
>>> Ken proposed learning to see things a bit differently and remember the
>>> digits are a vector times another vector of powers.  Ken would have
>>> you see this as a two step problem with the digits spread out.
>>> 
>>>   3   6   5
>>> +  3   6   6
>>> ------------
>>> 
>>> Then you just add the digits. Don't think about the carries.
>>> 
>>>   3   6   5
>>> +  3   6   6
>>> ------------
>>>   6  12  11
>>> 
>>> Now we normalize the by dealing with the carry part moving from right
>>> to left in fine APL style. You can almost see the implied loop using
>>> residue and n-residue.
>> 
>>> 6  12 11
>>> 6  13  0
>>> 7   3  0
>>> 
>>> Ken believed that this two stage technique was much easier for people
>>> to get right.  I adopted it for when I do addition by had and it works
>>> very well for me. What would it be like if we changed the education
>>> establishment and used this technique?  One could argue that this sort
>>> of hand adding of columns of numbers is also dated. Let's don't go
>>> there I am just using this as an example of going back and looking at
>>> a beginning that is hard to see because it is "just too darn
>>> fundamental". 
>> 
>> It's a nice way to do additions indeed.
>> 
>> When doing additions mentally, I tend to do them from right to left,
>> predicting whether we need a carry or not by looking ahead the next
>> column.  Usually carries don't "carry over" more than one column, but
>> even if it does, you only have to remember a single digit at a time.
>> 
>> There are several ways to do additions :-)
>> 
>> 
>> Your way works as well for substractions:
>> 
>>    3  6  5
>> -   3  7  1
>> -----------
>>    0 -1  4
>>    0 -10 + 4 = -6
>> 
>>    3  7  1
>> -  3  6  5
>> -----------
>>    0  1 -4
>>       10 -4 = 6
>> 
>> and of course, it's already how we do multiplications too.
>> 
>> 
>> 
>>> We need to reduce complexity at all levels and that includes the
>>> culture we swim in.
>> 
>> Otherwise, you can always apply the KISS principle 
>> (Keep It Simple Stupid).
>> 
>> 
>> -- 
>> __Pascal Bourguignon__                     http://www.informatimago.com/
>> A bad day in () is better than a good day in {}.
>> _______________________________________________
>> fonc mailing list
>> fonc@vpri.org
>> http://vpri.org/mailman/listinfo/fonc
> 
> _______________________________________________
> fonc mailing list
> fonc@vpri.org
> http://vpri.org/mailman/listinfo/fonc

_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to