Grid metod multiplikation

Rutnätsmetoden (även känd som boxmetoden ) för multiplikation är en introduktion till flersiffriga multiplikationsberäkningar som involverar tal större än tio . Eftersom det ofta lärs ut i matematikundervisningen på grundskolans eller grundskolans nivå , kallas denna algoritm ibland för gymnasiemetoden.

Jämfört med traditionell lång multiplikation skiljer sig gridmetoden genom att tydligt dela upp multiplikationen och additionen i två steg, och genom att vara mindre beroende av platsvärde.

Även om den är mindre effektiv än den traditionella metoden, anses multiplikation av rutnät vara mer tillförlitlig , eftersom barn är mindre benägna att göra misstag. De flesta elever kommer att fortsätta att lära sig den traditionella metoden, när de väl är bekväma med rutnätsmetoden; men kunskap om rutnätsmetoden förblir ett användbart "fall back", i händelse av förvirring. Det hävdas också att eftersom alla som gör mycket multiplikation nuförtiden skulle använda en fickräknare, är effektiviteten för dess egen skull mindre viktig; eftersom detta innebär att de flesta barn kommer att använda multiplikationsalgoritmen mer sällan, är det användbart för dem att bli bekanta med en mer explicit (och därmed mer minnesvärd) metod.

Användning av rutnätsmetoden har varit standard i matematikundervisning i grundskolor i England och Wales sedan införandet av en National Numeracy Strategy med dess "numeracy hour" på 1990-talet. Det kan också finnas med i olika läroplaner på andra håll. I huvudsak samma beräkningsmetod, men inte med det explicita rutnätsarrangemanget, är också känt som delproduktalgoritmen eller delproduktmetoden .

Beräkningar

Introduktionsmotivation

Rutnätsmetoden kan introduceras genom att tänka på hur man lägger ihop antalet poäng i en vanlig array, till exempel antalet rutor choklad i en chokladkaka. När storleken på beräkningen blir större blir det lättare att börja räkna i tior; och att representera beräkningen som en ruta som kan delas upp, snarare än att rita en mängd punkter.

På den enklaste nivån kan eleverna bli ombedda att tillämpa metoden på en beräkning som 3 × 17. Genom att bryta upp ("partitionera") de 17 som (10 + 7), kan denna obekanta multiplikation räknas ut som summan av två enkla multiplikationer:

× 10 7
3 30 21

så 3 × 17 = 30 + 21 = 51.

Detta är strukturen "rutnät" eller "lådor" som ger multiplikationsmetoden dess namn.

Inför en något större multiplikation, som 34 × 13, kan eleverna initialt uppmuntras att också dela upp detta i tiotal. Så, expanderande 34 som 10 + 10 + 10 + 4 och 13 som 10 + 3, kan produkten 34 × 13 representeras:

× 10 10 10 4
10 100 100 100 40
3 30 30 30 12

Sammanlagt innehållet i varje rad är det uppenbart att slutresultatet av beräkningen är (100 + 100 + 100 + 40) + (30 + 30 + 30 + 12) = 340 + 102 = 442.

Standardblock

När eleverna väl har blivit bekväma med idén att dela upp hela produkten i bidrag från separata lådor, är det ett naturligt steg att gruppera tiotalen, så att beräkningen 34 × 13 blir

× 30 4
10 300 40
3 90 12

ger tillägget

300 40 90 + 12 ———— 442

alltså 34 × 13 = 442.

Detta är den vanligaste formen för en rutnätsberäkning. I länder som Storbritannien där undervisning i rutnätsmetoden är vanligt, kan eleverna spendera en avsevärd tid på att regelbundet göra beräkningar som ovan, tills metoden är helt bekväm och bekant.

Större antal

Gridmetoden sträcker sig enkelt till beräkningar som involverar större tal.

Till exempel, för att beräkna 345 × 28, kan eleven konstruera rutnätet med sex enkla multiplikationer

× 300 40 5
20 6000 800 100
8 2400 320 40

för att hitta svaret 6900 + 2760 = 9660.

Men i detta skede (åtminstone i nuvarande brittiska undervisningspraxis) kan elever börja uppmuntras att göra en sådan beräkning med den traditionella långa multiplikationsformen utan att behöva upprätta ett rutnät.

Traditionell lång multiplikation kan relateras till en rutnätsmultiplikation där endast ett av talen är uppdelat i tiotal och enheter delar som ska multipliceras separat:

× 345
20 6900
8 2760

Den traditionella metoden är i slutändan snabbare och mycket mer kompakt; men det kräver två betydligt svårare multiplikationer som eleverna först kan kämpa med [ citat behövs ] . Jämfört med rutnätsmetoden kan traditionell lång multiplikation också vara mer abstrakt [ citat behövs ] och mindre tydligt [ citat behövs ] , så vissa elever har svårare att komma ihåg vad som ska göras i varje steg och varför [ citat behövs ] . Elever kan därför uppmuntras under en längre tid att använda den enklare rutnätsmetoden vid sidan av den mer effektiva traditionella långa multiplikationsmetoden, som en kontroll och en reserv.

Andra applikationer

Bråk

Även om det normalt inte lärs ut som en standardmetod för att multiplicera bråk , kan rutnätsmetoden lätt tillämpas på enkla fall där det är lättare att hitta en produkt genom att bryta ner den.

Till exempel kan beräkningen 2 1 / 2 × 1 1 / 2 ställas ut med hjälp av rutnätsmetoden

× 2 1/2 _ _
1 2 1/2 _ _
1/2 _ _ 1 1/4 _ _

för att finna att den resulterande produkten är 2 + 1 / 2 + 1 + 1 / 4 = 3 3 / 4

