Unstar / MatemáticasMathematics
Apagar el cielo: las matemáticas de Unstar
Turning off the sky: the mathematics of Unstar
Periastro Studio · noviembre de 2026
Periastro Studio · November 2026
1. Un poco de historia
1. A bit of history
Unstar es la versión espacial de un rompecabezas con casi 50 años de historia y una teoría matemática sorprendentemente bonita.
- 1970sMerlin, de Parker Brothers, trae un juego con estas reglas en una cuadrícula de 3×3.
- 1983XL-25, de Vulcan Electronics, lleva la idea a 5×5.
- 1989Klaus Sutner publica en The Mathematical Intelligencer que, desde todas las luces encendidas, siempre se puede llegar a todas apagadas, en cualquier tamaño de cuadrícula.
- 1995Tiger Electronics lanza Lights Out (5×5), creado por un equipo que incluye a Avi Olti y Gyora Benedek. Le siguen Lights Out 2000 (con varios colores), Lights Out Deluxe (6×6) y Lights Out Cube.
- 1998Marlow Anderson y Todd Feil publican en Mathematics Magazine “Turning Lights Out with Linear Algebra”: no todo tablero de 5×5 tiene solución, y los que la tienen tienen exactamente cuatro.
- 2013Rudolf Fleischer y Jiajin Yu publican un panorama completo del juego y sus variantes.
- 2026Unstar lo convierte en un viaje de 2×2 a 10×10, de Mercurio a Plutón.
Unstar is the space version of a puzzle with almost 50 years of history and a surprisingly beautiful mathematical theory.
- 1970sMerlin, by Parker Brothers, includes a game with these rules on a 3×3 grid.
- 1983XL-25, by Vulcan Electronics, takes the idea to 5×5.
- 1989Klaus Sutner shows in The Mathematical Intelligencer that from all lights on you can always reach all lights off, on any grid size.
- 1995Tiger Electronics releases Lights Out (5×5), created by a team including Avi Olti and Gyora Benedek. Lights Out 2000 (with several colors), Lights Out Deluxe (6×6) and Lights Out Cube follow.
- 1998Marlow Anderson and Todd Feil publish “Turning Lights Out with Linear Algebra” in Mathematics Magazine: not every 5×5 board can be solved, and the ones that can have exactly four solutions.
- 2013Rudolf Fleischer and Jiajin Yu publish a full survey of the game and its variants.
- 2026Unstar turns it into a journey from 2×2 to 10×10, out to Pluto.
2. El tablero es un vector
2. The board is a vector
Numera las n² estrellas y escribe el tablero como una lista de ceros y unos: 1 si está encendida, 0 si no. Eso es un vector b en 𝔽₂n², donde 𝔽₂ = {0, 1} es la aritmética “módulo 2”: 1 + 1 = 0.
Tocar la estrella i suma (módulo 2) un vector fijo ai, con unos en i y sus vecinas. Que 1 + 1 = 0 es exactamente la regla “dos toques se cancelan”, y que la suma sea conmutativa es la regla “el orden no importa”.
Si xi ∈ {0, 1} dice si tocas la estrella i, resolver el tablero es encontrar x con
Number the n² stars and write the board as a list of zeros and ones: 1 if lit, 0 if not. That's a vector b in 𝔽₂n², where 𝔽₂ = {0, 1} is “mod 2” arithmetic: 1 + 1 = 0.
Tapping star i adds (mod 2) a fixed vector ai, with ones at i and its neighbors. 1 + 1 = 0 is exactly the “two taps cancel” rule, and addition being commutative is the “order doesn't matter” rule.
If xi ∈ {0, 1} says whether you tap star i, solving the board means finding x with
3. La matriz del juego
3. The game matrix
Si M es la matriz de adyacencia de un camino de n puntos (unos justo arriba y abajo de la diagonal), la matriz del tablero de n×n es
El símbolo ⊗︎ es el producto de Kronecker: M ⊗︎ I pone una copia de I en cada lugar donde M tiene un 1. Es la forma corta de decir “aplica la regla de una fila a todas las columnas” (y viceversa), sin escribir la matriz de n²×n² completa.
Es simétrica (si yo te cambio, tú me cambias) y eso va a importar. Para el 2×2, con las estrellas numeradas 1 2 / 3 4:
| 1 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 |
If M is the adjacency matrix of a path with n points (ones right above and below the diagonal), the matrix of the n×n board is
The ⊗︎ symbol is the Kronecker product: M ⊗︎ I places a copy of I wherever M has a 1. It's a short way of saying “apply the one-row rule to every column” (and vice versa) without writing out the full n²×n² matrix.
It's symmetric (if I flip you, you flip me), and that will matter. For 2×2, with stars numbered 1 2 / 3 4:
| 1 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 |
4. Tutorial: resolver un tablero a mano
4. Tutorial: solving a board by hand
Primero hay que aclarar el tamaño. El tablero de 2×2 tiene 4 estrellas, y la pregunta es “¿toco esta estrella o no?” para cada una. Así que hay 4 incógnitas, x₁ a x₄, numeradas 1 2 / 3 4. Por eso la matriz es de 4×4 y no de 2×2: un 3×3 da 9 incógnitas y Plutón (10×10) da 100.
Luego se escribe una ecuación por estrella. La estrella 1 cambia si tocas la 1, la 2 o la 3. Al final tiene que haber cambiado un número impar de veces si empezó encendida y un número par si empezó apagada. En módulo 2:
| estrella 1 | x₁ | + | x₂ | + | x₃ | = | b₁ | |||
| estrella 2 | x₁ | + | x₂ | + | x₄ | = | b₂ | |||
| estrella 3 | x₁ | + | x₃ | + | x₄ | = | b₃ | |||
| estrella 4 | x₂ | + | x₃ | + | x₄ | = | b₄ |
Los números de la izquierda forman la matriz A: cada fila es una estrella y cada columna es un toque posible. A es la misma para cualquier tablero de 2×2, porque solo depende de quién es vecino de quién. Lo que cambia de un nivel a otro es el lado derecho b. La matriz aumentada [A | b] es solo A con la columna del tablero pegada a la derecha. Se pega para que, al sumar una fila con otra, el resultado cambie igual, como cuando sumas dos ecuaciones completas.
Ahora sí, un ejemplo: las estrellas 1 y 4 encendidas, b = (1, 0, 0, 1). En 𝔽₂ la única operación que hace falta es sumar una fila a otra (restar es lo mismo que sumar, y no hay nada que dividir):
| 1 | 1 | 1 | 0 | 1 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 1 | 1 |
Matriz aumentada [A | b].
| 1 | 1 | 1 | 0 | 1 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 | 1 |
Columna 1: F2 ← F2 + F1, F3 ← F3 + F1.
| 1 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 0 | 1 | 0 | 0 |
Columna 2: intercambia F2 y F3, F1 ← F1 + F2, F4 ← F4 + F2.
| 1 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 0 | 0 | 1 | 1 |
Columna 3: F1 ← F1 + F3, F4 ← F4 + F3.
| 1 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 0 | 1 | 1 |
Columna 4: F2 ← F2 + F4, F3 ← F3 + F4.
Al final la izquierda es la identidad y la columna de la derecha es la solución: x = (1, 0, 0, 1). Hay que tocar las estrellas 1 y 4. Resolver el sistema te dice directamente qué estrellas tocar; en Plutón serían 100 ecuaciones con 100 incógnitas, y el resultado sería la lista exacta de estrellas. Compruébalo:
First, the size. The 2×2 board has 4 stars, and the question is “do I tap this star or not?” for each one. So there are 4 unknowns, x₁ to x₄, numbered 1 2 / 3 4. That's why the matrix is 4×4 and not 2×2: a 3×3 gives 9 unknowns and Pluto (10×10) gives 100.
Then you write one equation per star. Star 1 flips if you tap 1, 2 or 3. In the end it must have flipped an odd number of times if it started lit and an even number if it started dark. Mod 2:
| star 1 | x₁ | + | x₂ | + | x₃ | = | b₁ | |||
| star 2 | x₁ | + | x₂ | + | x₄ | = | b₂ | |||
| star 3 | x₁ | + | x₃ | + | x₄ | = | b₃ | |||
| star 4 | x₂ | + | x₃ | + | x₄ | = | b₄ |
The numbers on the left form the matrix A: each row is a star and each column is a possible tap. A is the same for every 2×2 board, because it only depends on who is next to whom. What changes from level to level is the right-hand side b. The augmented matrix [A | b] is just A with the board column stuck on the right. It's attached so that when you add one row to another, the result changes too, just like adding two whole equations.
Now an example: stars 1 and 4 lit, b = (1, 0, 0, 1). In 𝔽₂ the only operation you need is adding one row to another (subtracting is the same as adding, and there's nothing to divide):
| 1 | 1 | 1 | 0 | 1 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 1 | 1 |
Augmented matrix [A | b].
| 1 | 1 | 1 | 0 | 1 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 | 1 |
Column 1: R2 ← R2 + R1, R3 ← R3 + R1.
| 1 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 0 | 1 | 0 | 0 |
Column 2: swap R2 and R3, R1 ← R1 + R2, R4 ← R4 + R2.
| 1 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 0 | 0 | 1 | 1 |
Column 3: R1 ← R1 + R3, R4 ← R4 + R3.
| 1 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 0 | 1 | 1 |
Column 4: R2 ← R2 + R4, R3 ← R3 + R4.
At the end the left side is the identity and the right column is the solution: x = (1, 0, 0, 1). Tap stars 1 and 4. Solving the system tells you directly which stars to tap; on Pluto it would be 100 equations in 100 unknowns, and the result would be the exact list of stars. Check it:
4.1 Hazlo tú: las ecuaciones de cualquier tablero
4.1 Your turn: the equations of any board
La regla para escribir la ecuación de cualquier estrella, en cualquier tamaño, es siempre la misma:
Pruébalo aquí. Marca las estrellas encendidas y la página escribe las ecuaciones y la matriz aumentada. Pasa el mouse por una estrella para ver qué incógnitas entran en su ecuación. Luego dale a “Resolver con Gauss” y avanza paso a paso: al final te marca qué estrellas tocar. En 4×4 vas a ver columnas sin pivote, y a veces una fila 0 = 1, que es la forma en que el álgebra te dice que ese tablero no tiene solución.
The rule for writing the equation of any star, on any size, is always the same:
Try it here. Mark the lit stars and the page writes the equations and the augmented matrix. Hover over a star to see which unknowns go into its equation. Then hit “Solve with Gauss” and step through it: at the end it marks which stars to tap. On 4×4 you'll see columns without a pivot, and sometimes a row 0 = 1, which is how the algebra tells you that board has no solution.
5. Recetas: la inversa del 3×3
5. Recipes: the 3×3 inverse
En 3×3, A es invertible, así que x = A−1b. Cada columna de A−1 tiene un significado muy concreto: qué tocar para cambiar una sola estrella y dejar todo lo demás igual. Son nueve recetas:
Para resolver cualquier 3×3: junta las recetas de cada estrella encendida y toca las estrellas que salgan un número impar de veces. Eso es literalmente multiplicar A−1 por b.
Reto: resuelve este tablero solo con las recetas, sin barrer. Tiene 5 estrellas encendidas.
On 3×3, A is invertible, so x = A−1b. Each column of A−1 has a very concrete meaning: what to tap to flip a single star and leave everything else as it was. They're nine recipes:
To solve any 3×3: combine the recipes for each lit star and tap the stars that show up an odd number of times. That's literally multiplying A−1 by b.
Challenge: solve this board using only the recipes, no sweeping. It has 5 lit stars.
6. ¿Cuándo hay solución?
6. When is there a solution?
Si A no es invertible, hay vectores q ≠ 0 con A q = 0: conjuntos de toques que no cambian nada. Los llamamos patrones quietos. Forman el núcleo ker A.
Como A es simétrica, la imagen de A es exactamente el complemento ortogonal de su núcleo:
La mitad fácil: si b = A x, entonces b · q = x · A q = 0. La otra mitad sale de contar dimensiones: dim im A = n² − dim ker A = dim (ker A)⊥.
En 5×5 el núcleo tiene dimensión 2, así que hay dos condiciones independientes y solo 1 de cada 4 cielos al azar se puede apagar. Unstar nunca te da uno de los otros tres, porque cada nivel se construye tocando desde el cielo apagado.
If A is not invertible, there are vectors q ≠ 0 with A q = 0: sets of taps that change nothing. We call them quiet patterns. They form the kernel ker A.
Since A is symmetric, the image of A is exactly the orthogonal complement of its kernel:
The easy half: if b = A x, then b · q = x · A q = 0. The other half comes from counting dimensions: dim im A = n² − dim ker A = dim (ker A)⊥.
On 5×5 the kernel has dimension 2, so there are two independent conditions and only 1 in 4 random skies can be cleared. Unstar never gives you one of the other three, because every level is built by tapping from a dark sky.
7. ¿Cuántas soluciones? Polinomios de Chebyshev
7. How many solutions? Chebyshev polynomials
Si un tablero tiene solución x, todas sus soluciones son x + q con q quieto. Si d(n) = dim ker A, hay 2d soluciones y una fracción 1/2d de los cielos tiene solución.
| n | d(n) | Soluciones por tablero | Cielos con solución | En Unstar |
|---|---|---|---|---|
| 1×1 | 0 | 1 | todos | |
| 2×2 | 0 | 1 | todos | Mercurio |
| 3×3 | 0 | 1 | todos | Venus |
| 4×4 | 4 | 16 | 1 / 16 | Tierra |
| 5×5 | 2 | 4 | 1 / 4 | Marte |
| 6×6 | 0 | 1 | todos | Júpiter |
| 7×7 | 0 | 1 | todos | Saturno |
| 8×8 | 0 | 1 | todos | Urano |
| 9×9 | 8 | 256 | 1 / 256 | Neptuno |
| 10×10 | 0 | 1 | todos | Plutón |
| 11×11 | 6 | 64 | 1 / 64 | |
| 12×12 | 0 | 1 | todos | |
| 13×13 | 0 | 1 | todos | |
| 14×14 | 4 | 16 | 1 / 16 | |
| 15×15 | 0 | 1 | todos | |
| 16×16 | 8 | 256 | 1 / 256 | |
| 17×17 | 2 | 4 | 1 / 4 | |
| 18×18 | 0 | 1 | todos | |
| 19×19 | 16 | 65,536 | 1 / 65,536 | |
| 20×20 | 0 | 1 | todos |
¿De dónde salen esos números tan irregulares? Los valores propios de A = I + M⊗︎I + I⊗︎M son 1 + λ + μ, con λ y μ valores propios de M. En característica 2, 1 + λ + μ = 0 significa μ = λ + 1. El polinomio característico de M sobre 𝔽₂ es un polinomio de Chebyshev:
y la dimensión del núcleo es
Así que Plutón (10×10) tiene solución única, pero 19×19 tendría 65,536 soluciones por tablero.
If a board has a solution x, all its solutions are x + q with q quiet. If d(n) = dim ker A, there are 2d solutions and a fraction 1/2d of skies can be solved.
| n | d(n) | Solutions per board | Solvable skies | In Unstar |
|---|---|---|---|---|
| 1×1 | 0 | 1 | all | |
| 2×2 | 0 | 1 | all | Mercury |
| 3×3 | 0 | 1 | all | Venus |
| 4×4 | 4 | 16 | 1 / 16 | Earth |
| 5×5 | 2 | 4 | 1 / 4 | Mars |
| 6×6 | 0 | 1 | all | Jupiter |
| 7×7 | 0 | 1 | all | Saturn |
| 8×8 | 0 | 1 | all | Uranus |
| 9×9 | 8 | 256 | 1 / 256 | Neptune |
| 10×10 | 0 | 1 | all | Pluto |
| 11×11 | 6 | 64 | 1 / 64 | |
| 12×12 | 0 | 1 | all | |
| 13×13 | 0 | 1 | all | |
| 14×14 | 4 | 16 | 1 / 16 | |
| 15×15 | 0 | 1 | all | |
| 16×16 | 8 | 256 | 1 / 256 | |
| 17×17 | 2 | 4 | 1 / 4 | |
| 18×18 | 0 | 1 | all | |
| 19×19 | 16 | 65,536 | 1 / 65,536 | |
| 20×20 | 0 | 1 | all |
Where do such irregular numbers come from? The eigenvalues of A = I + M⊗︎I + I⊗︎M are 1 + λ + μ, with λ and μ eigenvalues of M. In characteristic 2, 1 + λ + μ = 0 means μ = λ + 1. The characteristic polynomial of M over 𝔽₂ is a Chebyshev polynomial:
and the kernel dimension is
So Pluto (10×10) has a unique solution, but 19×19 would have 65,536 solutions per board.
8. El barrido es eliminación de Gauss
8. Sweeping is Gaussian elimination
Barrer no es un truco aparte: es eliminación de Gauss hecha con los dedos. Una vez que decides la fila de arriba t ∈ 𝔽₂n, el barrido decide todo lo demás. Por eso el problema de n² incógnitas se reduce a n (en Plutón, de 100 ecuaciones a 10): lo que queda abajo depende linealmente de t,
La tabla del telescopio es simplemente C−1 (o una preimagen cuando C no es invertible), y la “tabla por luz” de los tableros grandes son sus columnas, que se pueden sumar porque todo es lineal. Además dim ker C = dim ker A, así que:
- En 4×4, C = 0. Cualquier fila de arriba funciona, y por eso en la Tierra barrer siempre apaga todo.
- En 5×5, C tiene rango 3: solo hay 8 restos posibles (7 sin contar el vacío), las 7 filas de la tabla.
- En 9×9, C tiene rango 1: un solo resto posible.
Sweeping isn't a separate trick: it's Gaussian elimination done with your fingers. Once you decide the top row t ∈ 𝔽₂n, the sweep decides everything else. That's why the problem with n² unknowns shrinks to n (on Pluto, from 100 equations to 10): what's left at the bottom depends linearly on t,
The telescope table is simply C−1 (or a preimage when C isn't invertible), and the “per-light table” for big boards is its columns, which can be added because everything is linear. Also dim ker C = dim ker A, so:
- On 4×4, C = 0. Any top row works, which is why sweeping always clears Earth.
- On 5×5, C has rank 3: only 8 remainders are possible (7 not counting the empty one), the 7 rows of the table.
- On 9×9, C has rank 1: a single possible remainder.
9. La solución mínima
9. The minimum solution
Encontrar una solución es fácil. Encontrar la que usa menos toques es otro problema: entre las 2d soluciones x + q, hay que elegir la de menos unos. En general, buscar el vector de peso mínimo en una clase lateral es un problema difícil (es el problema de decodificación de códigos lineales), pero aquí d es chico: Unstar prueba las 2d combinaciones de una base del núcleo (hasta 256 en Neptuno) y se queda con la más corta. Ese es el número “Mínimo” que ves en pantalla.
Cuando d = 0 no hay que elegir: la única solución es la mínima. Por eso en la guía avanzada el truco de “barrer, deshacer, tocar arriba y barrer una vez” da oro garantizado en esos tamaños.
Finding a solution is easy. Finding the one with the fewest taps is another problem: among the 2d solutions x + q, you need the one with the fewest ones. In general, finding the minimum-weight vector in a coset is a hard problem (it's the decoding problem for linear codes), but here d is small: Unstar tries all 2d combinations of a kernel basis (up to 256 on Neptune) and keeps the shortest. That's the “Minimum” number on screen.
When d = 0 there's nothing to choose: the only solution is the minimum. That's why, in the advanced guide, the “sweep, undo, tap the top and sweep once” trick gives guaranteed gold on those sizes.
10. Todo encendido
10. All lights on
El tablero con todas las estrellas encendidas es b = (1, 1, …, 1). Sutner demostró que siempre tiene solución. Con la sección 6 sale en dos líneas: si q es quieto, q · A q = 0. Como A es simétrica, los términos fuera de la diagonal aparecen por pares y se cancelan, y como la diagonal es de unos queda q · q, que es el número de unos de q. Entonces todo patrón quieto tiene un número par de estrellas y (1, …, 1) · q = 0.
El mínimo para 5×5 es de 15 toques. Inténtalo:
The board with every star lit is b = (1, 1, …, 1). Sutner proved it can always be solved. With section 6 it takes two lines: if q is quiet, q · A q = 0. Since A is symmetric, the off-diagonal terms come in pairs and cancel, and since the diagonal is all ones what remains is q · q, the number of ones in q. So every quiet pattern has an even number of stars and (1, …, 1) · q = 0.
The minimum for 5×5 is 15 taps. Give it a try:
11. Variantes y preguntas abiertas
11. Variants and open questions
Todo lo anterior se generaliza, y cada generalización sería un modo de juego distinto:
- Más estados. Si cada estrella tiene k colores y un toque avanza un color, el juego vive en ℤk en vez de 𝔽₂ (Lights Out 2000 usaba varios colores). Con k primo sigue siendo álgebra lineal sobre un campo, pero tocar dos veces ya no cancela y el mínimo cambia por completo.
- Otras vecindades. Cambiar en X (diagonales), cambiar solo a las vecinas y no a la propia estrella, o el salto del caballo de ajedrez. Cada una cambia la matriz y con ella qué tamaños tienen solución única.
- Otras formas. Tableros hexagonales, toros (lo que sale por un lado entra por el otro), cubos como Lights Out Cube, o cualquier grafo. El argumento de la sección 10 funciona igual en todos: desde todo encendido siempre se puede apagar.
- Un nivel de álgebra lineal. Un tablero donde el juego te muestre la matriz y tú resuelvas el sistema en vez de tocar al tanteo.
¿Te gustaría jugar alguno de estos en Unstar? Escríbenos a periastrostudio@gmail.com.
Everything above generalizes, and each generalization could be a different game mode:
- More states. If each star has k colors and a tap moves it forward one color, the game lives in ℤk instead of 𝔽₂ (Lights Out 2000 used several colors). With k prime it's still linear algebra over a field, but tapping twice no longer cancels and the minimum changes completely.
- Other neighborhoods. Flipping in an X (diagonals), flipping only the neighbors and not the star itself, or a chess knight's jump. Each changes the matrix, and with it which sizes have unique solutions.
- Other shapes. Hexagonal boards, tori (what goes off one side comes back on the other), cubes like Lights Out Cube, or any graph. The argument in section 10 works the same on all of them: from all lights on you can always clear the board.
- A linear algebra level. A board where the game shows you the matrix and you solve the system instead of tapping by feel.
Would you play any of these in Unstar? Write to us at periastrostudio@gmail.com.
Referencias
References
- K. Sutner, “Linear cellular automata and the Garden-of-Eden”, The Mathematical Intelligencer 11 (1989).
- M. Anderson y T. Feil, “Turning Lights Out with Linear Algebra”, Mathematics Magazine 71(4) (1998).
- R. Fleischer y J. Yu, “A Survey of the Game ‘Lights Out!’”, Lecture Notes in Computer Science 8066 (2013).
- Lights Out Puzzle, Wolfram MathWorld.
- Lights Out (game), Wikipedia.
- OEIS A075462 (número de soluciones) y A075464 (mínimo desde todo encendido).
- K. Sutner, “Linear cellular automata and the Garden-of-Eden”, The Mathematical Intelligencer 11 (1989).
- M. Anderson and T. Feil, “Turning Lights Out with Linear Algebra”, Mathematics Magazine 71(4) (1998).
- R. Fleischer and J. Yu, “A Survey of the Game ‘Lights Out!’”, Lecture Notes in Computer Science 8066 (2013).
- Lights Out Puzzle, Wolfram MathWorld.
- Lights Out (game), Wikipedia.
- OEIS A075462 (number of solutions) and A075464 (minimum from all lights on).