Questo post è liberamente ispirato a questo post di mathoverflow .
Un Vanisher è uno schema nel gioco della vita di Conway che scompare completamente dopo un passo. Ad esempio, il modello seguente è un Vanisher taglia 9.
Una proprietà interessante di Vanishers è che qualsiasi modello può essere trasformato in uno che scompare semplicemente aggiungendo più cellule vive. Ad esempio, il modello seguente può essere completamente racchiuso in un modello che scompare in questo modo
Tuttavia, possiamo trasformare quel modello in un Vanisher aggiungendo ancora meno celle vive.
Il tuo compito è quello di scrivere un programma che fa questo compito per noi. A questo viene dato un modello come input trova ed emette un pattern evanescente contenente l'input. Non è necessario trovare il modello ottimale solo un modello che funziona.
punteggio
Per assegnare un punteggio al tuo programma dovrai eseguirlo su tutti i poliplet di dimensione 6 (non doppio conteggio di casi simmetrici equivalenti). Ecco un pastebin contenente ogni poliplet sulla propria riga. Dovrebbero essere 524 in totale. Sono rappresentati come un elenco di sei coordinate ( (x,y)
tuple), ciascuna delle quali rappresenta la posizione di una cella viva.
Il tuo punteggio sarà il numero totale di nuove celle aggiunte per trasformare tutti questi polipi in Vanishers.
Cravatte
Nel caso di legami fornirò un elenco dei poliplet di dimensione 7 per i programmi su cui eseguire.
IO
Vorrei che IO fosse abbastanza flessibile, puoi prendere input e output in formati ragionevoli, ma probabilmente vorrai prendere input nello stesso formato dei dati di input grezzi che ho fornito. Il formato deve essere coerente su più corse.
sincronizzazione
Il programma dovrebbe essere eseguito in un periodo di tempo ragionevole (circa <1 giorno) su una macchina ragionevole. Non lo farò davvero troppo, ma preferirei che suonassimo tutti bene.