Algebra

Rutnätsmetoden kan också användas för att illustrera multipliceringen av en produkt av binomialer , såsom ( a + 3)( b + 2), ett standardämne i elementär algebra (även om man vanligtvis inte träffades förrän i gymnasiet ):

× a 3
b ab 3 b
2 2 a 6

Således ( a + 3)( b + 2) = ab + 3 b + 2 a + 6.

Datoranvändning

32-bitars processorer saknar vanligtvis en instruktion för att multiplicera två 64-bitars heltal. Men de flesta CPU:er stöder en "multiplicera med överflöde"-instruktion, som tar två 32-bitars operander, multiplicerar dem och placerar 32-bitars resultatet i ett register och överflödet i ett annat, vilket resulterar i en överföring. Till exempel inkluderar dessa umull -instruktionen som läggs till i ARMv4t-instruktionsuppsättningen eller pmuludq -instruktionen som läggs till i SSE2 som arbetar på de lägre 32 bitarna i ett SIMD- register som innehåller två 64-bitars banor.

På plattformar som stöder dessa instruktioner används en något modifierad version av gridmetoden. Skillnaderna är:

  1. Istället för att arbeta på multiplar av 10, drivs de på 32-bitars heltal.
  2. Istället för att högre bitar multipliceras med tio, multipliceras de med 0x100000000 . Detta görs vanligtvis genom att antingen skifta åt vänster med 32 eller sätta värdet i ett specifikt register som representerar de högre 32 bitarna.
  3. Alla värden som ligger över den 64:e biten trunkeras. Detta innebär att multiplicera de högsta bitarna inte krävs, eftersom resultatet kommer att flyttas utanför 64-bitarsintervallet. Detta betyder också att endast en 32-bitars multiplikation krävs för de högre multiplerna.
× b a
d - annons
c före Kristus ac

Detta skulle vara rutinen i C:

 

    

    

              
              

    
         
          
         

    
         
         
    
         
 #include  <stdint.h>  uint64_t  multiply  (  uint64_t  ab  ,  uint64_t  cd  )  {  /* Dessa skiftningar och masker är vanligtvis implicita, eftersom 64-bitars heltal *  ofta skickas som 2 32-bitars register. */   uint32_t  b  =  ab  >>  32  ,  a  =  ab  &  0xFFFFFFFF  ;  uint32_t  d  =  cd  >>  32  ,  c  =  cd  &  0xFFFFFFFF  ;  /* multiplicera med spill */  uint64_t  ac  =  (  uint64_t  )  a  *  (  uint64_t  )  c  ;  uint32_t  hög  =  ac  >>  32  ;  /* overflow */  uint32_t  low  =  ac  &  0xFFFFFFFF  ;  /* 32-bitars multiplicera och addera till höga bitar */  high  +=  (  a  *  d  );  /* add ad */  high  +=  (  b  *  c  );  /* lägg till bc */  /* multiplicera med 0x100000000 (via vänster skift) och lägg till de låga bitarna med en binär eller. */   return  ((  uint64_t  )  hög  <<  32  )  |  låg  ;  } 

Detta skulle vara rutinen i ARM-montering:


           
           
           
           
                            
                             
                            
                            
                                        
                                          
                                  
                             
                                        multiplicera  :  @  a  =  r0  @  b  =  r1  @  c  =  r2  @  d  =  r3  tryck  {  r4  ,  lr  }  @  backup  r4  och  lr  till  stacken  umull  r12  ,  lr  ,  r2  ,  r0  @  multiplicera  r2  och  r0  ,  lagra  resultatet  i  _  r12  och  bräddavloppet  i  lr  mla  r4  ,  r2  ,  r1  ,  lr  @  multiplicera  r2  och  r1  ,  addera  lr  ,  och  lagra  i  r4  mla  r1  ,  r3  ,  r0  ,  r4  @  multiplicera  r3  och  r0  ,  addera  r4  ,  och  lagra  i  r1  @  _  _  värdet  förskjuts  implicit  åt  vänster  eftersom  @  höga  bitar  av  ett  64  -  bitars  heltal  returneras  i  r1  .  _  mov  r0  ,  r12  @  Ställ  in  de  låga  bitarna  av  returvärdet  till  r12  (  ac  )  pop  {  r4  ,  lr  }  @  återställ  r4  och  lr  från  stacken  bx  lr  @  returnerar  de  låga  och  höga  bitarna  i  r0  respektive  r1  _  _  _ 

Matematik

Matematiskt är förmågan att bryta upp en multiplikation på detta sätt känd som den distributiva lagen , som kan uttryckas i algebra som egenskapen att a ( b + c ) = ab + ac . Gridmetoden använder fördelningsegenskapen två gånger för att expandera produkten, en gång för den horisontella faktorn och en gång för den vertikala faktorn.

Historiskt sett låg rutnätsberäkningen (något finjusterad) till grund för en metod som kallas gittermultiplikation , som var standardmetoden för flersiffrig multiplikation utvecklad i medeltida arabisk och hinduisk matematik. Gittermultiplikation introducerades i Europa av Fibonacci i början av det trettonde århundradet tillsammans med själva arabiska siffror; även om de sätt han föreslog att beräkna med dem, liksom siffrorna också, till en början var långsamma att fånga upp. Napiers ben var en beräkningshjälp som introducerades av skotten John Napier 1617 för att underlätta beräkningar av gittermetoden.

Se även

  •   Rob Eastaway och Mike Askew, Maths for Mums and Dads , Square Peg, 2010. ISBN 978-0-224-08635-6 . s. 140–153.

externa länkar