login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A368954
Row lengths of A368953: in the MIU formal system, number of distinct strings n steps distant from the MI string.
2
1, 2, 3, 6, 15, 48, 232, 1544, 14959, 203333, 3919437, 105126522
OFFSET
0,2
COMMENTS
See A368946 for the description of the MIU formal system and A368953 for the variant where duplicates within a row are removed.
REFERENCES
Douglas R. Hofstadter, Gödel, Escher, Bach: an Eternal Golden Braid, Basic Books, 1979, pp. 33-41.
FORMULA
a(n) <= A368947(n).
MATHEMATICA
MIUStepDW3[s_] := DeleteDuplicates[Flatten[Map[{If[StringEndsQ[#, "1"], # <> "0", Nothing], # <> #, StringReplaceList[#, {"111" -> "0", "00" -> ""}]}&, s]]];
With[{rowmax = 9}, Map[Length, NestList[MIUStepDW3, {"1"}, rowmax]]]
PROG
(Python)
from itertools import islice
def occurrence_swaps(w, s, t):
out, oi = [], w.find(s)
while oi != -1:
out.append(w[:oi] + t + w[oi+len(s):])
oi = w.find(s, oi+1)
return out
def moves(w): # moves for word w in MIU system, encoded as 310
nxt = []
if w[-1] == '1': nxt.append(w + '0') # Rule 1
if w[0] == '3': nxt.append(w + w[1:]) # Rule 2
nxt.extend(occurrence_swaps(w, '111', '0')) # Rule 3
nxt.extend(occurrence_swaps(w, '00', '')) # Rule 4
return nxt
def agen(): # generator of terms
frontier = {'31'}
while len(frontier) > 0:
yield len(frontier)
reach1 = set(m for p in frontier for m in moves(p))
frontier, reach1 = reach1, set()
print(list(islice(agen(), 10))) # Michael S. Branicky, Jan 14 2024
CROSSREFS
KEYWORD
nonn,hard,more
AUTHOR
Paolo Xausa, Jan 10 2024
EXTENSIONS
a(10)-a(11) from Michael S. Branicky, Jan 14 2024
STATUS
approved