Categoriearchief: wiskunde

Binary art: plotten

Sinds een week of twee beschikt mijn school over een tweedehands AxiDraw V3 van Evil Mad Scientist Laboratories (EMSL). In feite een gewone ouderwetse flatbed plotter die in het XY-vlak kan bewegen en een pen op en neer kan doen. De besturing kan op vele manieren maar de eenvoudigste is via het freeware vector-tekenprogramma InkScape. Wij (Per-Ivar, Marten en ik) waren een paar jaar geleden op bezoek in Californië bij de ontzettend aardige mensen van EMSL en die vertelden dat ze er toen mee bezig waren (ze lieten ons toen een enorme machine zien die met tandwielen en een speciaal gevormde rand de handtekening van een president kon zetten). Er zijn nu een paar versies op de markt die vooral verschillen in tekenoppervlak. Een nieuwe kost ongeveer €500. Wij kochten hem voor een beetje minder.

Als eerste probeer je dan natuurlijk een meegeleverd bestand. En dan begint de magie. Het is wat de Amerikanen “Mesmerizing” en wat mijn leerlingen in goed Nederlands “Satisfying” noemen. Heel fijn om te kijken naar een machine die iets analoogs doet: echt tekenen. Zo netjes kan niemand het. Maar een voorbeeld downloaden en afdrukken is leuk maar ook saai. En zelfs tekenen in InkScape, wat goed kan, is niet wat ik leuk vind. De voorbeelden die je op Twitter kunt vinden onder de hashtag #plottertwitter zijn tekeningen die eigenlijk allemaal gegenereerd zijn met behulp van een computer, geprogrammeerd dus. En dat wilde ik ook. En ik wist ook wat.

Een tijd geleden al (zo’n vijf jaar) maakte ik in de programmeertaal (ontworpen dor en for kunstenaars) Processing, de “Binary Tiles”. Kortweg een representatie van de binaire getallen (0-en en 1-en) in een vierkant rooster waarbij de bits ook weer in een vierkant waren gerangschikt. Je ziet hiernaast de eerste vijf getallen, 000000000, 000000001, 000000010, 000000011, 000000100. Ik maakte toen een vierkant met 216 =65.536 vierkantjes van  4×4 tegeltjes. Allemaal verschillend. Ik maakte een goede afdruk die je hiernaast afgedrukt ziet, liggend op de vloer. Hij is 1,2×1,2 m groot. Nu te zien in mijn lokaal op De Populier. Ik schreef daar toen ook een blogpost over waar ik het beter uitleg dan hier. Als je dat wil lezen, kun je hier klikken. Een voor een nerd als ik zeer bevredigende exercitie kwam toen tot een einde. Soms is er een leerling die ernaar vraagt en die leg ik het dan geduldig uit. Heel soms vindt zo’n leerling het dan ook “cool”.

Nu met een plotter tot onze beschikking bedacht ik me dat ik wel eens daar mee zou kunnen beginnen, met mijn “Binaire Tegeles” project. In die tijd heb ik wat uitstapjes gemaakt en een daarvan waren de “binaire elpees”. Je ziet er hier een paar rechts op een shirt getekend. Wat ik daar deed waren boven op elkaar, van buiten naar binnen, steeds kleinere cirkels maken. Zwart gevuld als het binaire getal een 1 is, en wit gevuld als Het een 0 is. Zo wordt elk binair getal een ander gevulde cirkel.

Ik bekeek de code weer, maakte het me weer eigen en download een Processing-bibliotheek die van het plaatje een SVG-bestand maakt, het native bestandsformaat van Inkscape. Na wat proberen, kreeg ik een goed SVG-bestand dat ik in Inkscape laadde. Plotten maar. Ik merkte direct twee dingen:

  1. De pen die ik gebruikte, een gewone fineliner, was helemaal niet zo “fine”. Veel te dik voor wat ik wilde laten zien.
  2. De plotter tekende alle cirkels. Dus ook de witte. Denkfout! De plotter tekent alle lijnen welke kleur ze ook zijn, dus ook de witte. En vullen kan hij niet, alleen lijnen tekenen.

Ik kocht betere pennen (zie hiernaast), beter papier en veranderde de code zodanig dat alleen de zwarte cirkels werden getekend (zie voor de uitleg hiernaast). Nu was de plot beduidend beter. Ik wilde de 212 versie maken. Dat levert echter 4096 cirkels op, 256×256 dus en dat was ook voor het ultradunne pennetje echt teveel van het goede op een A4-tje. De 210 versie, met 1024 cirkels dus, 32×32 was echter wel mooi tekenbaar.

Toen dit eenmaal lukt, was ik niet meer te stoppen. Ik maakte:

