Esta pregunta es sobre pilas de arena abelianas . Lea este desafío anterior y mire este video numérico para obtener más información.
Una pila de arena abeliana de tamaño n por n es una cuadrícula que contiene el número 0, 1, 2 y 3 (que representa el número de granos de arena). Agregar dos sandpiles funciona agregando primero elemento por elemento, y luego derribando cualquier elemento que vaya por encima de 3. El orden en que se derriba no importa, el resultado final es el mismo. Cuando una célula cae, su número disminuye en 4, y cada uno de sus vecinos directos aumenta en 1. Esto puede causar una reacción en cadena. Si una celda está en el borde de la cuadrícula, cualquier grano que se caiga de la cuadrícula mientras se cae desaparecerá.
Por ejemplo, estoy agregando dos pilas de arena de 3 por 3 (dando una reacción en cadena bastante extrema):
3 3 3 1 2 1 4 5 4 4 6 4 6 2 6 6 3 6 2 5 2 4 1 4 4 2 4 0 4 0 2 0 2 2 1 2
3 3 3 + 2 1 2 = 5 4 5 -> 6 0 6 -> 2 4 2 -> 3 0 3 -> 5 0 5 -> 1 4 1 -> 2 0 2 -> 4 0 4 -> 0 4 0 -> 1 0 1
3 3 3 1 2 1 4 5 4 4 6 4 6 2 6 6 3 6 2 5 2 4 1 4 4 2 4 0 4 0 2 0 2 2 1 2
En este desafío estamos interesados en un subconjunto de todos los posibles n por n sandpiles. Este subconjunto contiene cualquier pila de arena que puede obtener agregando una pila de arena arbitraria a la pila de arena all-3s n by n . Por ejemplo, justo arriba vimos que 212 | 101 | 212
está en el subconjunto, porque lo obtuvimos agregando algo a la pila de arena all-3.
Ahora este subconjunto tiene un elemento interesante: el elemento de identidad . Si toma este elemento y lo agrega a cualquier otro elemento del subconjunto , la suma no cambia. En otras palabras, esta pila de arena actúa como un cero de este subconjunto. Sucede que 212 | 101 | 212
es el elemento cero para el subconjunto de 3 por 3. Por ejemplo:
2 2 2 2 1 2 4 3 4 0 5 0 2 1 2 2 2 2
2 2 2 + 1 0 1 = 3 2 3 -> 5 2 5 -> 1 6 1 -> 2 2 2
2 2 2 2 1 2 4 3 4 0 5 0 2 1 2 2 2 2
Ahora este es su desafío: dado n , encuentre el elemento de identidad del subconjunto de la cuadrícula n por n . Exprímalo asignando un color único con suficiente contraste de su elección a cada una de ellas 0, 1, 2, 3
y generando una imagen n por n. Su código debe poder producir la caja de 50 por 50 en menos de un minuto en una PC moderna razonable.
Por ejemplo, el elemento de identidad 500 por 500:
Aquí está azul = 3, verde = 2, rojo = 1, blanco = 0. Pero no tiene que usar este esquema de color en su respuesta.