Re: Russian Peasant Multiplication / was question on how to do this
- To: mathgroup at smc.vnet.net
- Subject: [mg131401] Re: Russian Peasant Multiplication / was question on how to do this
- From: d.a.paxton at gmail.com
- Date: Wed, 3 Jul 2013 05:00:06 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
- References: <kqm6u7$hp5$1@smc.vnet.net>
On Saturday, June 29, 2013 2:47:03 AM UTC-6, Richard Fateman wrote: > Dave -- > > 1. You should try to come up with a useful subject line > > in the future. > > 2. It is called Russian Peasant Multiplication (which you may > > find on Google). > > 3. There is no reason to believe that a procedural algorithm > > has a formula, but in this case I think the inverse is known > > as division :) Thanks for the responses. IntegerDigits is basically a List function. If you pluck a number out and use it how does one then bring it back into focus? I thought about it late last night and there may be a way to do it in base ten. It gets messy when the starting number is below the base. Today I thought to just run to base two and figure it out. Basically the number ( 13 ) is 1101. All I have so far is to do a BitAnd of 1. Like this. A= BitAnd [13,1], ( this gives a 1 as 13 is odd ) A is the drop number. B= number ( 13 in this case ) -A. The carry number is then B/2. In this case 6 or 110. So when marching down the columns of numbers in the multiply this may be the easiest way to go. I will have to start to fit this into a matrix form and then figure out how to code the left or right diagonals. That does not seem straight forward at this point.