The audioactive constant

Programming NuclearPlane787 8 min 13.7
Reader signal0 up · 0 down
0
Sign in to vote.

Read "1" aloud: one 1, so write 11. Read that: two 1s, hence 21. Then 1211, 111221, 312211, and so on — the look-and-say sequence. The lengths $L_n$ run $1, 2, 2, 4, 6, 6, 8, 10, 14, \ldots$ and grow geometrically:

$$\frac{L_{n+1}}{L_n} \;\longrightarrow\; \lambda \;=\; 1.303577\ldots$$

Conway’s discovery is that the dynamics are chemistry. After a bounded number of steps, every string splits into non-interacting segments drawn from a fixed table of 92 "elements", each evolving on its own forever after — his cosmological theorem.1 Evolution is then a linear map on element counts, $\lambda$ is the Perron eigenvalue of the $92\times92$ transition matrix, and it turns out to be algebraic of degree 71 — the growth rate of a children’s game, cut from a degree-71 factor of a characteristic polynomial. Every starting string except the stubborn fixed point $22$ grows at exactly this rate, and (starting from 1) no digit beyond 3 ever appears.

1
Conway, The weird and wonderful chemistry of audioactive decay (1986). Ekhad and Zeilberger later closed the last gaps by machine proof.

Measuring λ yourself

from itertools import groupby

def step(s):
    return "".join(f"{len(list(g))}{d}" for d, g in groupby(s))

s = "1"
for n in range(55):
    prev, s = s, step(s)
print(len(s) / len(prev))   # 1.3035…

Fifty-five steps produce a string around a megabyte and a ratio good to a few digits; the subdominant eigenvalues die off slowly enough that patience through direct iteration is poorly rewarded. For serious digits, build the $92\times92$ matrix from Conway’s table and power-iterate that instead — the string never has to exist at all. The constant’s leading digits $1{.}303\ldots$ give it its shelf here: ℵ1303.