FRACTRAN

FRACTRAN je Turingův kompletní esoterický programovací jazyk navržený Johnem Conwayem .

Popis

Program FRACTRAN je napsán jako uspořádaný seznam kladných zlomků spolu s počátečním kladným celým číslem n . Program se spustí aktualizací celého čísla n takto:

  1. pro první zlomek v seznamu, pro který je součin celé číslo, nahraďte výrazem
  2. opakujte toto pravidlo, dokud žádný ze zlomků v seznamu nevytvoří po vynásobení číslem celé číslo , pak zastavte.

Například následující program generuje prvočísla :

Počínaje n = 2 tento program generuje následující posloupnost celých čísel:

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

Po 2 tato sekvence obsahuje následující mocniny 2:

sekvence A034785 v OEIS

což jsou hlavní mocniny 2.

Pochopení programu FRACTRAN

Program FRACTRAN lze považovat za typ Minského stroje , kde jsou registry uloženy v jednoduchých exponentech v argumentu n .

Pomocí Gödelova číslování může kladné celé číslo n zakódovat libovolný počet libovolně velkých kladných celočíselných proměnných. Hodnota každé proměnné je zakódována jako exponent prvočísla v jednoduché celočíselné faktorizaci . Například celé číslo

představuje stav registru, ve kterém jedna proměnná (kterou budeme nazývat ) obsahuje hodnotu 2 a dvě další proměnné ( a ) obsahují hodnotu 1. Všechny ostatní proměnné obsahují hodnotu 0.

Program FRACTRAN je uspořádaný seznam kladných zlomků. Každý zlomek je instrukce, která testuje jednu nebo více proměnných reprezentovaných prvočísly svého jmenovatele . Například:

kontroluje dvě proměnné a . Jestliže a , pak se provedou přiřazení , , , . Například:

Protože program FRACTRAN je pouze seznam zlomků, jsou tyto instrukce přiřazení testu jedinými platnými instrukcemi v jazyce FRACTRAN. Kromě toho platí následující omezení:

Odkazy