Cette question concerne les tas de sable abéliens . Lisez ce défi précédent et regardez cette vidéo numérotée pour en savoir plus.
Un tas de sable abélien de taille n par n est une grille contenant le nombre 0, 1, 2 et 3 (représentant le nombre de grains de sable). L'ajout de deux tas de sable fonctionne en ajoutant d'abord élément par élément, puis en renversant tout élément supérieur à 3. L'ordre dans lequel vous basculez n'a pas d'importance, le résultat final est le même. Lorsqu'une cellule bascule, son nombre diminue de 4 et chacun de ses voisins directs augmente de 1. Cela peut provoquer une réaction en chaîne. Si une cellule se trouve au bord de la grille, tous les grains qui tombent de la grille pendant le basculement disparaissent.
Par exemple, j'ajoute deux tas de sable 3 par 3 (donnant une réaction en chaîne plutôt extrême):
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
Dans ce défi, nous nous intéressons à un sous-ensemble de tous les tas de sable n par n possibles. Ce sous - ensemble contient des tas de sable que vous pouvez obtenir en ajoutant un tas de sable arbitraire aux tous-3 n par n sandpile. Par exemple, juste au-dessus, nous avons vu que212 | 101 | 212
c'est dans le sous-ensemble, parce que nous l'avons obtenu en ajoutant quelque chose au tas de sable tous-3.
Maintenant, ce sous-ensemble a un élément intéressant: l' élément d' identité . Si vous prenez cet élément et l'ajoutez à tout autre élément du sous - ensemble , la somme reste inchangée. En d'autres termes, ce tas de sable agit comme un zéro de ce sous-ensemble. Il se trouve que 212 | 101 | 212
c'est l'élément zéro pour le sous-ensemble de 3 par 3. Par exemple:
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
Maintenant, c'est votre défi: étant donné n , trouvez l'élément d'identité du sous-ensemble de la grille n par n . Sortez-le en attribuant une couleur unique avec un contraste suffisant de votre choix à chacun 0, 1, 2, 3
et en sortant une image n par n. Votre code doit pouvoir produire le boîtier 50 x 50 en moins d'une minute sur un PC moderne et raisonnable.
Par exemple, l'élément d'identité 500 x 500:
Voici bleu = 3, vert = 2, rouge = 1, blanc = 0. Mais vous n'avez pas à utiliser ce schéma de couleurs dans votre réponse.