|
|
A336287
|
|
Period of orbit of Post's tag system ({0,1},{(0,1),(1,00110)},3,100^n).
|
|
4
|
|
|
2, 0, 28, 0, 20, 0, 28, 0, 28, 144, 28, 0, 28, 0, 10556, 426, 10556, 0, 10556, 426, 10556, 104, 28, 0, 10556, 426, 10556, 104, 28, 0, 10556, 104, 10556, 426, 28, 426, 28, 0, 28, 426, 28, 1896, 10556, 1896, 10556, 0, 28, 426, 28, 426, 10556, 0, 28, 1896, 10556
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
In general a tag as defined by Emil Leon Post, is given by a 4-tuple (Sigma,AF,n,w0), where Sigma is some (nonempty) set of symbols called the alphabet, AF is the associated function (sometimes also called set of production rules) AF: Sigma -> Sigma*, n is the deletion number and w0 the initial string.
From the starting sequence we obtain a new string in each step by adjoining the string associated to the prefix symbol of the string, where after the prefix n symbols are removed from the string.
The decision problem is: will the tag end up in an empty string, a(n) = 0 or not, a(n) <> 0?
a(n) is an even number. Proof: for each cycle the number of associations (productions) 0 -> 1 must equal the number of associations (productions) 1 -> 00110 applied within a cycle.
|
|
LINKS
|
|
|
PROG
|
(Python)
def step(w):
i = 0
while w[0] != alfabet[i]:
i = i+1
w = w+suffix[i]
return w[n:len(w)]
alfabet, suffix, n, ws, w0, m = "01", ["1", "00110"], 3, "100", "", 0
while m >= 0:
w0, m = w0+ws, m+1
w, ww, i, a = w0, w0, 0, 0
while w != "" and a == 0:
w, i = step(w), i+1
if i%100000 == 0:
ww = w
else:
if w == ww or w == "":
if w != "":
a = i%100000
print(m, a)
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|