introduzione
Sei un criminale incaricato di rubare alcuni piani segreti dalla nuova startup tecnologica Dejavu. Ti intrufoli sopra la parete posteriore, ma trovi una porta che richiede un perno per aprirla. Riconosci la marca del lucchetto e sai che ci vuole un pin di 5 cifre usando tutti i numeri da 0 a 4. Dopo ogni cifra inserita, il lucchetto controlla le ultime 5 cifre inserite e si apre se il codice è corretto. Devi superare questo blocco e in fretta.
Superpermutazioni in breve
Una permutazione è tutte le possibili combinazioni di un determinato insieme di cifre. ad esempio, tutte le permutazioni delle cifre 0, 1, 2 sono:
012, 021, 102, 120, 201 e 210.
Se concateniamo tutte queste permutazioni insieme, otteniamo una supermutazione:
012021102120201210
questa superpermutazione contiene tutte le permutazioni di 0, 1, 2, ma è possibile accorciarne una. Salterò un po 'qui, ma il superpermutazione più breve di queste cifre è:
012010210
Per i nostri intenti e scopi, questa è essenzialmente la stringa di cifre più corta che contiene tutte le possibili permutazioni di quelle cifre, ovvero una supermutazione.
Compito
Il tuo compito è un po 'più difficile dell'esempio di supermutazione come mostrato sopra, perché hai altre due cifre di cui preoccuparti. - Se non hai letto delle superpermutazioni, o il mio esempio sopra è stato un po 'poco chiaro, ti consiglio vivamente di leggere questo fantastico articolo di Patrick Honner sull'argomento (questa sfida è stata fortemente ispirata dal suo articolo, quindi complimenti a lui): https://www.quantamagazine.org/unscrambling-the-hidden-secrets-of-superpermutations-20190116/ . Il tuo obiettivo è scrivere il programma più breve possibile che generi una superpermutazione delle cifre da 0 a 4.
punteggio
Il tuo programma non accetta alcun input di alcun tipo e produce una supermutazione delle cifre da 0 a 4. Questa supermutazione risultante deve essere stampata sulla console o visibilmente mostrata all'utente nella misura fornita dalla tua lingua preferita. Questa non deve essere la permutazione più breve possibile, deve solo essere una superpotutazione valida. Per questo motivo, l'obiettivo è quello di scrivere il programma più breve con la superpermutazione più breve, quindi dovresti calcolare il tuo punteggio in questo modo:
dimensione del file (byte) * lunghezza della supermutazione generata (cifre)
ad esempio, se avessi un programma da 40 byte e la mia superpermutazione fosse lunga 153 cifre, il mio punteggio sarà:
40 * 153 = 6120
come sempre, l'obiettivo è ottenere questo punteggio il più basso possibile.
Modello
Ecco come pubblicare la risposta:
Lingua | Punto
collegamento al codice nell'ambiente di lavoro (se possibile)
code snippet
spiegazione del codice, ecc.
finalità
Questa è una delle mie prime domande su questo sito. Quindi per favore dimmi se mi manca qualcosa o una sezione della mia sfida non è chiara. Grazie e buon divertimento!