Slim tellen
Inleiding Stel er is brand in de school en iedereen moet naar buiten. Om er zeker van te zijn dat iedereen buiten is moet je tellen hoeveel leerlingen op het schoolplein staan. Je kunt dan de leerlingen één voor één gaan tellen. Bij een school met honderden leerlingen kost dat veel tijd, de school is dan al lang afgebrand. Is er niet een slimmere, snellere manier om dat te doen?
Vragen bij jouw aanpak Tactiek: Hoe ga je te werk? Hoe weet je wie je al gehad hebt? Wie doet al het werk (het tellen)? Hoeveel werk (= aantal stappen) is het? Hoeveel meer werk is het als er twee keer zo veel leerlingen zijn?
Stroomdiagram
Voorbeeld algoritme Alle leerlingen gaan staan Alle leerlingen krijgen het getal 1 Voor iedereen die nog staat: kijk je buur aan en spreek af: Eentje gaat zitten De ander telt jullie getallen bij elkaar op, en onthoudt dat nieuwe getal Herhaal dit tot er één leerling over is.
Voorbeeld algoritme Wie doet al het werk? Jullie! Ik heb mijn handen vrij om andere dingen te doen. Hoeveel werk (= aantal stappen) is het?
Voorbeeld algoritme Wie doet al het werk? Jullie! Ik heb mijn handen vrij om andere dingen te doen. Hoeveel werk (= aantal stappen) is het? Stel, je hebt 20 leerlingen Na 1x getal uitwisselen staan er 10 leerlingen Na 2x getal uitwisselen staan er 5 leerlingen Na 3x getal uitwisselen staan er 3 leerlingen Na 4x getal uitwisselen staan er 2 leerlingen Na 5x getal uitwisselen staat er nog 1 leerling.
Voorbeeld algoritme Wie doet al het werk? Jullie! Ik heb mijn handen vrij om andere dingen te doen. Hoeveel werk (= aantal stappen) is het? Hoeveel meer werk is het als er twee keer zo veel leerlingen zijn? Stel, je hebt 20 leerlingen Na 1x getal uitwisselen staan er 10 leerlingen Na 2x getal uitwisselen staan er 5 leerlingen Na 3x getal uitwisselen staan er 3 leerlingen Na 4x getal uitwisselen staan er 2 leerlingen Na 5x getal uitwisselen staat er nog 1 leerling.
Voorbeeld algoritme Wie doet al het werk? Jullie! Ik heb mijn handen vrij om andere dingen te doen. Hoeveel werk (= aantal stappen) is het? Hoeveel meer werk is het als er twee keer zo veel leerlingen zijn? Stel, je hebt 40 leerlingen Na 1x getal uitwisselen staan er 20 leerlingen Na 2x getal uitwisselen staan er 10 leerlingen Na 3x getal uitwisselen staan er 5 leerlingen Na 4x getal uitwisselen staan er 3 leerlingen Na 5x getal uitwisselen staan er nog 2 leerlingen. Na 6x getal uitwisselen staat er nog 1 leerling.
Voorbeeld algoritme 2 x zoveel leerlingen? Maar 1 stap extra (in plaats van 2x zoveel stappen) 1024 leerlingen kun je in 10 stappen tellen. En het 2048 (het dubbele) in 11 stappen. Heel Nederland? Met maar 20 stappen. Dat scheelt je veel werk! … en het werkt zelfs als jullie rondjes rennen
Na afloop Het gaat om een algoritme om mensen te tellen. Blijkbaar zijn er meerdere algoritmen voor deze uitdaging. Die algoritmen kun je met elkaar vergelijken door te kijken hoe lang het duurt voor de oplossing is bereikt (het aantal stappen om tot een oplossing te komen). We noemen dat wel de complexiteit van algoritmen. Het is belangrijk om te zoeken naar algoritmen met zo min mogelijk stappen. Want ook al zijn computers heel snel, als de hoeveelheid data (vergelijkbaar met het aantal leerlingen op het schoolplein) heel groot wordt, dan kan het toch te lang duren voordat een oplossing wordt gevonden.
Licentie Dit werk valt onder een Creative Commons Naamsvermelding-GelijkDelen 4.0 Internationaal-licentie.