FRACTRAN

FRACTRAN er et Turing-komplet esoterisk programmeringssprog foreslået af John Conway .

Beskrivelse

Et FRACTRAN-program skrives som en ordnet liste over positive brøker sammen med et indledende positivt heltal input n . Programmet startes ved at opdatere hele tallet n som følger:

  1. for den første fraktion på listen, som produktet er et heltal for, erstattes med
  2. gentag denne regel, indtil ingen af ​​brøkerne på listen producerer et heltal, når de ganges med , stop derefter.

For eksempel genererer følgende program primtal :

Startende med n = 2 genererer dette program følgende sekvens af heltal:

2, 15, 825, 725, 1925, 2275, 425, 390, 330, 290, 770, ... OEIS -sekvens A007542

Efter 2 indeholder denne sekvens følgende potenser af 2:

sekvens A034785 i OEIS

som er primmagter af 2.

Forståelse af FRACTRAN-programmet

FRACTRAN-programmet kan opfattes som en type Minsky-maskine , hvor registre er gemt i simple eksponenter i n -argumentet .

Ved at bruge Gödel-nummerering kan et positivt heltal n kode for et vilkårligt antal vilkårligt store positive heltalsvariable. Værdien af ​​hver variabel kodes som en eksponent for et primtal i en simpel heltalsfaktorisering . For eksempel et heltal

repræsenterer tilstanden af ​​et register, hvor en variabel (som vi vil kalde ) indeholder værdien 2, og to andre variable ( og ) indeholder værdien 1. Alle andre variable indeholder værdien 0.

FRACTRAN-programmet er en ordnet liste over positive fraktioner. Hver brøk er en instruktion, der tester en eller flere variable repræsenteret af dens nævners primfaktorer . For eksempel:

kontrollerer to variable og . Hvis og , så udføres opgaverne , , . For eksempel:

Da FRACTRAN-programmet kun er en liste over brøker, er disse test-tildelingsinstruktioner de eneste gyldige instruktioner på FRACTRAN-sproget. Derudover gælder følgende begrænsninger:

Links