Hoe groot is de kans dat een aap met een typmachine je favoriete boek schrijft? Niet zo groot. Dat voel je denk ik wel aan. Maar er is een kans. En in dit artikel leg ik uit wat die kans voor je betekent.

Apen schrijven Hamlet

Het boek The Blind Watchmaker van Richard Dawkins bespreekt de evolutietheorie. En ergens in zijn verhaal komt het volgende voorbeeld voorbij:

Neem een zeer grote, nagenoeg oneindige, hoeveelheid apen; geef ze allemaal een typmachine; laat ze allemaal willekeurig typen; en er zal er één tussen zitten die per ongeluk Hamlet typt.

Want, Hamlet is voor mensen met de relevante taalkennis een reeks van tekens met betekenis.

Máár, het is los daarvan ook een willekeurige reeks tekens. Een reeks die onbedoeld geschreven zou kunnen worden, als je leger van willekeurige schrijvers maar groot genoeg is. Bijvoorbeeld een oneindige hoeveelheid apen.

Wat heb jij hieraan?

We leven in een tijd dat automatisering toegankelijker is dan ooit. Om het voorbeeld van zojuist te gebruiken: je zou met een computer reeksen van karakters kunnen genereren en kunnen toetsen of een van deze reeksen gelijk staat aan het verhaal van Hamlet. (Ik raad je ook aan om je computer niet met deze taak te belasten.)

Om te illustreren hoe dit werkt en wat dit voor je kan beteken, bedenk ik een ietwat simpeler systeem. Een systeem dat geen Hamlet poogt te schrijven, maar mijn voornaam.


De Erik-generator

Dit systeem probeert de naam ‘erik’ te genereren. Het systeem maakt hiervoor gebruik van een dobbelsteen. Iedere zijde van de dobbelsteen staat symbool voor een letter:

  1. e
  2. r
  3. i
  4. k
  5. c
  6. o

Door de dobbelsteen vier keer te rollen komt er een reeks van vier karakters uit. De reeks ‘1234’ staat gelijk aan ‘erik’. Als dit het geval is, laat het systeem weten hoeveel keer het een reeks heeft moeten dobbelen om tot die reeks te komen.


Probeer het zelf

Om te ervaren hoe het systeem werkt, nodig ik je uit om het zelf eens te proberen. Pak vier dobbelstenen uit de kast en ga dobbelen. Houd bij hoeveel pogingen je nodig hebt om tot de reeks ‘erik’ komen.

Let op: het is een klusje dat heel lang kan duren.

Nu is de machine aan zet

Met een beetje denkwerk en wat programmeerkennis kan ik een machine (lees: mijn computer) het erik-systeem laten uitvoeren. Als de code klaar is geeft het twee dingen aan:

  • Hoeveel pogingen waren er nodig?
  • Hoelang duurde het om tot het resultaat te komen?

Als ik de machine laat draaien, krijg ik onderstaande informatie terug:

"erik" generated in 298 attempts (0.01 seconds)

Als ik het nog eens draai, heeft het systeem meer pogingen nodig, en krijg ik deze uitvoer:

"erik" generated in 1897 attempts (0.03 seconds)

Sta even stil bij wat dit betekent: de code heeft in 0.03 seconden 1.897 keer een reeks van vier cijfers gedobbeld!


Hoe automatisering je kan helpen

Hetzelfde klusje honderden keren uitvoeren is voor velen geen leuk werk.

Maar nadenken hoe je dat automatisch zou kunnen doen? Dat is een stuk leuker. Het forceert je om een stap terug te doen, na te denken hoe je van A naar B komt, en hoe een computer je bij dat werk zou kunnen helpen.

Zie het als het bouwen van je persoonlijke assistent die met veel plezier klusjes voor je uitvoert.

Klinkt wel goed toch?