Rekenmethodes en algoritmes
Er zijn veel verschillende methodes om te leren rekenen. Een methode wordt een algoritme genoemd. Elke wiskundige bewerking van getallen is in feite terug te leiden op een toegepast algoritme, zo ook optellen en vermenigvuldigen. Deze vallen onder de noemer: Rekenmethodes. Deze methodes worden vanaf de basisschool aangeleerd aan de leerlingen. Toch zitten er hele grote verschillen in de methodes en zijn sommige beter dan andere.
Algoritme
Mohammed ibn Moesa Chwarizmi, ook wel Al-Chwarizmi, is een Perzische wiskundige en grondlegger van het algoritme. Hij omschreef een algoritme als een: 'Eindige reeks instructies'. Van hem kwam het idee om door een serie van vast vervormingen van getallen een antwoord te krijgen. Dit komt er op neer, dat je met een startgetal aan een serie vervormingen begint en het getal dat uit de vervormingen komt is dan je antwoord. In feite is een kookrecept ook een algoritme, het vertelt je wat je met bepaalde ingrediënten moet doen om tot je resultaat te komen. Zo vertelt een algoritme ook hoe je van bepaalde getallen, andere getallen kan maken. Bij rekenmethodes worden de algoritmes vaak gebruikt om som te vereenvoudigen, zodat deze uit het hoofd kan worden opgelost.
Rekenmethodes
Rekenmethodes zijn algoritmes die worden gebruikt om getallen op te tellen, te delen en te vermenigvuldigen. Aftrekken wordt dan het het optellen van negatieve getallen. Computers en rekenmachines hebben veel van deze algoritmes. De programmeertaal waarin de programma's voor deze elektronica geschreven worden zijn opgebouwd uit deze algoritmes.
De rekenmethodes worden vaak vanaf de basisschool al aangeleerd. Er zijn alleen, net als bij alle leermethodes, uiteenlopende meningen over welke algoritmes het beste zijn om aan te leren. Het resultaat hiervan is dat verschillende generaties vaak op een andere manier hebben leren rekenen. Een voorbeeld hiervan is het worteltrekken, wat tegenwoordig niet meer in het standaard pakket zit, waar het dat vroeger wel zat. Alle rekenmethodes werken perfect, ze geven de goede antwoorden, de vraag is welk algoritme het meeste inzicht geeft, tegen de minste hoeveelheid arbeid.
Optellen
Voor optellen zijn niet veel verschillende algoritmes nodig. Het decimale getallenstelsel zit zo in elkaar dat het optellen in 1 kort algoritme gestopt kan worden. Het enige verschil dat er tussen verschillende methodes zit is dat ze op een andere manier worden uitgelegd. De op te lossen som is in dit voorbeeld 231 + 492.
De notatie is:
231
492
------- +
Nu worden de getallen die boven elkaar staan opgeteld, van rechts naar links. De uitkomst daarvan worden genoteerd van rechts naar links. Als 1 van de uitkomsten boven de 9 is, bijvoorbeeld 12, dan wordt alleen de 2 genoteerd en dan wordt de 1 boven aan geschreven. Om dit te illustreren gebruiken wij de som 23 + 9.
1 ( 9 + 3 = 12, de 2 wordt genoteerd en de 1 wordt hier geschreven)
23
09
-------+
32 ( 9 +3 geeft een 1 en 1 +2 geeft een 3)
Nu kunnen we de eerst som ook oplossen:
1 ( 9 + 3 = 12, de 2 wordt genoteerd, de 1 wordt hier geschreven)
231
492
------- +
723
Er is nog een andere veel gebruikte methode om op te tellen. Bij deze methode worden de getallen anders genoteerd, waardoor de som makkelijk op te lossen is:
231
492
------- +
003 (1 + 2)
120 (30 + 90)
600 (200 + 400)
------- +
723
Beide methodes kunnen worden gebruikt om meerdere getallen bij elkaar op te tellen en kunnen ook worden gebruikt bij het optellen van komma getallen. In de praktijk komt het vaak voor dat verschillende algoritmes door elkaar worden gebruikt en op die manier een nieuwe algoritme vormen.
Vermenigvuldigen
Dit algoritme is voor sommige getallen handig, maar ook voor heel veel niet. Het gaat er vanuit dat je bepaalde veel voorkomende sommen, uit het hoofd weet, zoals 4 x 25 = 100. Het verschil tussen de bekende en de onbekende helpen bij het berekenen. In het voorbeeld berekenen we 6 x 23.
Bekend is 6 x 25 = 150
25 - 23 = 2, het verschil tussen beide getallen is dus 2, dus het verschil tussen 6 x 25 en 6 x 23 is 6 x 2
6 x 2 = 12
6 x 23 = 6 x 25 - 6 x 2 = 150 - 12 = 138
Deze methode werkt alleen bij bepaalde vast getallen, die al bekend zijn. Daarvoor is het algoritme veel sneller dan alle andere algoritmes in zijn soort. Een voetnoot is wel dat niet alle vermenigvuldigingen zo op te lossen zijn.
Partial Products Method
Dit algoritme wordt gebruikt voor het vermenigvuldigen. De op te lossen som is in dit voorbeeld 26 x 31.
De notatie bij dit algoritme is:
26
31
------- x
De volgende stap is het opdelen van de som. Eerst wordt 1 vermenigvuldigd met 6 en daarna met 20. Daarna wordt 30 met 6 vermenigvuldigd en met 20.
26
31
------- x
006 (1 x 6 = 6)
020 (1 x 20 = 20)
180 (30 x 6 = 180)
600 (30 x 20 = 600)
------- +
806
Het antwoord is 806.
Cluster Method for Multiplacation
Deze methode is moeilijker dan de vorige, maar geeft wel meer inzicht dan de vorige. We gebruiken dezelfde som als voorbeeld: 26 x 31. Het systeem achter deze methode is dat je de getallen als optel som gaat schrijven. Zo wordt 26 een optel som van 20 en 6. 6 wordt op zijn beurt een optel som van 5 en 1. Het resultaat:
26 x 31= (20 x 31) + (5 x 31) + (1 x 31)
20 wordt op zijn beurt 10 x 2. En 10 x 31 is weer heel makkelijk uit het hoofd uit te rekenen. Met 5 gebeurt hetzelfde, dat wordt 10 x 1/2.
20 x 31= 10 x 31 x 2 = 310 x 2 = 620
5 x 31 = 10 x 31 x 1/2 = 310 x 1/2 = 310/2 = (300/2) + (10/2) = 150 + 5 = 155
1 x 31 = 31
26 x 31 = 620 + 155 + 31
620
155
031
------- +
806
Deze methode lijkt veel ingewikkelder dan de vorige, maar is bij sommige getallen sneller en daarmee effectiever dan de Partial Products Method.
Standard Algorithm for Division
Dit algoritme wordt gebruikt om een breuk of een deling uit te rekenen. Bij het voorbeeld rekenen we de som 133/6 uit. Eerst wordt bij het eerste getal gekeken of 6 erin past. Als dit kan worden ze van elkaar afgetrokken, als dit niet kan wordt er gekeken of 6 in de eerste 2 getallen past, als dit kan worden ze weer van elkaar afgetrokken. Het ziet er zo uit:
133
6
------- /
1 kan niet worden gedeeld door 6, dus kijken we naar de eerste twee getallen. Dan wordt er gekeken naar de eerste twee getallen. 13 is deelbaar door 6, wel twee keer. We noteren dus 2 en trekken (2 x 6 =) 12 van de 13 af.
013
6
------- / 2
01 kan niet worden gedeeld door 6, maar 13 wel. Dit levert de tweede 2 op, die achter de eerste geschreven wordt.
001 ( 13 - (2 x 6) = 1)
6
------- /22
Dit wordt genoteerd als 22 rest 1. Het kan ook als breuk worden geschreven als 22 1/6.
Cluster Methode for Division
Dit algoritme is ook voor breuken en delingen. Hier is het voorbeeld ook 133/6. Er wordt bij dit algoritme letterlijk gekeken hoe vaak 6 in 133 past.
133
6
------- /
6 x 10 = 60, dat is kleiner dan 133
6 x 20 = 6 x 10 x 2 = 120, dat is kleiner dan 133
6 x 30 = 6 x 10 x 2 + 6 x 10 = 180, dat is groter dan 133 dus gebruiken we het vorige getal, 20
6 x 21 = 6 x 20 + 6 = 126, dat is kleiner dan 133
6 x 22 = 6 x 20 + 2 x6 = 120 + 12 = 132, dat is kleiner dan 133
6 x 23 = 6 x 20 + 3 x 6 = 120 + 18 = 138, dat is groter dan 133 dus gebruiken we het vorige getal, 22
Conclusie: 6 past 22 keer in 133 met een rest van (133 - (6 x 22) = 133 - 132 =) 1
Bij grotere of kleinere getallen kan de stapgrootte ook naar verhouding veranderen.
Partial Quotiens Method
Dit is ook een algoritme voor deling en breuken, het voorbeeld is ook 133/6. Het lijkt erg op de Cluster Methode maar is toch anders. Bij dit algoritme worden veelvouden van 6 van 133 afgetrokken. Op het moment dat de uitkomst negatief is, wordt gekeken of de laatste waarde door 6 deelbaar is.
133 - (6 x 10) = 133 - 60 = 73
73 - (6 x 10) = 73 - 60 = 13
13 - (6 x 10) = 13 - 60 = -47, dit is een negatief getal, dus gaan we verder met de vorige waarde
13 - (6 x 1) = 13 - 6 = 7
7 - (6 x 1) = 7 - 6 = 1
1 - (6 x 1) = 1 - 6 = -5, dit is een negatief getal, dus gebruiken we de vorige waarde. Omdat deze niet deelbaar is door 6, schrijven we die waarde op als rest.
Er is 2 x 10 en 2 x 1 keer een 6 afgetrokken wat neer komt op 22. Het antwoord is dus 22 met rest 1
Hier geldt ook weer dat de stapgrootte naar verhouding kan worden aangepast.
Voetnoot
Als bedacht wordt dat alle wiskundige bewerkingen terug te leiden zijn tot optellen, aftrekken, delen en vermenigvuldigen dan is het niet zo vreemd dat alle programmeertalen bestaat uit combinaties van dit soort algoritmes. Bewerkingen zoals kwadrateren zijn in feite ook gewoon vermenigvuldigingen. Het kwadraat van 12 is immers hetzelfde als 12 x 12 (= 144). Elke programmeertaal wordt door een computer gelezen als 1 grote rekensom.