Dans un accident très inhabituel impliquant un petit échantillon de radium, une baleine électrocutée et trois oursons gommeux, une partie du code source de The Management ™ a été mutée. Le patron de The Management ™ ne sait pas grand chose, ce sont en fait les Cops © qui étaient responsables, dans une tentative de déjouer les plans "diaboliques" de The Management ™. Les Robbers® ont donc été embauchés pour tenter de récupérer le code d'origine, car qui n'aime pas être méchant parfois?
note: Ce défi a été fortement inspiré par Déchiffrer le code source .
La description
C'est un défi de flics et de voleurs .
- Les flics écriront un programme (le code muté) qui exécute la tâche # 1 (et écrit également un programme qui exécute la tâche # 2, mais qui est gardé secret).
- Les voleurs tenteront d'inverser la "mutation" et de changer ce code d'origine en code qui exécute la tâche n ° 2.
Dans ce défi, la tâche n ° 1 consistera à sortir le n
e nombre premier , et la tâche n ° 2 à sortir le n
th nombre de Fibonacci (ce qui est en quelque sorte mauvais, selon les Cops © de toute façon). La séquence de Fibonacci est définie comme ( n=1
→ 1
; n=2
→ 1
; n=3
→ 2
; ...), et les nombres premiers sont définis comme ( n=1
→ 2
; n=2
→ 3
; n=3
→ 5
; ...).
Le but des flics est de minimiser la différence entre les programmes qui terminent la tâche # 1 et la tâche # 2, tout en empêchant les voleurs de recréer le code qui termine la tâche # 2.
Règles de la police
Les flics écriront deux programmes (l'un qui termine la tâche n ° 1 et l'autre qui termine la tâche n ° 2) et rendront publiques les informations suivantes:
- Le premier programme (qui sort le
n
e nombre premier) - La distance d'édition de Levenshtein entre le premier programme et le deuxième programme
- Le langage de programmation dans lequel les deux programmes sont écrits (doit être le même langage pour les deux programmes)
Les restrictions suivantes s'appliquent aux deux programmes:
- Ils doivent comporter 128 caractères au maximum.
- Ils doivent uniquement utiliser ASCII imprimable (plus les retours à la ligne, qui sont également autorisés).
- Ils doivent prendre moins de 10 secondes pour fonctionner
n=45
, et ils ne sont pas tenus de produire la sortie correcte pour toutn>45
. - Ils ne doivent utiliser aucune fonction de hachage ou de cryptographie.
Règles de voleur
Le voleur tentera de changer le programme du flic (qui termine la tâche n ° 1) en un programme qui termine la tâche n ° 2 (pas nécessairement le programme d'origine écrit par le flic) dans la distance d'édition spécifiée par le flic.
Une soumission déjà craquée ne peut plus être craquée (seul le premier voleur qui déchire une soumission obtient un crédit).
Après avoir craqué une soumission, procédez comme suit:
- Publiez une réponse à la question d'accompagnement de ce défi (lien) , en fournissant la langue, votre solution et un lien vers la réponse d'origine.
- Laissez un commentaire avec le texte "Cracked" qui renvoie à votre réponse publiée.
- Modifiez la réponse du policier si vous disposez de privilèges de modification (sinon, attendez que quelqu'un d'autre disposant des privilèges requis le fasse pour vous ou suggérez une modification).
Notation
Si le programme d'un flic reste non fissuré pendant 1 semaine, le flic peut publier le code d'origine qui termine la tâche n ° 2 (dans la distance de modification spécifiée), et la soumission est désormais considérée comme "sûre". La soumission sûre qui a la plus petite distance d'édition gagnera. En cas d'égalité, le programme le plus court (l'original qui termine la tâche n ° 1) l'emporte. Si deux soumissions sont toujours à égalité, celle publiée plus tôt l'emporte.
Si un voleur réussit à déchiffrer la soumission d'un flic, le score du voleur augmente de la distance d'édition de cette soumission. Par exemple, un voleur qui déchiffre une soumission avec une distance d'édition de 3 et un avec une distance de 5 gagne 8 points. Le voleur avec le score le plus élevé gagne. En cas d'égalité, le voleur qui a obtenu le premier score l'emporte.