Comment connaissez-vous le site? Découvrons-le.
C'est un défi des flics et des voleurs . Le fil du voleur.
En tant que policier, vous devez:
- Trouvez un défi non supprimé et non fermé sur ce site pour répondre. Le défi ne peut pas comporter les balises suivantes: flics-and-robbers , popularité-contest , surveillance du code , sournois , castor occupé , roi de la colline , astuces , chaîne de réponse . Le défi doit avoir des restrictions sur la sortie valide.
- Ecrire une soumission valide pour le défi, dans une langue trouvées sur Wikipédia ou esolangs.org ou tryitonline . La soumission ne doit pas nécessairement être compétitive, seulement valide. EDIT: Hashing dans votre soumission n'est pas autorisé
- Postez la soumission ici, en gardant le défi secret. Vous devez publier l'intégralité de la soumission, ainsi que la langue (et la version, le cas échéant).
Au bout d'une semaine, si personne n'a trouvé le défi auquel vous répondez, vous pouvez poster le défi auquel répond votre soumission. À ce stade, votre soumission est sécurisée . Il vaut N points, où N est le nombre de votes positifs sur le défi (à partir de 2016-11-17 ) (Plus c'est élevé, mieux c'est)
Pour casser votre défi, un voleur doit trouver un défi pour lequel la soumission est une soumission valide.
Remarques:
- Si un défi nécessite une sortie
X
, et vous sortieXY
ouYX
oùY
est autre chose que des espaces, la soumission est pas valable pour ce défi. - Un défi plus récent que 2016-11-17 n'est pas autorisé.
- Les langues plus récentes que le défi caché sont autorisées.
- Je me réserve le droit d'interdire certaines contestations si elles sont largement applicables (pourraient s'appliquer à la majorité des soumissions).
- Merci à Daniel pour l'idée initiale!
Soumissions non fissurées:
<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 100357;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>
cops-and-robbers
obfuscation
Nathan Merrill
la source
la source
Réponses:
Pip , 9 octets ( sûr , 15 points)
Ce qu'il faut faire devrait être facile à comprendre, mais la question est de savoir pourquoi ... ( TIO )
Le défi était Quelle est la langue? L'objectif: analyser le nom du langage de programmation à partir d'un en-tête de réponse PPCG. Par exemple:
Je ne sais pas si cela relève du "défi doit comporter des restrictions sur la sortie valide", car il s'agit d'un défi de batterie de tests marqué par "le pourcentage de tests que vous obtenez corrects" et ne nécessite donc pas que la sortie soit correcte pour toutes les entrées. Cependant, je dirai que le code ci-dessus obtient un taux correct d'environ 60%, ce qui n'est pas mauvais pour quelque chose d'aussi simple.
la source
ht:w"\w+"1
/@:w"\w+"1 1
, qui minimisehtcw
/htcz
si seulement les espaces comptent , mais aucun de ceux-ci ne donne de résultat. Cela permettrait également d'extraire des minutes du format HH: mm: ss ou d'extraire un nom de variable d'une déclaration de style C, ou des nombres après un signe décimal. Mais je ne trouve pas de questions qui demandent l'une de ces choses ...: /Perl - fissuré par DLosc
Donnons un facile pour les non-esolang
Courir avec
-nl
Défi: vérificateur de palindrome pratique
Le code se bloque après avoir imprimé la vérité, mais selon cette méta-publication, tant qu'il produit la sortie correcte avant de planter et que les erreurs éventuelles sont sorties vers STDERR, c'est une solution valable.
la source
Hexagonie , 548 octets, fissuré
Essayez-le en ligne!
la source
.
requise par ce défi.)Perl, coffre - fort , 18 points
Éditer : j'ai modifié la fin du code (voir l'historique d'édition) pour gérer un cas de bord (le défi ne dit rien à ce sujet, et l'auteur n'a pas répondu à la question, mais au moins ce code le gère) . Mais l'algorithme et la logique du code restent les mêmes.
Ce code n'est pas obscurci (juste joué au golf). (Cela implique que ce
-n0E
ne sont pas optionnels).Je ne me rends pas compte si c'est difficile ou non, mais je suppose que je serai réparé quand quelqu'un le craquera.
Explications:
Le défi était: Peut-on résoudre le labyrinthe? .
Ce code trouvera toutes les cellules accessibles du labyrinthe (et les marquera d'un a
A
): si une cellule touche une cellule marquée d'unA
, elle est accessible et nous le marquonsA
aussi; et on recommence (redo
). Cela se fait grâce à deux regex:s/(^0|A)(.{@{+}})?0/A$2A/s
vérifie si un espace est à droite ou en bas d'unA
, alors ques/0(.{@{+}})?A/A$1A/s
vérifie si un espace est à gauche ou au-dessus d'unA
. A la fin, si la dernière cellule contient uneA
lui est accessible, sinon ce n'est pas (c'est ce que lessay/A$/+0
chèques, l'+0
est ici pour vous assurer que le résultat sera0
ou au1
lieu de chaîne vide et1
).Notez que
/.*/
correspond à une ligne entière, définissant ainsi@+
à l'index de la fin de la première ligne, ce qui est la taille d'une ligne, ce qui permet d'utiliser pour.{@{+}}
faire correspondre exactement autant de caractères qu'il y a sur une ligne. (@{+}
est équivalent à@+
, mais seul l'ancien peut être utilisé dans regex)Pour l'exécuter:
(et si vous remplacez la
1111011
ligne par1111111
, le problème ne sera plus résolu, et le résultat sera0
au lieu de1
)la source
Perl, 56 octets, Coffre-fort (14 points)
Le défi était celui-ci , vous obligeant à créer un algorithme de diffing; vous devez pouvoir entrer deux fichiers et générer un diff, ou saisir un fichier et un diff et exporter l'autre fichier. La notation de ce défi est code-défi , en faisant le plus petit diff vainqueur; Cependant, ce défi n’exige pas de réponse compétitive, il est simplement conforme à la spécification. J’ai donc écrit un programme diffing de manière ludique, qui utilise simplement XOR pour combiner les entrées (ce qui signifie que le même programme fonctionne pour un-diffing).
La partie la plus difficile est de reproduire la longueur des fichiers originaux. L'entrée est spécifiée en ASCII, qui est un jeu de caractères de sept bits, me permettant ainsi d'utiliser le huitième bit pour suivre la longueur du fichier. Lors de la différenciation, nous définissons le bit haut de chaque octet en utilisant une
y///
instruction (qui est légèrement plus obscurcie que ne le serait l'arithmétique au niveau du bit). Lorsqu'on diffère (en notant que l'entrée a déjà le bit haut défini), on supprime les NUL de la sortie. (Je viens de me rendre compte que cela échouerait si l'entrée contenait des octets NUL; cependant, le défi est défini en termes de batterie de test et, heureusement, je ne pense pas qu'il y ait des octets NUL dans la batterie. S'il y en a, alors ce programme serait incorrect et devrait être disqualifié; un problème avec un policier et des voleurs est-ce que personne d’autre n’a suffisamment d’informations pour vous indiquer des failles facilement corrigées dans votre réponse!)la source
Octave, 15 points! SÛR
Essayez-le en ligne ici .
Explication:
Le code prend une chaîne d'entrée
x
contenant des uns et des zéros10010110110101
et un entiery
.Pour trouver la moyenne mobile d'une séquence dans MATLAB / Octave, vous pouvez faire:
Puisque nous ne nous intéressons qu'à l'emplacement du maximum, pas aux valeurs réelles, nous n'avons pas besoin de nous soucier de convertir la chaîne en nombres.
(x.^2)
place toutes les valeurs ASCII48,49
pour0,1
. Cela est nécessaire car Octave ne peut pas utilisercumsum
directement sur des personnages.cumsum(+x)
serait deux octets plus court mais indiquerait quex
c'est une chaîne.C’est en fait assez bien joué au golf (sauf au
.^2
lieu de+
). Bien sûr, la convolution serait plus simple.la source
MATL . Fissuré
Essayez-le en ligne!
J'ai indiqué entrée et sortie même si ce n'est pas nécessaire. Comme c'est quand même dans l'historique d'édition: le programme entre deux nombres et en sort un.
la source
C #, 590 octets, fissuré
Probablement assez facile, aussi un programme assez long, _,
la source
Func<string, int, string>
. On dirait que c'est un chiffre chiffré au clavier. Le paramètre nombre est le nombre de caractères à décaler directement sur le clavier (c'est-à-dire("t",1)
=y
).05AB1E , 27 octets, fissuré!
Pour cette soumission, une entrée est également requise pour que cela fonctionne. Ne devrait pas être trop difficile à craquer.
Explication (pour le challenge):
Utilise le codage CP-1252 . Essayez-le en ligne!
la source
아희 (Aheui) , 0 octet, fissuré
Essayez-le ici! (Le programme est déjà saisi pour vous: p)
la source
Python, 935 octets
Désolé, j'ai utilisé un obfuscateur, mais ce n'est pas interdit et bien plus facile. (Et je n'ai pas eu tout ce temps pour le faire moi-même ...)
la source
9**99
sans rien imprimer (cela prend aussi beaucoup de temps)Ruby ( fissuré par DLosc )
la source
p
quand j'ai copié le code. Craqué , alors.MATL . Coffre-fort , 93 points
Essayez-le en ligne!
Explication
Le défi était l' empreinte écologique du code source .
Le code calcule le poids de Hamming (nombre d'unités) dans la représentation binaire des codes ASCII de la chaîne d'entrée; sauf que la chaîne
test
sort0
(au lieu de son poids de Hamming, qui est17
).Le boîtier spécial de cette chaîne est un peu obscurci. Le programme calcule d’abord le tableau de différences consécutives des codes ASCII de l’entrée et l’inverse. Pour
test
cela donne[1 14 -15]
.Ensuite, le tableau formé par les premières
n
puissances de14
est calculé ([1 14 196 ...]
), oùn
est la longueur en entrée; et les premièresfloor(n/2)
valeurs sont conservées. Donc, pour l'entréetest
cela donne[1 14]
. La somme annulée est ajoutée à ce tableau, ce qui donne[1 14 -15]
pour l’entréetest
. Ceci est testé pour l'égalité avec le tableau inversé de différences consécutives qui a été précédemment obtenu.D'autre part, la somme des codes ASCII des caractères d'entrée est calculée et comparée à
448
, générée comme la différence (consécutive) des éléments dans le tableau[2^6 2^9]
(où^
dénote la puissance).L'entrée
test
est la seule chaîne avec des différences consécutives inversées de la forme[1 14 -15]
et de la somme448
. Les différences[]
ou[1]
(pour les chaînes inoyt plus courtes) ne sont pas compatibles avec une somme totale de448
. Des différences[1 14 196]
ou plus grandes ne peuvent pas être obtenues avec des caractères ASCII.Le code vérifie si le résultat du test pour la première condition (différences consécutives) n'est pas inférieur au résultat annulé de la deuxième condition (somme totale). Cela donne
0
si et seulement si les deux conditions sont remplies. Enfin, ceci est multiplié par le nombre de uns dans la représentation binaire des codes ASCII de l’entrée.la source
CJam ( coffre - fort , 21 points)
Ceci est un bloc anonyme (fonction).
la source
Python 3, ~ 2000 octets, (sans danger: 23 points)
Programme original
Défi
C’est en fait une réponse à mon propre défi, Primenary Strings . J'ai choisi cette option car presque tout sera en sortie
0
, à l'exception de quelques entrées dans lesquelles un voleur aurait peu de chances d'entrer. Le code est un algorithme simple, mais fortement obscurci (à la main).la source
Pip , 13 octets
Essayez-le en ligne (donnez l'entrée comme arguments, pas comme entrée).
la source
JavaScript, 533 octets, fissuré! par Dave
Ce n’est pas mon obscurcissement préféré, mais c’est plutôt chouette. Appeler comme
RESULT(inputs)
.Je pourrais attribuer une prime de +50 points si vous expliquez en détail ce que mon code fait avec votre crack. (Ils ne doivent pas nécessairement être ensemble, alors n'hésitez pas à FGITW si cela vous convient.)
la source
Pyke, 3458 octets, SAFE , score 99
Essayez-le ici!
Il y a quelques (30)
0x1b
octets qui semblent avoir été mangés par SE.la source
Octave, 40 points. SÛR
Réponse légèrement obscurcie à un défi assez populaire.
Je recommande de tester ceci sur octave-online . Ideone n’est pas très bon quand il s’agit de STDIN.
C'était le défi 2015 du simulateur de levier. Entrée sur le formulaire
'123^32
. La sortie sera-1 0 1
pour Gauche-lourd, Équilibré et Droite-lourd dans cet ordre.Cela ressemble à ceci quand il est complètement joué au golf :
Cette sortie
-Inf, NaN, Inf
pour L, B, R respectivement.la source
Haskell, SAFE
Essayez-le sur Ideone . "Usage":
Dans le défi String Shenanigans, on attribue à une chaîne une chaîne et deux caractères, qui doivent ensuite remplacer chaque occurrence du premier caractère par le second. Cependant, l'entrée est une chaîne contenant uniquement la chaîne réelle entre guillemets et les deux caractères séparés par des espaces:
la source
TeX, 240 bytes, SAFE , score 129
Enregistrez sous
jeopardy.tex
, puis exécutezpdftex jeopardy.tex
et ouvrezjeopardy.pdf
.Résultat: un PDF avec le texte
N
(et le numéro de page 1).la source
Python 3, fissuré!
Ecrire cela était hilarant, même si c'était facile à craquer à la fin :)
la source
(sum([x%4<1 for x in range(min(D),max(D))]))
Pyth - fissuré par le maltysen
Si cela aide, Pyth n'est pas l'une des réponses au défi caché.
Essaye le!
la source
C #, 91 octets
la source
Mathematica, 161 octets
la source
BrainFuck - 140 Bytes, fissuré par daHugLenny
Essayez-le ici!
la source
C ++ 14, fissuré
Prend un nombre varié de paramètres et retourne a
vector<int>
.Usage:
la source
g++
et si votre version n'est pas au moins6.2
ou quelque chose dont vous avez besoin-std=c++14
Mathematica, 34 octets, fissuré
Fonction nommée (
±
).la source
Ruby, 50 octets
sortie:
400
la source
Python 2.7, 45 octets
Indice (ou peut-être pas): "le poisson utilise numpy."
2016.11.23 - deuxième indice: "Ne laissez rien flotter!"
la source