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é.
la source
Réponses:
MATL , séquence A005206 . Fissurée par SamYonnou
Essayez-le en ligne!
La chaîne cachée a 8 octets .
la source
Python 2 , séquence A138147 ( fissuré )
Essayez-le en ligne!
La chaîne cachée est de 7 octets . La séquence va:
la source
Keg , séquence A000045
La chaîne cachée est ≤ 6 octets (afin de se conformer aux règles de craquage mises à jour)
la source
Fissuré
Brain-Flak , séquence A000290 ( Nombres carrés)Essayez-le en ligne!
La chaîne cachée est de 6 octets .
Fait amusant:
J'ai "découvert" cette propriété en jouant à ce jeu basé sur la théorie du cerveau . La chaîne cachée était un élément généré de manière aléatoire que j'ai découvert très utile.
la source
Java 8+, séquence A010686 ( fissurée par xnor )
Fonction lambda.
La chaîne cachée est ≤ 5 octets
la source
^2<<1
mais c'est la même chose.Python 3 , séquence A096582
C'est vraiment trivial, vu que je n'avais jamais essayé les défis Cops and Robbers.
La chaîne cachée est de 3 octets.
la source
Pyret , séquence A083420 , fissurée
La chaîne masquée a 4 octets ou moins.
la source
Python 3 , séquence A014092 - ( fissuré )
Essayez-le en ligne!
La séquence masquée est de 82 octets .
Mon code prévu (qui ne repose pas sur la conjecture de Goldbach) était:
Cracked by NieDzejkob , qui utilise la conjecture de Goldbach pour la résoudre en 42 caractères magiques . Bon travail!
la source
Forth (gforth) , A000042 - ( fissuré )
Essayez-le en ligne!
La séquence masquée est de 5 octets et peut facilement gérer des centaines de termes.
Une solution sur un octet qui se rompt en raison d'un débordement d'entier est également possible. En fait, je dirais que c'est trivialement embarrassant. Bien que le texte du défi, sous certaines interprétations, puisse vous permettre d'appeler cela une fissure, je vous exhorte à ne pas le faire.
la source
V , séquence A000290 . Craque de vaches
Essayez-le en ligne!
La chaîne cachée est de 5 octets .
la source
Calculatrice de bureau , séquence A006125
La chaîne cachée ≤ 12 octets .
la source
Flak cérébrale , séquence A000984 (coefficients binomiaux centraux)
Essayez-le en ligne!
The hidden string has 36 bytes or fewer.
la source
Python 3, A268575
Try it online!
The hidden sequence is 102 bytes.
la source
Haskell, sequence A083318 (cracked)
Try it online!
The hidden string is 5 bytes. The sequence goes:
la source
Brain-Flak, sequence A000578 (Cube numbers)
Try it online!
The hidden string is 16 bytes
la source
Cracked
cQuents, sequence A003617Try it online!
The hidden string is 1 byte.
la source
Unefunge-98 (PyFunge), sequence A000108
Try it online!
The hidden sequence is 19 bytes.
la source
MATL, sequence A000796. Cracked by SamYonnou
Try it online!
The hidden string has 3 bytes.
la source
Python 3, A008574, cracked by xnor
Try it online!
Insert 4 bytes to complete A008574. A008574: a(0)=1, thereafter a(n) = 4n.
la source
AsciiDots, 36 bytes, A019523
Try it online!
The hidden string has 12 bytes.
la source
Haskell, sequence A014675, cracked by nimi
Try it online!
The hidden sequence is 35 bytes.
Here's my intended solution:
la source
VDM-SL, sequence A000312
The hidden string has 33 bytes or fewer
la source
Haskell, A000045 (Fibonacci) -- Cracked
I've got a solution with a whopping 23 bytes. I don't expect this to be safe for long, but it was super fun to come up with.
Solution:
la source
Java 8+, 1044 bytes, sequence A008008 (Safe)
Try it online!
Can be solved using a hidden string of size 12. Can definitely be golfed more, but there is no way this is actually winning. I just wanted to contribute out of respect for the number 8008.
Note: before anyone complains that the sequence is hard-coded, I've tested this up to the first term that diverges from the hard-coding (13th term = 307) and it gets it correctly albeit slowly. This is also why it's using
long
instead ofint
, otherwise it overflows before that term.Update (Jul 12 2019): updated to be a bit more performant. Computes the 13th term in 30 seconds on my computer now instead of 5 minutes.
Update (Jul 17 2019): fixed bugs in for loop bounds for the
g
function, and array length bounds in the bottom of thef
function. These bugs should have eventually caused problems, but not early enough to get caught by just checking the output. In either case, since the presence of these bugs 5 days into the game might have confused some people enough into being unable to solve this puzzle, I am totally fine with extending the "safe" deadline until July 24th for this submission.Update (Jul 18 2019): After some testing I have confirmed that overflows start after the 4th term in the sequence and start affecting the validity of the output after the 19th term. Also in the program as it is written here, each consecutive term takes roughly 5 times longer than the previous to compute. The 15th term takes about 14 minutes on my computer. So actually computing the 19th term using the program as written would take over 6 days.
Also, here is the code with sane spacing/indentation so it is a bit easier to read if people don't have an IDE with auto-formatting on hand.
Solution
la source
Brachylog, 7 bytes (Brachylog SBCS), A114018 (Cracked)
Crack it online!
The string has 2 or fewer bytes.
la source
b
is fairly suspicious…C# (.NET Core), A003678, 29727 bytes (Safe)
The hidden sequence is 4 bytes or less.
la source
.code.tio(1,284): error CS0103: The name 'CodeDomProvider' does not exist in the current context .code.tio(1,390): error CS0246: The type or namespace name 'CompilerParameters' could not be found (are you missing a using directive or an assembly reference?)
System.CodeDom
, also it creates files so it won't work on tioSystem.CodeDom
Prolog (SWI), 28 bytes, A011557, safe
Try it online!
(I'm not really sure what counts as a full program for Prolog, but this works as a program on TIO.)
The hidden string is 5 bytes or less.
I'm a bit surprised this survived a week... The hidden string is
la source