• No results found

FRACTRAN A Simple Universal Programming Language for Arithmetic

N/A
N/A
Protected

Academic year: 2021

Share "FRACTRAN A Simple Universal Programming Language for Arithmetic"

Copied!
14
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

FRACTRAN

A Simple Universal Programming Language

for Arithmetic Jens Bossaert PRIME, 24 november 2015

(2)

Definitie 2

Een FRACTRAN-programma (F , n) bestaat uit:

I een eindige lijst F = (fi)i van positieve breuken;

I een natuurlijk getal n als invoerwaarde.

Het programma loopt door n herhaaldelijk als volgt te updaten:( n 7! n · fj met j = min{i : n · fi 2 N};

return n indien j niet bestaat (8i : n · fi 62 N).

Zo definieert (F , ·) een parti¨ele functie N ! N.

(3)

Basisprogramma’s 3

Optelling F =

✓3 2

2a· 3b 7! · · · 7! 3a+b

A�rekking F =

✓1 6

2a· 3b 7! · · · 7! 3b a (voor a < b)

(4)

Basisprogramma’s 4

Minimum F =

✓5 6,1

2,1 3

2a· 3b 7! · · · 7! 5min(a,b)

Maximum F =

✓5 6,5

2,5 3

2a· 3b 7! · · · 7! 5max(a,b)

(5)

Basisprogramma’s 5

Verdubbeling F =

✓9 2

2a 7! · · · 7! 32a

Halvering F =

✓3 4,1

2

2a 7! · · · 7! 3ba/2c

(6)

Ingewikkeldere programma’s 6

Vermenigvuldiging F =

✓455 33,11

13, 1 11,3

7,1 2,1

3

2a· 3b 7! · · · 7! 5a·b

(7)

huidige

toestand indicator condities acties volgende toestand

A (default)

v7 > 0 v7 1

v3 + 1 A !3

7

v7 = 0

v2 > 0 v2 1 B !1

2

v7 = 0 v2 = 0 v3 > 0

v3 1 A !1

3

v7 = 0 v2 = 0 v3 = 0

HALT

B v11, v13 v3 > 0

v3 1 v5 + 1 v7 + 1

B !5 · 7 · 13

3 · 11 ,11 13

v3 = 0 / A ! 1

11

(8)

Ingewikkeldere programma’s 8

Deling (met rest) F =

✓91 66,11

13, 1 33,85

11, 57 119,17

19,11 17,1

3

2a· 3b· 11 7! · · · 7! 5a//b· 7a mod b

(9)

Ingewikkeldere programma’s 9

Grootste gemeenschappelijke deler F =

✓7 13,39

35,2 7,11

19,38 55, 3

11,5 6,7

2,11 3

2a· 3b 7! · · · 7! 5gcd(a,b)

(10)

Ingewikkeldere “programma’s” 10 PRIMEGAME

F =

✓17 91,78

85,19 51,23

38,29 33,77

29,95 23,77

19, 1 17,11

13,13 11,15

2 ,1 7,55

1

2 7! 15 7! 82 5

725 7!

7!

5 192

7!

75 22

7!

425 7!390 7!330 7!2

907!

07! 77 910 17 7!

07!

1567!

1327!116 7! 3087!

364 7!68 4 7!

7! 7!30 7! 225 3712

57!10

8757!

288757! 25375 7!

673757!

79625

7!

14875

7!13 7!2 650

5507!

23407!1980

7!17407!4620 7! 4060 7! 107807!

12740

7!23807!

21847!

4087!15

27!927!380

7!

2307!

9507!

5757!23757!96257!11375 7!2125 7! 1950 7!16507!14507!38507!45507!8507!7807!6607!5807!15407!18207!3407!3127!2647!2327!6167!7287!1367!87!607!450 7!33757!185625 7!163125 7!433125 7! 380625 7!10106257!· ··

2 7! · · · 7! 227! · · · 7! 23 7! · · · 7! 257! · · · 7! 27 7! · · · 7! 211 7! · · · 7! 213 7! · · · 7! 217 7! · · ·

Machten van twee in uitvoer corresponderen juist met de priemgetallen, in oplopende volgorde!

(11)
(12)

These van Church–Turing 12

“Elke intu¨ıtief berekenbare functie is berekenbaar op een Turingmachine.”

Turingmachine Minsky register machinem

m FRACTRAN

Dus: “Elke intu¨ıtief berekenbare functie is berekenbaar via FRACTRAN”.

(13)

“Universele computer” 13

POLYGAME

F = 0 BB

@ 583 559,629

551,437 527, 82

517,615 329,371

129, 1 115,53

86,43 53,23

47,341 46 , 41

43,47 41,29

37,37 31,299

29,47 23,161

15 ,527 19 ,159

7 , 1 17, 1

13,1 3

1 CC A

(14)

“Universele computer” 14

Stelling (Conway) Definieer een parti¨ele functie fc :N ! N als volgt:

fc(n) =

(m als POLYGAME c · 22n 7! 22m; ongedefinieerd anders.

Dan komt elke berekenbare functie voor in de lijst f0, f1, f2. . .!

I “Catalogusgetallen” c voor berekenbare functies.

I Voorbeeld: c = 2268945 ) fc(n) = n +1.

Referenties

GERELATEERDE DOCUMENTEN

The implementation of a language which implements the programming model, and which has constructs for value deviation, latency and erasure-tolerance constraints, is presented in

Het algoritme moet een aantal punten selecteren zodat het paneel stabiel gehouden wordt wanneer er op deze punten cups geplaatst worden.. Daarnaast kiezen we ervoor om het

In future we will, (i) study the effect of TGF-β without the logistic proliferation terms and with treatment, (ii) investigate the influence of tumour cells on dendritic cells

Zodoende werd onmiddellijk naast deze boring een tweede boring aangelegd (boring 4). Tussen 40 en 50 cm beneden vlak 2 bevond zich een rode baksteen. Ook deze laag werd

Het lijkt erop dat deze toppen liggen op een hyperbool met vergelijking xy = c voor een zekere waarde van c.. Deze hyperbool is in figuur 1 gestippeld

Particular emphasis is placed on the key role of heuristic methods for solving computationally challenging search problems and on the rise of machine learning techniques that

Tobiah Lissens • June 2020 • A novel field based programming language for robotic swarms paper adds coordination with the aggregate

Brouwer zou zelf zo’n onderscheid overigens niet kunnen maken, omdat er volgens hem geen niet-ervaren waarheden bestaan, en ik bij het vooronderstellen van de waarheid van