7
$\begingroup$

If you implement Conway's Game of Life on a computer, it's convenient to define the neighbor-counting kernel, $$ k = \left[ \begin{array}{} 1 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 1 \end{array} \right] $$ If $u_t$ is the state at time $t$, then the convolution $k*u_t$ is the number of neighbors. Define $f:\mathbb{Z}^2 \to \mathbb{Z}$ by $$ f(u_0,u_1) = \begin{cases} 1, & \text{if } (u_0,u_1) \in \{ (0,3), (1,2), (1,3) \} \\ 0, & \text{else} \end{cases} $$ We can then write express 1 time step of Game of Life as $$u_{t+1} := f\circ(u_t, k*u_t)$$ Here is the question: can you instead find $f:\mathbb{Z}\to\mathbb{Z}$ and a kernel $k:\mathbb{Z}^2\to\mathbb{Z}$ such that the map $u \mapsto f \circ (k*u)$ is the Game of Life rule?

$\endgroup$

1 Answer 1

9
$\begingroup$

Yes! Define $$ k = \left[ \begin{array}{} 1 & 1 & 1 \\ 1 & 9 & 1 \\ 1 & 1 & 1 \end{array} \right] $$ and $$ f(u) = \begin{cases} 1 & \text{if } u \in \{3, 11, 12\} \\ 0 & \text{else} \end{cases} $$ This corresponds to the previous parameterization via $(0,3)\to 3$, $(1,2)\to 11$, $(1,3)\to 12$. This works because $k*u_t(x)\geq9$ guarantees $u_t(x)=1$, and likewise $k*u_t(x)<9$ guarantees $u_t(x)=0$, with $k*u_t(x)\bmod 9$ being the neighbor count.

$\endgroup$
3
  • 5
    $\begingroup$ Another option would be $k = \left[ \begin{array}{} 2 & 2 & 2 \\ 2 & 1 & 2 \\ 2 & 2 & 2 \end{array} \right]$ with $f(u) = 1$ iff $5 \le u \le 7$. $\endgroup$ Jun 24, 2022 at 11:09
  • $\begingroup$ Isn't this $f(k*u)$, rather than $k * f(u)$ as OP asked? $\endgroup$ Aug 17, 2023 at 22:38
  • $\begingroup$ @FedericoPoloni My bad, the original post asked for $f(k*u)$ before edits. Finding $k*f(u)$ would be interesting. $\endgroup$
    – user130609
    Aug 19, 2023 at 0:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.