Priemgetal visualisatie

Een korte post om de stilte te doorbreken!

Handwerk

Even geleden had ik geen laptop tot mijn beschikking, alleen Duplo. Ik ben toen een trap gaan maken die een bocht naar rechts maakt voor elke tree die een priemgetal is. Uiteindelijk ben ik tot 103 treden gekomen met nog een paar blokjes over. Zie hier het resultaat, met rechts een wat duidelijker voorbeeld van wat de bedoeling is:blokjes.jpg
Dit is wat ik mensen laat zien als ze vragen of ik ook wel eens niet achter de computer zit.

De uitdaging was om zo min mogelijk draagconstructie te hebben, zonde van je materiaal! Het is dus belangrijk om vanaf het begin te weten hoe de trap zich beweegt. Daarvoor moet je een soort bovenaanzicht maken van de hoekpunten van de trap:

De priemgetallen <= 100: 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97
first100primes_arrows.png
Een wit vakje is meerdere keren betreden

Rekenwerk

De trap heeft ongeveer 5 minuten gestaan voor hij spontaan omviel, maar dat diagram heeft later nog mijn nieuwsgierigheid gewekt. Dit is een video van het tekenen van dit diagram voor de eerste biljoen (10¹²) treden, in de laatste paar seconde wordt de helft van de treden gezet (500 miljard) door de steeds verregaande versnelling:

 

Je kunt behalve priemgetallen ook andere lijsten nummers in deze fictieve tekenaar stoppen, waarbij wederom de nummers in de reeks bepalen welke treden hoekpunten zijn. Veel reeksen, zoals de kwadraten (1,4,9,16,..), Pascals driehoek, Catalaanse nummers, Douglas Hofstadter’s zelf refererende reeksen, en nog veel meer voorbeelden maken simpelweg 4 diagonale lijnen, wat in trapvorm een soort omgekeerde piramide zou worden. Dit gebeurt omdat het geometrische of bijna geometrische reeksen zijn, niet zo interessant dus. Maar functies met niet steeds hoger wordende waardes kunnen verrassende effecten hebben, zoals Mertens’ functie (eerste 10⁶ waarden), die moderne kunst produceert:

frame_00744

Eigen reeks

Als je de verschillen tussen de nummers in een reeks pakt:
2,3,5,7,11,13 wordt dan 2-0, 3-2, 5-3, 7-5, 11-7, 13 – 11.
Dan is de hoeveel stappen tussen 2 draaien naar rechts gelijk aan deze verschillen. Het is dan ook mogelijk om een verschil van 0 te hebben, waardoor je op je plek naar rechts draait. Je kan nu elke vorm tekenen die verbindbaar is met een rechte lijn, een rechte lijn maken werkt dan zo (in verschillen opgegeven):
1,0,0,0,1,0,0,0,1,0,0,0,1,..
We lopen 1 stap in de huidige richting, draaien naar rechts, draaien nogmaals 3 keer naaar rechts en lopen weer 1 stap.

Je kunt zo voor bijvoorbeeld elk cijfer een plaatje maken, en met een beetje puzzelen kun je elk cijfer ook dezelfde hoeveelheid stappen in laten ne nemen door waar nodig een rondje op de wplek te draaien.

Wat nu leuk zou zijn is om een reeks te maken die cijfers tekent, en dan het liefst de cijfers van die reeks zelf:test.png
De eerste 50 waarden zijn : 0,0,0,0,1,0,0,2,1,1,2,1,2,2,2,4,0,0,0,0,1,0,0,2,1,
1,2,1,2,2,2,4,0,0,0,0,1,0,0,2,1,1,2,1,2,2,2,4,0,0,0,0,1,0,0,2,1,1,2,1,2,
2,2,4,0,0,0,0,1,0,0,0,0,0,1,0,2,0,2,4,0,0, etc.
Dit is het bovenaanzicht na een paar 100 stappen:
frame_00080De onhandige grote constante waarmee deze formule begint bevat de informatie voor het tekenen van de cijfers.

De ongedocumenteerde code voor het genereren van deze plaatjes staat op github. Als er nog suggesties zijn wat betreft reeksen om te tekenen hoor ik het graag.

 

One thought on “Priemgetal visualisatie

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s