02.05.2013 Views

Curiosa Mathematica

Curiosa Mathematica

Curiosa Mathematica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

287. Fractran<br />

Algoritmes worden onderverdeeld in enkele complexiteitsklassen. Normaal worden programma’s met invoer<br />

van grootteorde n uitgevoerd in een tijdsduur afhankelijk van n, zoals n 2 , nlogn, 2 n , √ n...<br />

Problemen uitvoerbaar in “redelijke tijd” ten opzichte van hun invoer, worden opgenomen in de klasse P.<br />

Concreet houdt dit in dat het programma uit te voeren moet zijn in polynomiale tijd, n c voor een bepaalde<br />

constante c. Deze complexiteitsklasse bevat ruwweg de “eenvoudig” op te lossen problemen; klassen als<br />

2 n , n! of zelfs n n , vereisen algauw ontzettend veel rekentijd voor grotere n-waarden, en worden beschouwd<br />

als “moeilijk”.<br />

287 Fractran<br />

John Conway, de gevierde wiskundige die zich specialiseerde in recreatieve wiskunde en de popularisering<br />

ervan, ontdekte deze opmerkelijke “programmeertaal” Fractran. In theorie is zijn elegante systeem<br />

Turing-compleet (zie 312, blz. 235), wat min of meer inhoudt dat elke mogelijke programmeerbare berekening<br />

of gegevensbewerking ook in Fractran geprogrammeerd kan worden (hetzij nogal omslachtig).<br />

Een programma in Fractran bestaat uit een lijst positieve breuken fi, met een initiële, gehele input n.<br />

n ↦−→ (f1,f2...fk) ↦−→ ?<br />

Het programma wordt uitgevoerd door het getal n steeds te updaten naar een nieuw geheel getal door<br />

vermenigvuldiging met de eerste breuk in de lijst waarvoor het product geheel is. Wanneer geen enkele<br />

breuk nog een geheel getal zou produceren, stopt het programma.<br />

Hier volgt een eerste, eenvoudig voorbeeld, dat een natuurlijke optelling implementeert: de invoerwaarde<br />

n = 2 a 3 b in dit programma stopt na b stappen met het geheel getal 2 a+b .<br />

2 a 3 b<br />

↦−→<br />

<br />

2<br />

3<br />

196<br />

↦−→ 2 a+b

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!