Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Russian Peasant Multiplication / was question on how
Replies: 0

 Dr. Robert Kragler Posts: 20 Registered: 3/18/08
Russian Peasant Multiplication / was question on how
Posted: Jul 2, 2013 12:29 AM

On Sun, Jun 30, 2013 at 3:29 AM, <d.a.paxton@gmail.com> wrote:

Hi Dave,
in Wikipedia you will find an explicit example for the Russian Peasant
Multiplication. This algorithm can be simply programed in Mathematica :

RussianPeasantMultplication[x0_Integer,y0_Integer]:=
Module[{x,y,yS,nD },
x=x0;y=y0; yS=y;
nD=Max @ (Length /@ IntegerDigits @ {x0,y0});
If[x<0,(sgn=Sign[x];x=Abs[x];),(sgn=+1;x=x;)];
While[x>=1,(Print["x=",pf @ x,"; ","y=",pf @ y,"; ","yS=",pf @ yS ];
x=Floor[x/2];y=2y;
If[OddQ[x], yS=yS+y];) ];
Return[sgn*yS]
]

See for example

x0=-27;y0=82;
RussianPeasantMultplication[x0,y0]

gives as output

x= 27; y= 82; yS= 82
x= 13; y= 164; yS= 246
x= 6; y= 328; yS= 246
x= 3; y= 656; yS= 902
x= 1; y= 1312; yS= 2214

Out[32]= -2214

Regards
Robert

Robert Kragler
Email : kragler@hs-weingarten.de
URL : http://portal.hs-weingarten.de/web/kragler