Binaire vierkanten. Twee versies: eentje zoals de cirkels: steeds kleiner naar het midden en toe en de ander ok steeds kleiner maar dan naar een hoek (was niet de bedoeling maar een fout in de code leverde deze laatste variant waar ik best tevreden over was.

 


Binaire sterren.
Vanuit het midden “spaken”. Beginnend op 12 uur en dan met de klok mee (processing wil op 3/9 uur beginnen en tegen de klok in). Degenen met de cirkeltjes aan het einde van een spaak is erg vrolijkmakend, zie het filmpje hierboven. Hiernaast zie je de  uurversie (212 met een cirkeltje eromheen) is mooi maar wel erg precies. Hier dus wel 4096 cirkeltjes met spaken. Hij deed er meer dan vier uur over om deze te maken.

 

 

Binaire “spikes”. Een soort signaal. Zoveel posities als er bits zijn en bij elke “1” een spike. Levert dus een veel bredere tekening op want deze is 8 breed en slechts 1 hoog. Hier varieerde ik in de vorm van de “spikes”. Kromme, signaalachtige spikes, maar ook driehoeken en zelfs vierkanten.

 

 

Patroon. Nog niet geplot.

Binaire zeshoeken. Een intrigerende vorm, een zeshoek. Ook een fijn wiskundig puzzeltje om de juiste coördinaten te vinden (√3 speelt een belangrijke rol). Hier ook weer steeds kleiner wordende zeshoeken. Ik koos ervoor om ze tegen elkaar aan te leggen: zeshoeken vullen de ruimte. Ik moet dit nog eens proberen met vierkanten, die dit ook doen.

Marten wees me op een kunstwerk dat hij ooit zag waarbij er heel veel objecten waren gegoten van gips maar elke was verschillend. “Zou je ook dat ook niet kunnen doen? Dus door elkaar heen maar allemaal verschillend?” Dat heb ik bij de cirkels, de vierkanen en de zeshoeken geprobeerd en de resultaten zijn vaak behoorlijk “pleasing to the eye”. Je mist wel de structuren die in elke “op volgorde” plot zitten vanwege de aard van de binaire getallen die het representeert.

Ik ben nog lang niet klaar met de binaire getallen en ok niet met de plotter. Wellicht ga ik ook plots verkopen dan kan ik een eigen plotter gaan kopen. De toekomst is mooi!

Arjan

Binaire “kunst”: het vervolg

Als mijn hoofd weer een beetje leeg raakt, na een weekje in de zomervakantie, komt mijn inwendige nerd hard naar boven. Een paar jaar geleden heb ik mijn binary tiles, ofwel Binaire Tegels gemaakt. Je kunt er hier (algemeen), en hier (the movie) over lezen. Deze tegels blijven in mijn hoofd zitten en ik besloot wat te gaan experimenteren. De eerste die ik wilde maken waren wat ik eerst “Binaire klokken” noemde maar die door mijn geslaagde leerling Quinty omgedoopt zijn tot Binaire taartjes. De code vind je hiernaast en het resultaat hieronder. De cirkels zijn verdeeld in 12 segmenten (12 uur dus) en die schuiven binair op. Zie hiernaast.Je kunt dan 212=4096 verschillende taartvormen maken.Als je dat wilt laten zien op een vierkant plaatje, dan moet je er dus √(4096)=64 op een zijde zetten.

Het programmeerwerk heb ik gedaan met de geweldige programmeertaal Processing. Niet voor niets een taal die door veel digitale kunstenaars wordt gebruikt (en nee, ik ben geen kunstenaar hoor). Niet veel regels code nodig (het zal vast korter kunnen). Zie hiernaast.

Het resultaat is toch weer verrassend. Je ziet weer patronen, donker/licht. Ga er met je muis overheen voor de details (niet op klikken: levert verkeerd plaatje; toch gedaan? Klik kruisje rechtsboven).

De tweede representatie die ik probeerde was de streep-representatie.Een witte achtergrond en een zwart, horizontaal streepje als het een “0” is en een witte als het een “1” is.
Een vierkant van 12 strepen, dus ook hier weer 64×64 “vierkantje” met strepen.
Deze representatie ziet er wat chaotischer uit maar daar wellicht wel wat spannender (ik weet, hier praat een nerd). De code lijkt vanzelfsprekend erg op de code hierboven en is nog iets eenvoudiger. Als je geïnteresseerd bent, laat het me dan weten, dan stuur ik de code op. Het leverde in ieder geval dit op:

De derde representatie die ik maakte, werd wellicht het mooist (je weet dat van te voren niet, heb ik gemerkt). Bij deze representatie heb ik cirkels gemaakt. De binnenste cirkel is de rechterbit (least significant), de buitenste de linkerbit (most significant). Als die “0” is dan is die zwart en bij “1” weer wit.

Het resultaat is een soort hallucinerend jaren 70 patroon. Ook lijken het wel LP’s. Mijn grote vriend Per-Ivar was onder de indruk en wil een t-shirt van een stukje.

Volgende actie: eens nadenken over het gebruik van kleur. Lastig maar lekker om je hoofd omheen te buigen.

 

 

Update:

Binaire LP’s: the movie!. Op dezelfde manier als hier beschreven, heb ik van de LP-plaatjes een animatiefilm gemaakt. Zitten toch weer geinige patronen in. Check it out! (duur: 2.43 min., kijk vooral door tot het einde, de laatste seconden zijn grappig omdat de cirkel dan wordt weggevaagd. Afijn.)

Binaire tegels

Na een hack verdwenen alle posts van onze site. Ik haal er af en toe eentje weer op, van het Internet Archive. 

Andere getallenstelsels dan ons tientallig stelsel vind ik al heel lang heel fascinerend.

Twaalftallig ( “It’s counting, Jim, but not as we know it!”, zie hier) maar vooral binair. Tweetallig. Alleen met nullen en enen alle getallen kunnen maken die je maar wilt. Gekke rekenregels als: verdubbelen betekent een 0 erachteraan plakken (101+101=1010, oftewel 5+5=10). En die prachtige patronen. Kijk maar hiernaast. De minst belangrijke bit (rechts) alterneert telkens: even is een nul aan het eind, oneven een 1. De bit daarnaast alterneert om de twee, de bit daarnaast om de vier enzovoort. Het is van een verbluffende schoonheid.

Als een echte nerd, zat ik een paar jaar geleden te klooien met een binair patroon. Het begon met een vierkant raster van 3×3, dat ik binair wilde vullen. Dus starten met een leeg vierkant, dan links bovenin zwart, dan de tweede, dan de eerste en de tweede, dan de derde, etc. Zie hieronder voor de start van het patroon:

Je kunt dan dus op negen plekken een witte of zwarte vulling hebben. Dat betekent dat je dus 29 = 512 vierkantjes hebt. Ik wilde het graag in een vierkant plaatsen. Dat was even lastig: √(512)=22,63. Ik besloot het vierkant 23×23 te maken. Dat betekent dat ik 23×23-512=529-512=17 vierkantjes niet kon vullen.

Wat moest ik nu met die 17 lege vakjes? Ik maakte eerst in een tekenprogramma (Fireworks) alle vierkantjes. Veel werk maar door de herhalende patronen  in een uurtje klaar. Het was mooier dan ik had gedacht. Allerlei patronen die zich plotseling manifesteerden! Maar ik had nog steeds die 17 lege vakjes. Ik zag dat sommige vakjes net een letter leken. Even puzzelen en ik had een oplossing. Ik plakte ergens in het midden die vakjes die “binary tiles” vormden. Dat zijn 12 letters. Een spatie erbij en het was klaar.Voor een goede-doelen-actie op mijn school heb ik er twee afgedrukt en verkocht. Mijn eerste verkochte kunstwerken! Maar het bleef een beetje kriebelen.

Het feit dat er niet een mooi vierkant van een 3×3 model te maken is, zat me dwars. En de oplossing ligt om de hoek! Een 4×4 model kan makkelijk in een vierkant. Er zijn 16 plekken, dus er ontstaan 216 =65.536 vierkantjes. En  √(65.536) = 256!

Maar. 65.536 tegels maken. Als je er 1024 per avond maakt, ben je toch nog 64 dagen bezig! Dat moet dus anders. Gelukkig zijn binaire getallen de natuurlijke vrienden van programmeren! Dat moet dus kunnen. Nu was het alweer een tijdje geleden dat ik had geprogrammeerd en ik moest ook een programmeertaal vinden die grafisch werkt. Na een avondje zoeken en proberen, besloot ik te gaan werken met een programmeertaal waarmee ik in een ver verleden wel wat had gewerkt: PHP.

Als je dat niet zo vaak doet, wordt je code niet heel efficiënt maar het lukt me uiteindelijk. De code staat hier (als een plaatje) onder.

En weer, zoals altijd eigenlijk, werd ik overvallen door de kracht van programmeren. Met een paar regels code een vlak van 1793×1793 pixels vullen, precies op de manier zoals ik dat wilde, dat is welhaast magie.

Dit is alweer een tijdje geleden. Ik heb het eens laten afdrukken maar vergat toen dat het nogal klein is. Op 30×30 cm is één vierkantje slechts 30/256=0,12 cm groot. En dat is niet te zien. En ja, dan komen er weer andere zaken voorbij en ik vergat het.

Een week geleden liet ik het fotoalbum van onze vakantie in Wales afdrukken en dacht ik plotseling aan mijn pixelart, mijn binaire tegels kunstwerk. Ik heb uitgerekend dat als de foto afgedrukt zou worden op 100×100 cm het wel te zien zou zijn (100/256=0,4 cm). Ik zocht naar de juiste (lees: niet zo dure) afdrukcentrale (posterxxl.nl), zag dat een 120×120 cm poster een paar euro meer was dan de 100×100 cm poster, koos de eerste en drukte op de Verzend-knop. Een paar dagen later kwam de (enorme) koker binnen.

Wat een feest! Ik kan er uren naar kijken. Je ziet hiernaast het eerste stukje, linksboven. Ik heb ervoor gekozen het vlakke in een zwart kader te plaatsen en tussen elke tegel een pixelbreed randje te zetten. 16×16=256 tegels. Van zo’n stukje zijn er dus nog 256. Het begint links bovenaan met een volledig zwart vakje, meteen daarnaast zie je 0000000000000001, daarnaast 0000000000000010, daarnaast 0000000000000011 etc. Rechts onderaan zie je, als je goed kijkt, 0000111100001111 (3855).

Hieronder zie je hem helemaal, uitgespreid over de grond in onze woonkamer:

En wat nu? De afdruk is dus goed gelukt. Ik ga deze plakken op een stuk foamboard en ik hang hem in mijn lokaal. Ook ga ik hem nog eens bestellen maar dan achter plexiglas opgeplakt of op aluminium. Duur maar mooi.

En een volgende grootte? Een vierkantje van 5×5 heeft 225=33.554.432 mogelijke invullingen. Dat is veel. Bovendien is deze niet vierkant af te drukken; √(33.554.432)=5792,61875148. Een vierkantje van 6×6 dan? Dat zijn nog veel meer vierkantjes: 236 = 68.719.476.736. Dat zijn er wel extreem veel. Deze is wel vierkant af te drukken: 262.144 x 262.144. Als ik de vierkantjes dan echter op dezelfde grootte (0,4 cm, zie boven) wil afdrukken wordt de poster meer dan 1000 x 1000m. Ik vermoed dat weinig afdrukcentrales dit aankunnen.

Update 02:

Raymond (ook een #plakkerenknipper, zie twitter) heeft een LED-paneel de patronen van de Binaire Tegels laten afspelen. Supervet! Bedankt man!

Update 01:

Ik heb een video geschoten vaneen virtuele vlucht over de poster. Van linksboven via rechtsboven naar rechtsonder. Geeft een beeld hoe groot het is.

Rechten e.d.

Ik heb de code en de uiteindelijke jpg-file van de tegels niet beschikbaar gesteld. Het is namelijk best veel werk geweest om dit te maken. En een digitale kopie is exact. Mocht je geïnteresseerd zijn, mail me dan even: arjan@plakkenenknippen.nl. Ik denk overigens dat degenen die belangstelling hebben, wellicht zelf zo “nerderig” zijn dat ze dit, zeker met mijn uitleg, best zelf zouden kunnen maken.

Feyenoord-ADO Den Haag

Van Yorick Groeneweg, sportverslaggever bij het AD kreeg ik een leuke vraag.

De afgelopen drie jaar heeft Feyenoord in het KNVB- bekertoernooi thuis tegen ADO Den Haag gespeeld. De kans dat dat gebeurt leek Yorick heel klein en hij vroeg me:

 

Hoe groot is de kans dat drie jaar achter elkaar de wedstrijd Feyenoord-ADO Den Haag in het bekertoernooi plaatsvindt?

Nu houd ik wel van een rekenvraag dus ik ben meteen aan de slag gegaan. En met hulp van mijn onvolprezen collega Maurice Scheren en hele slimme leerling Maarten Pijpers zijn we er uitgekomen. Link naar artikel op AD site. Klik op het plaatje hiernaast om te zien hoe het eruit zag in de papieren versie.

De gegevens;

Er zijn 64 teams die meedoen aan het bekertoernooi vanaf het moment dat de eredivisieclubs mee gaan doen. Maar om de vraag te kunnen beantwoorden, moet je eigenlijk eerst weten wat de kans is dat Feyenoord en ADO Den Haag een bekerwedstrijd winnend afsluiten. De Wikipediapagina’s over de bekertoernooien van de afgelopen jaren, helpen hierbij. Hieruit blijkt dat Feyenoord gemiddeld drie van de zes rondes overleefd heeft in de laatste tien jaar. Dat betekent dat de winstkans 50% is. Voor ADO Den Haag ligt dit iets lager. Zij overleven gemiddeld 0,80 rondes. Dat betekent dat de winstkans van ADO 13% is.

Verder is het kansrekening

In de eerste ronde zijn er 64 teams. De kans dat Feyenoord ADO treft is dan dus 1/63 (je speelt niet tegen jezelf). De kans dat dit in de Kuip wordt gespeeld is 50%, dus bij elkaar is dat 0,5×1/63= ongeveer 0,8%. De kans dat de wedstrijd ADO-Feyenoord moet worden gespeeld is even groot natuurlijk. En dan is de kans verkeken op Feyenoord-ADO want er gaat er maar een door.

Als dat allemaal niet gebeurt (de kans daarop is dus 100-2×0,8=98,4%) en Feyenoord wint (kans 50%) en ADO wint (kans 13%) dan is de kans dat vervolgens Feyenoord-ADO wordt geloot 0,5×1/31 (er zijn nu nog maar 32 teams). De totale kans daarop is dus 0,984×0,50×0,13×0,5x(1/31)=ongeveer 0,1%. Ook nu is weer de kans dat ADO-Feyenoord wordt geloot even groot.

We rekenen verder. De kans dat we in de derde ronde terechtkomen zonder Feyenoord-ADO nu gelijk aan: 0,984×0,998x(0,5×0,13)2x0,5x(1/15)=0,000013=0,0013%. Dat zet weinig zoden meer aan de dijk. De kansen dat dit nog kan gebeuren in de kwartfinale, de halve finale en de finale zijn nog kleiner (ondanks het feit dat er dan natuurlijk wel een grotere kans is vanwege het feit dat er maar weinig clubs over zijn; in de finale is de kans dat de wedstrijd Feyenoord-ADO plaatsvindt zelfs 50% als Feyenoord en ADO de finalisten zijn).

We moeten al deze kansen bij elkaar optellen. Wanneer we dit netjes doen m.b.v. Excel komt eruit dat de kans op de wedstrijd Feyenoord-ADO Den Haag 0,91% is.

De kans dat dit dus drie jaar achter elkaar zo is, is dan weer uit te rekenen door de kansen dat dit elk jaar gebeurt met elkaar te vermenigvuldigen. Dat is dus (0,0091)3=0,00000076. Oftewel 0,000076%. Dat zegt natuurlijk niet zoveel maar betekent iets als: 1 op 1,3 miljoen. Dat is niet zoveel. Kortweg is het antwoord op de vraag:

De kans dat de wedstrijd Feyenoord-ADO Den Haag drie jaar achter elkaar gespeeld wordt in het bekertoernooi is 1 op 1,3 miljoen.

De kans op het winnen van de hoofdprijzen van de grote loterijen:

Postcode Loterij: 1 op 245.000
Vriendenloterij: 1 op 510.000
Miljoenenspel: 1 op 1,12 miljoen
Staatsloterij: 1 op 2,7 miljoen
De Lotto:  1 op 49 miljoen

Bron: https://www.geldloterijen.nl/kans-op-winnen-loterij

Klik hier om de berekeningen in een Excel-file te downloaden.

Schaakbord met rijst: exponentiële groei

Instructable (English): here!

Vermoedelijk hoorde ik het verhaal voor het eerst op de middelbare school in een wiskundeles. Het verhaal van de uitvinding van het schaakbord.Ik herinner me het zo ongeveer:

Een koning verveelde zich en verordonneerde een nieuw spel. Een geleerde kwam na een paar dagen terug met wat we nu het schaakspel noemen. De koning was zo verrukt dat hij de geleerde zei: “Noem je beloning en je krijgt het!

De geleerde dacht niet lang na en antwoordde: “Ik wil graag één rijstkorrel op het eerste vakje van het schaakbord, twee op het tweede, vier op het derde, acht op het vierde enzovoort tot en met vakje 64.

De koning dacht goedkoop klaar te zijn en stemde direct in. Bij het betalen bleek echter dat er al snel niet genoeg rijst in het land was. Mijn herinnering zegt dat degene die het me vertelde toen zei dat de geleerde van de weeromstuit maar ter dood veroordeeld werd.

Sinds dat momentje ik dat schaakbord voor me. En sinds ik mezelf een maker durf te noemen, wil ik dit schaakbord bouwen en de kracht van het exponentiële verband laten zien.

Later bleek dit verhaal overigens in vele varianten te bestaan. Met graankorrels in plaats van rijstkorrels, of dat het niet de beloning was voor de uitvinding van het schaakbord maar voor een gewonnen potje enzovoort.

Wiskunde is mijn grote liefde, dus nadat ik de vorige zomer mijn Wilhelmusmachine had gemaakt, ben ik begonnen aan een ander groot wiskunde-maakproject. Dat is hels moeilijk en kent vele, vele obstakels. Toen ik daar weer eens in vastliep, dacht ik: “Ik moet mijn houtbewerking-skills maar eens aan gaan pakken en het schaakbord maken.” Dus vanaf oktober 2017 ben ik hieraan begonnen.

Eerst rekenen. En als je veel dezelfde dingen moet doen, slinger je Excel aan natuurlijk. Hoeveel rijstkorrels moeten er op elk vakje gaan liggen. Grappig genoeg loop je dan meteen tegen je eerste leermomentje aan: Excel is maar tot op 15 cijfers significant (check het plaatje hiernaast, na nummer 50 gaat het mis). Vermoedelijk is dit genoeg voor economische doeleinden waar Excel vooral voor gebruikt wordt maar voor mij onacceptabel natuurlijk. Gewone rekenmachines kunnen dit ook niet gemakkelijk, met de hand kan maar is best veel werk. Oplossing: Wolfram Alpha. Overigens staat helemaal onderaan deze tekst een tabel met mijn berekeningen. In deze tabel staan de gecorrigeerde aantallen die ik berekend.

Daarna moest ik natuurlijk gaan bedenken hoe zwaar dit ging worden. Natuurkunde. Ik mat thuis een flink aantal rijstkorrels en zag dat de gemiddelde massa van een Surinaamse rijstkorrel die ik gebruikte 20 mg was. Makkelijk rekenen: 50 in een gram, 50.000 in een kg.

De rijst opstapelen in een vakje kan natuurlijk wel aan het begin maar dat loopt al snel uit de hand en dan “overstroomt” het vakje. En dat wilde ik niet. De rijst moest bij elkaar worden gehouden. Doorzichtige buizen moesten het worden. Na wat zoeken bij leveranciers en nog verder zoeken, besloot ik tot het gebruiken van vrij brede buizen: 56 mm binnendiameter (60 mm buiten). Dat betekende een “larger than life” schaakbord vanwege de ruimte die het nodig heeft maar het zorgt ervoor dat er wel  veel vakjes te vullen zijn met rijstkorrels. Na de “dichtheid” te hebben bepaald (tussen aanhalingstekens want het is de dichtheid inclusief de lucht eromheen, de dichtheid van de rijst zelf is een stuk hoger), kon ik met wat eenvoudige rekensommen, berekenen hoe hoog de rijst in deze buizen kon komen te staan. En dan moet er een keuze worden gemaakt: hoe hoog maak je de hoogste. Vanwege echte niet dat het wel een beetje spectaculair moet ogen, besloot ik te gaan voor de maximale lengte van 140 cm. Best hoog. Dit vakje is het 18e vakje (je hebt dan dus al bijna 3 kg rijst).

Maar wat komt dan daarna? Gewoon lege vakjes is wat saai. Maar een buis van 329 meter hoog (vakje 26, nog niet op de helft dus) lukt natuurlijk niet. “Dat is hoger dan de Eiffeltoren!” Deze gedachte was ook meteen de oplossing. Miniaturen van hoge dingen. Zo hoog als de buizen zouden reiken als ik wél zou doorbouwen. Dus, op vakje 26 komt een miniatuur Eiffeltoren. En op andere vakjes andere hoge dingen. Dingen waar miniaturen van zijn of van te maken zijn.

De Burj Kalifa (hoogste gebouw ter wereld), de Mount Everest natuurlijk en daarna het International Space Center. De maan, Mars, de zon en als laatste, heel toevallig maar bijna ontroerend toepasselijk, de Voyager. Bijna de laatste buis, de 62e,  met rijst zou zo hoog zijn als de afstand van de aarde tot het door mensen gemaakte object dat het verste staat van de aarde.

Aan de slag! Ontwerpen, bestellen en bouwen. Alle overwegingen op het gebied van het bouwen, de zo stevig mogelijke constructie, het al dan niet uit elkaar halen van het gevaarte, het verven etc. staan in de Instructable die ik heb geschreven maar laten we zeggen: ik heb een hoop geleerd (een bekend eufemisme voor “Ik heb een heleboel fout gedaan”). Maar leren over hout en constructies, lijmen en schroeven, was een doelstelling, dus dat was alleen maar heel fijn. De miniaturen hadden soms ook wat voeten in de aarde. Een kleine Eiffeltoren is niet zo moeilijk. Een Burj Kalifa schaalmodel was ook wel te vinden. Maar een mooi schaalmodel van de maan is al wat lastiger en ik heb op een obscure plek uiteindelijk een schaalmodel van de Voyager gevonden. Een klein model van het ISS was veel lastiger en die heb ik uiteindelijk besteld bij Shapeways, waar ze deze in wit nylon hebben ge-3D-print. De maan is prachtig, namelijk in China “andersom” ge-3D-print en voorzien van een intern lampje. Door dit lampje worden de dikkere gedeelten donkerder en lijken dus kraters. Hij is wel wat groot. De zon was een project op zich: hij moest en zou er echt bij van mij. Maar een miniatuurzon is snel of kinderachtig of saai. Uiteindelijk heb ik een pingpongbal genomen, er een aantal LEDs ingedaan, deze geel geverfd met een marker en hem via een paar batterijen aangesloten.

Het hokje naast het hokje van 1,40 meter daar wilde ik ook graag wat op. Maar wat is 2,80 m. Uiteindelijk bedacht ik: een springende basketballer! Een Magic Johnson action figure, van E-bay is dat uiteindelijk geworden. Om het nog wat meer te verbeelden, heb ik ook wat ander, dunner buismateriaal gekocht waar rijst in kan.

En daar staat hij dan. Veel te groot, met een hoop foutjes die ik allemaal zie (maar jullie slechts een paar). Misschien wel 100 uur werk verder. En wat nu? Ik heb geen idee. Hij neemt nogal wat ruimte in en ruimte hebben we niet op de Populier en thuis is een idiote plek voor een ding dat bedoeld is om iets van te leren.

In ieder geval heb  ik weer een boel nieuwe dingen geleerd. En ik hoop dat er wellicht een leerling is die door dit bord, net als ik, een diepe liefde voor wiskunde ontwikkelt.

square number mass (kg) height (m)
1 1 0,00002 0,00001
2 2 0,00004 0,00002
3 4 0,00008 0,00004
4 8 0,00016 0,0001
5 16 0,00032 0,0002
6 32 0,00064 0,0003
7 64 0,00128 0,0006
8 128 0,00256 0,0013
9 256 0,00512 0,0025
10 512 0,01024 0,005
11 1024 0,02048 0,010
12 2048 0,04096 0,020
13 4096 0,08192 0,040
14 8192 0,16384 0,080
15 16384 0,32768 0,16
16 32768 0,65536 0,32
17 65536 1,31072 0,64
18 131072 2,62144 1,29
19 262144 5,24288 2,57
20 524288 10,48576 5,14
21 1048576 21 10,29
22 2097152 42 20,6
23 4194304 84 41,2
24 8388608 168 82,3
25 16777216 336 165
26 33554432 671 329
27 67108864 1342 658
28 134217728 2684 1317
29 268435456 5369 2634
30 536870912 10737 5268
31 1073741824 21475 10536
32 2147483648 42950 21071
33 4.294.967.296 85899 42143
34 8.589.934.592 171799 84285
35 17.179.869.184 343597 168571
36 34.359.738.368 687195 337142
37 68.719.476.736 1374390 674283
38 137.438.953.472 2748779 1348567
39 274.877.906.944 5497558 2697133
40 549.755.813.888 10995116 5394267
41 1.099.511.627.776 21990233 10788534
42 2.199.023.255.552 43980465 21577067
43 4.398.046.511.104 87960930 43154134
44 8.796.093.022.208 175921860 86308268
45 17.592.186.044.416 351843721 172616536
46 35.184.372.088.832 703687442 345233072
47 70.368.744.177.664 1407374884 690466144
48 140.737.488.355.328 2814749767 1380932288
49 281.474.976.710.656 5629499534 2761864577
50 562.949.953.421.312 11258999068 5523729153
51 1.125.899.906.842.624 22517998137 11047458307
52 2.251.799.813.685.248 45035996274 22094916614
53 4.503.599.627.370.496 90071992547 44189833227
54 9.007.199.254.740.992 180143985095 88379666454
55 18.014.398.509.482.984 360287970190 176759332909
56 36.028.797.018.964.968 720575940379 353518665817
57 72.057.594.037.927.936 1441151880759 707037331635
58 144.115.188.075.855.872 2882303761517 1414074663269
59 288.230.376.151.711.744 5764607523034 2828149326538
60 576.460.752.303.423.488 11529215046069 5656298653076
61 1.152.921.504.606.846.976 23058430092137 11312597306153
62 2.305.843.009.213.693.952 46116860184274 22625194612306
63 4.611.686.018.427.387.904 92233720368548 45250389224611
64 9.223.372.036.854.7875.808 184467440737096 90500778449223
totaal: 18.446.744.073.709.551.615 4·1014 

Binaire tegels

Andere getallenstelsels dan ons tientallig stelsel vind ik al heel lang heel fascinerend.

Twaalftallig ( “It’s counting, Jim, but not as we know it!”, zie hier) maar vooral binair. Tweetallig. Alleen met nullen en enen alle getallen kunnen maken die je maar wilt. Gekke rekenregels als: verdubbelen betekent een 0 erachteraan plakken (101+101=1010, oftewel 5+5=10). En die prachtige patronen. Kijk maar hiernaast. De minst belangrijke bit (rechts) alterneert telkens: even is een nul aan het eind, oneven een 1. De bit daarnaast alterneert om de twee, de bit daarnaast om de vier enzovoort. Het is van een verbluffende schoonheid.

Als een echte nerd, zat ik een paar jaar geleden te klooien met een binair patroon. Het begon met een vierkant raster van 3×3, dat ik binair wilde vullen. Dus starten met een leeg vierkant, dan links bovenin zwart, dan de tweede, dan de eerste en de tweede, dan de derde, etc. Zie hieronder voor de start van het patroon:

Je kunt dan dus op negen plekken een witte of zwarte vulling hebben. Dat betekent dat je dus 29 = 512 vierkantjes hebt. Ik wilde het graag in een vierkant plaatsen. Dat was even lastig: √(512)=22,63. Ik besloot het vierkant 23×23 te maken. Dat betekent dat ik 23×23-512=529-512=17 vierkantjes niet kon vullen.

Wat moest ik nu met die 17 lege vakjes? Ik maakte eerst in een tekenprogramma (Fireworks) alle vierkantjes. Veel werk maar door de herhalende patronen  in een uurtje klaar. Het was mooier dan ik had gedacht. Allerlei patronen die zich plotseling manifesteerden! Maar ik had nog steeds die 17 lege vakjes. Ik zag dat sommige vakjes net een letter leken. Even puzzelen en ik had een oplossing. Ik plakte ergens in het midden die vakjes die “binary tiles” vormden. Dat zijn 12 letters. Een spatie erbij en het was klaar.Voor een goede-doelen-actie op mijn school heb ik er twee afgedrukt en verkocht. Mijn eerste verkochte kunstwerken! Maar het bleef een beetje kriebelen.

Het feit dat er niet een mooi vierkant van een 3×3 model te maken is, zat me dwars. En de oplossing ligt om de hoek! Een 4×4 model kan makkelijk in een vierkant. Er zijn 16 plekken, dus er ontstaan 216 =65.536 vierkantjes. En  √(65.536) = 256!

Maar. 65.536 tegels maken. Als je er 1024 per avond maakt, ben je toch nog 64 dagen bezig! Dat moet dus anders. Gelukkig zijn binaire getallen de natuurlijke vrienden van programmeren! Dat moet dus kunnen. Nu was het alweer een tijdje geleden dat ik had geprogrammeerd en ik moest ook een programmeertaal vinden die grafisch werkt. Na een avondje zoeken en proberen, besloot ik te gaan werken met een programmeertaal waarmee ik in een ver verleden wel wat had gewerkt: PHP.

Als je dat niet zo vaak doet, wordt je code niet heel efficiënt maar het lukt me uiteindelijk. De code staat hier (als een plaatje) onder.

En weer, zoals altijd eigenlijk, werd ik overvallen door de kracht van programmeren. Met een paar regels code een vlak van 1793×1793 pixels vullen, precies op de manier zoals ik dat wilde, dat is welhaast magie.

Dit is alweer een tijdje geleden. Ik heb het eens laten afdrukken maar vergat toen dat het nogal klein is. Op 30×30 cm is één vierkantje slechts 30/256=0,12 cm groot. En dat is niet te zien. En ja, dan komen er weer andere zaken voorbij en ik vergat het.

Een week geleden liet ik het fotoalbum van onze vakantie in Wales afdrukken en dacht ik plotseling aan mijn pixelart, mijn binaire tegels kunstwerk. Ik heb uitgerekend dat als de foto afgedrukt zou worden op 100×100 cm het wel te zien zou zijn (100/256=0,4 cm). Ik zocht naar de juiste (lees: niet zo dure) afdrukcentrale (posterxxl.nl), zag dat een 120×120 cm poster een paar euro meer was dan de 100×100 cm poster, koos de eerste en drukte op de Verzend-knop. Een paar dagen later kwam de (enorme) koker binnen.

 

Wat een feest! Ik kan er uren naar kijken. Je ziet hiernaast het eerste stukje, linksboven. Ik heb ervoor gekozen het vlakke in een zwart kader te plaatsen en tussen elke tegel een pixelbreed randje te zetten. 16×16=256 tegels. Van zo’n stukje zijn er dus nog 256. Het begint links bovenaan met een volledig zwart vakje, meteen daarnaast zie je 0000000000000001, daarnaast 0000000000000010, daarnaast 0000000000000011 etc. Rechts onderaan zie je, als je goed kijkt, 0000111100001111 (3855).

Hieronder zie je hem helemaal, uitgespreid over de grond in onze woonkamer:

 

En wat nu? De afdruk is dus goed gelukt. Ik ga deze plakken op een stuk foamboard en ik hang hem in mijn lokaal. Ook ga ik hem nog eens bestellen maar dan achter plexiglas opgeplakt of op aluminium. Duur maar mooi.

En een volgende grootte? Een vierkantje van 5×5 heeft 225=33.554.432 mogelijke invullingen. Dat is veel. Bovendien is deze niet vierkant af te drukken; √(33.554.432)=5792,61875148. Een vierkantje van 6×6 dan? Dat zijn nog veel meer vierkantjes: 236 = 68.719.476.736. Dat zijn er wel extreem veel. Deze is wel vierkant af te drukken: 262.144 x 262.144. Als ik de vierkantjes dan echter op dezelfde grootte (0,4 cm, zie boven) wil afdrukken wordt de poster meer dan 1000 x 1000m. Ik vermoed dat weinig afdrukcentrales dit aankunnen.

Update 02:

Raymond (ook een #plakkerenknipper, zie twitter) heeft een LED-paneel de patronen van de Binaire Tegels laten afspelen. Supervet! Bedankt man!

Update 01:

Ik heb een video geschoten vaneen virtuele vlucht over de poster. Van linksboven via rechtsboven naar rechtsonder. Geeft een beeld hoe groot het is.

Rechten e.d.

Ik heb de code en de uiteindelijke jpg-file van de tegels niet beschikbaar gesteld. Het is namelijk best veel werk geweest om dit te maken. En een digitale kopie is exact. Mocht je geïnteresseerd zijn, mail me dan even: arjan@plakkenenknippen.nl. Ik denk overigens dat degenen die belangstelling hebben, wellicht zelf zo “nerderig” zijn dat ze dit, zeker met mijn uitleg, best zelf zouden kunnen maken.