Ce post est vaguement inspiré de ce post mathoverflow .
Un Vanisher est n'importe quel modèle du jeu de la vie de Conway qui disparaît complètement après une étape. Par exemple, le motif suivant est un Vanisher de taille 9.
Une propriété intéressante des Vanishers est que tout motif peut être transformé en disparaissant en ajoutant simplement plus de cellules vivantes. Par exemple, le motif suivant peut être complètement enfermé dans un motif de fuite comme
Cependant, nous pouvons transformer ce modèle en Vanisher en ajoutant encore moins de cellules vivantes.
Votre tâche consiste à écrire un programme qui effectue cette tâche pour nous. On donne à ce motif un motif en entrée, et en sortie un motif disparaissant contenant l'entrée. Vous n'avez pas nécessairement à trouver le modèle optimal juste un modèle qui fonctionne.
Notation
Pour noter votre programme, vous devrez l'exécuter sur tous les polyplets de taille 6 (sans compter les cas symétriquement équivalents). Ici une boîte à pâte contenant chaque polyplet sur sa propre ligne. Il devrait y en avoir 524 au total. Ils sont représentés sous la forme d'une liste de six coordonnées ( (x,y)
tuples) correspondant chacune à l'emplacement d'une cellule vivante.
Votre score sera le nombre total de nouvelles cellules ajoutées pour faire de tous ces polyplets des Vanishers.
Cravates
En cas d'égalité, je fournirai une liste des polyplets de taille 7 pour les programmes à exécuter.
IO
J'aimerais que IO soit assez flexible, vous pouvez prendre des entrées et des sorties dans des formats raisonnables, mais vous voudrez probablement prendre des entrées dans le même format que les données d'entrée brutes que j'ai fournies. Votre format doit être cohérent sur plusieurs exécutions.
Horaire
Votre programme doit s'exécuter dans un délai raisonnable (environ <1 jour) sur une machine raisonnable. Je ne vais pas vraiment imposer cela trop, mais je préférerais que nous jouions tous bien.
la source
Réponses:
Python + Z3 , score = 3647
Fonctionne en 14 secondes sur mon système à huit cœurs.
Sortie complète
la source
+
déconnexions de la forme principale dans certains cas, mais il semble qu'elles soient nécessaires pour éviter de créer de nouvelles cellules. Ces solutions sont-elles donc optimales?z3.Or
place de la vanillea or b
? S'agit-il uniquement de performances ou de fonctionnalités différentes?