introduction
Vous êtes un criminel chargé de voler des plans secrets à la nouvelle startup technologique Dejavu. Vous vous faufilez par-dessus le mur du fond, mais trouvez une porte qui nécessite une épingle pour l'ouvrir. Vous reconnaissez la marque de la serrure et savez qu'il faut une broche à 5 chiffres en utilisant tous les chiffres de 0 à 4. Après chaque chiffre entré, la serrure vérifie les 5 derniers chiffres entrés et s'ouvre si le code est correct. Vous devez passer cette écluse et vite.
Superpermutations en bref
Une permutation est toutes les combinaisons possibles d'un certain ensemble de chiffres. par exemple, toutes les permutations des chiffres 0, 1, 2 sont:
012, 021, 102, 120, 201 et 210.
Si nous concaténons toutes ces permutations ensemble, nous obtenons une superpermutation:
012021102120201210
cette superpermutation contient toutes les permutations de 0, 1, 2, mais il est possible d'en faire une plus courte. Je vais sauter un peu ici, mais la superpermutation la plus courte de ces chiffres est:
012010210
À nos fins, il s'agit essentiellement de la plus courte chaîne de chiffres qui contient toutes les permutations possibles de ces chiffres, c'est-à-dire une superpermutation.
Tâche
Votre tâche est un peu plus difficile que l'exemple de superpermutation comme indiqué ci-dessus, car vous avez deux chiffres de plus à vous soucier. - Si vous n'avez pas lu sur les superpermutations, ou mon exemple ci-dessus était un peu flou, je vous suggère fortement de lire cet excellent article de Patrick Honner sur le sujet (ce défi a été très fortement inspiré par son article, donc bravo à lui): https://www.quantamagazine.org/unscrambling-the-hidden-secrets-of-superpermutations-20190116/ . Votre objectif est d'écrire le programme le plus court possible qui génère une superpermutation des chiffres 0 à 4.
Notation
Votre programme ne prend aucune entrée d'aucune sorte et produit une superpermutation des chiffres de 0 à 4. Cette superpermutation résultante doit être imprimée sur la console ou affichée visiblement à l'utilisateur dans la mesure fournie par la langue de votre choix. Cela ne doit pas être la permutation la plus courte possible, il doit simplement s'agir d'une superpermutation valide. Pour cette raison, l'objectif est d'écrire le programme le plus court avec la superpermutation la plus courte, vous devez donc calculer votre score comme suit:
taille du fichier (octets) * longueur de super-permutation générée (chiffres)
par exemple, si j'avais un programme de 40 octets et que ma superpermutation comporte 153 chiffres, mon score sera:
40 * 153 = 6120
comme toujours, l'objectif est d'obtenir ce score le plus bas possible.
Modèle
Voici comment publier votre réponse:
Langue | But
lien vers le code dans l'environnement de travail (si possible)
code snippet
explication du code, etc.
Finalités
C'est l'une de mes premières questions sur ce site. Alors s'il vous plaît dites-moi si je manque quelque chose ou si une section de mon défi n'est pas claire. Merci et amusez-vous au golf!