C’est un défi Cops and Robbers. C'est le fil du flic. Le fil du voleur est ici .
En tant que policier, vous devez choisir n’importe quelle séquence de l’ OEIS et écrire un programme p qui affiche le premier entier de cette séquence. Vous devez également trouver des chaînes s . Si vous insérez s quelque part dans p , ce programme doit imprimer le second entier de la séquence. Si vous insérez s + s au même endroit dans p , ce programme doit imprimer le troisième entier de la séquence. s + s + s au même endroit imprimera le quatrième, et ainsi de suite. Voici un exemple:
Python 3, séquence A000027
print(1)
La chaîne cachée est deux octets .
La chaîne est +1
, parce que le programme print(1+1)
imprimera le deuxième entier dans A000027, le programme print(1+1+1)
imprimera le troisième entier, etc.
Les flics doivent révéler la séquence, le programme original p et la longueur de la chaîne cachée s . Les voleurs craquent une soumission en recherchant une chaîne pouvant atteindre cette longueur et l'emplacement où l'insérer pour créer la séquence. Il n'est pas nécessaire que la chaîne corresponde à la solution voulue pour être une fissure valide, ni à l'emplacement où elle est insérée.
Règles
Votre solution doit fonctionner pour n’importe quel nombre de la séquence, ou au moins jusqu’à une limite raisonnable où elle ne respecte pas les restrictions en matière de mémoire, de dépassement de nombre entier / pile, etc.
Le voleur gagnant est l'utilisateur qui obtient le plus grand nombre de soumissions, le décisif ayant atteint ce nombre en premier.
Le flic gagnant est le flic avec la plus courte chaîne s qui ne sont pas fissurés. Tiebreaker est le plus court p . S'il n'y a pas de soumissions non fissurées, le flic qui avait une solution non cassée pour les plus longues victoires.
Pour être déclaré sûr, votre solution doit rester dans l’écran pendant une semaine, puis la chaîne cachée (et l’emplacement pour l’insérer) seront révélés.
s ne peut pas être imbriqué, il doit être concaténé bout à bout. Par exemple, si s était
10
, chaque itération irait10, 1010, 101010, 10101010...
plutôt que10, 1100, 111000, 11110000...
Il est acceptable de commencer par le deuxième terme de la séquence plutôt que par le premier.
Si votre séquence comporte un nombre fini de termes, le fait de dépasser le dernier terme peut entraîner un comportement indéfini.
Toutes les solutions cryptographiques (par exemple, vérifier le hachage de la sous-chaîne) sont interdites.
Si s contient des caractères non-ASCII, vous devez également spécifier le codage utilisé.