C'est le fil qui accompagne le défi principal Déchiffrer le code source . Si vous pensez avoir réussi à déchiffrer une des réponses du flic, vous devriez poster votre solution comme réponse à ce fil.
Pour rappel, vous avez une tentative de casser chaque soumission. Votre tentative de cracking sera une version non cryptée du code source. Si votre proposition correspond à la description (mêmes caractères, même résultat, et bien sûr, votre langue) et que vous êtes la première proposition correcte, vous gagnez un point. Il est important de noter que votre programme ne doit pas nécessairement correspondre exactement à l'original, utilisez simplement les mêmes caractères et disposez des mêmes fonctionnalités. Cela signifie qu'il pourrait y avoir plus d'une bonne réponse.
Le voleur avec le plus de points (réussies) gagne.
Classement
Trop de solutions
- Martin Büttner: (Python 3, 16, matsjoyce) , (CJam, 15, Ypnypn) , (Mathematica, 29, Fox Wilson) , (JavaScript, 15, Caridorc) , (CJam, 52, user23013) , (Pyth, 11, isaacg) , (PHP, 22 ans, kenorb) , (PHP, 13 ans, kenorb) , (Ruby, 17 ans, poignée de porte) , (PHP, 49 ans, bwoebi) , (Mathematica, 35 ans, Tally) , (GolfScript, 13 ans, Peter Taylor ) , (JavaScript, 25, Cris) , (JavaScript, 29, Cris) , (JavaScript, 26, Cris) , (Bash, 33, Debasis) , (JavaScript, 10, Cris), (Lua, 28 ans, ChipperNickel) , (Mathematica, 18 ans, Arcinde) , (JavaScript, 30 ans, Qwertiy) , (CJam, 13 ans, user23013) , (JavaScript, 41 ans, Ismael Miguel) , (Ruby, 38 ans, Porte.) , (Marbelous, 36 ans, es1024) , (PHP, 33 ans, Ismael Miguel) , (JavaScript, 29 ans, Joe) , (JavaScript, 28 ans, Shawn Holzworth) , (Ruby, 35 ans, histocrat) , (CJam, 19 ans, Ypnypn) , (Ruby, 17 ans, Stephen Touset) , (JavaScript, 36, MegaTom) , (JavaScript, 24, fogcityben) , (Python 3, 21, Réticalité) ,(JavaScript, 10, Jamie Barker) , (JavaScript, 15, Jamie Barker)
20 résout
- feersum: (Python 3, 44, Sp3000) , (C, 70, es1024) , (MATLAB, 41, COTO) , (Brainfuck, 118, Sp3000) , (C, 30, Ethiraric) , (C, 28, Mig) , (Python 3, 46, hosch250) , (Java, 70, Rodolvertice) , (C, 29, imallett) , (Java, 226, nhahtdh) , (Little Man Computer, 63, Le loup) , (Python 2, 89 , Beta Decay) , (Python 2, 41, Muddyfish) , (C, 63, es1024) , (C ++, 192, Arcinde) , (Java, 108, durron597) , (C #, 604, eshansingh1) ,(C, 44, Art) , (Java, 134, Olavi Mustanoja) , (Bash, 47, Vi.)
15 résout
- user23013: (CJam, 18 ans, Ypnypn) , (JavaScript, 26 ans, hsl) , (CJam, 12 ans, COTO) , (PHP, 23 ans, bwoebi) , (PHP, 54 ans, Steve Robbins) , (CJam, 32 ans, Dennis) , (CJAM, 19, Martin Büttner) , (bash, 23, le loup) , (Ruby, 33, Doorknob) , (CJAM, 34, Dennis) , (JavaScript, 82, Ismael Miguel) , (PHP, 80, Ismael Miguel) , (QBasic, 43, DLosc) , (QBasic, 42, DLosc) , (ECMAScript, 90, Cris)
10 résout
- ossifrage délicat: (Python, 44, Caridorc) , (PHP, 52, PleaseStand) , (Befunge-93, 17, user23013) , (BBC BASIC, 187, Beta Decay) , (C, 43, Allbeert) , (Ruby, 58, Rodolvertice) , (JavaScript, 32, hsl) , (PHP, 33, kenorb) , (Python 2, 16, imallett) , (PHP, 53, PleaseStand)
- Sp3000: (Python, 154, Fox Wilson) , (Python, 48 kg) , (Python, 68, cornes) , (Python 2, 38, FryAmTheEggman) , (Python 2, 57, FryAmTheEggman) , (Python, 74, xnor) , (JavaScript, 66, Cris) , (JavaScript, 70, Cris) , (Python 2, 37, Muddyfish) , (Python, 55, FireFly)
7 résout
- grc: (Python 2, 61, FryAmTheEggman) , (Perl 5, 47, chilemagic) , (Python, 69, Sp3000) , (Perl, 39, GentlePurpleRain) , (Perl, 36, ossifrage criard) , (Python 3, 110 , Sp3000) , (C, 53, FireFly)
5 résout
- hsl: (CoffeeScript, 25 ans, Martin Büttner) , (Golfscript, 20 ans, Josiah Winslow) , (Lua, 18 ans, user3155415) , (Python, 54 ans, kgull) , (Arithmétique, 31 ans, Cris)
- PleaseStand: (PHP, 14, Tryth) , (C ++, 56, hosch250) , (PHP, 21, kenorb) , (QBasic, 37, DLosc) , (JavaScript, 46, FireFly)
4 résout
- bwoebi: (PHP, 52, Kenorb) , (PHP, 30, Tryth) , (PHP, 27, Kenorb) , (PHP, 44, Kenorb)
- FireFly: (JavaScript, 94, Shawn Holzworth) , (Python, 34, Sp3000) , (Brainfuck, 39, Mig) , (JavaScript, 69, Shawn Holzworth)
3 résout
- Optimiseur: (JavaScript, 61, jsh) , (JavaScript, 47, palerdot) , (JavaScript, 42, Shawn Holzworth)
- es1024: (PHP, 46, Ismael Miguel) , (shell Python, 15, xnor) , (shell Python, 21, xnor)
- DLosc: (Python, 41 ans, Sp3000) , (Ruby, 37 ans, Rodolvertice) , (CJam, 14 ans, User23013)
2 résout
- xnor: (Python 3, 37, matsjoyce) , (Python 2, 29, Dennis)
- Daniel Wagner: (Haskell, taille 34, Petr Pudlák) , (Haskell, 42 ans, fier haskeller)
- nneonneo: (Python, 41 ans, Sp3000) , (C, 43 ans, FryAmTheEggman)
- Art: (C, 51, es1024) , (C, 48, es1024)
- n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳: (Java 6+, 101, Rodolvertice) , (Java, 97, Olavi Mustanoja)
1 résoudre
- Ypnypn: (Python 2, 50, Geobits)
- matsjoyce: (Python 3, 12, xnor)
- utilisateur1354557: (Python, 56 ans, Fox Wilson)
- Dennis: (CJam, 20 ans, Martin Büttner)
- isaacg: (Pyth, 71 ans, FryAmTheEggman)
- ConMan: (SAS, 17 ans, utilisateur 3490)
- Arcinde: (JavaScript, 285, Beta Decay)
- Shawn Hotazworth: (Javascript, 82, TrungDQ)
- nooodl: (Ruby, 49 ans, poignée de porte)
- Bhante Nandiya: (Python 3, 37, Sp3000)
- Geobits: (APL, 17, user23013)
- histocrate: (Ruby, 23 ans, MegaTom)
- ProgramFOX: (Python, 13, Réticalité)
la source
Réponses:
CJam, taille 20, de Martin Büttner
Essayez-le en ligne.
Comment ça marche
Casser le code
La sortie souhaitée
2.956177636986737
, est soit un double, soit un double suivi d'un long.En utilisant uniquement les caractères
"Stop, Hammer time!"
, quatre opérateurs intégrés renvoient des doublons non entiers:mS
, lequel estasin
ma
, lequel estatan2
me
, lequel estexp
mt
, lequel esttan
Tous contiennent un
m
, nous pouvons donc en utiliser au plus trois. Il n'y en a qu'unS
et una
.Tous ces opérateurs ont besoin d'input et
ma
sont le seul à consommer deux intrants. Nous n'avons que trois façons de pousser Longs:"...",
, ce qui pousse la longueur de la corde (strictement inférieure à 18).H
, ce qui pousse 17....!
, ce qui pousse le NON logique de...
.Nous n'avons aucun moyen de pousser quelque chose de faux comme
...
, donc la dernière option poussera toujours 0.La sortie ne commence ni ne finit avec
17
ou0
. Comme le nombre habituel de chiffres pour un double est de 15 chiffres décimaux, il est probable que la sortie est un simple double.Dans ce cas, le code doit appartenir à l'une des catégories suivantes:
<Long> <mS|me|mt>{1,3}
<Long> <mS|me|mt>{x} <Long> <mS|me|mt>{y} ma <mS|me|mt>{z}
.i
) ou en arrondi (mo
) appliqué à un double.Dans le second cas,
x + y + z
vaut 1 ou 2 et l’un des longs est 0 ou 17.Le reste était essentiellement de la force brute. Après quelques essais,
retourné
9
, ce qui signifie queproduit la sortie désirée.
Tout ce qui reste à faire est d'éliminer tous les caractères sauf 9 de la chaîne. Les espaces sont noops et
i
sont un noop sur Longs,"petStorm!"
un choix est donc possible.la source
mr
avant de prendre la longueur. Non pas que vous ne l'auriez pas compris aussi bien à un moment donné. ;)Python 3, taille 12, par xnor
Ne fait rien (l'expression produit un tuple vide, qui n'est pas imprimé). Cela fonctionne en raison d'une évaluation de court-circuit.
la source
()
.print
.bciprt
n'est jamais exécuté, il ne génère donc jamais de NameError.Python, taille 74, par xnor
C'était amusant. Merci à FryAmTheEggman, hosch250 et isaacg pour leurs suggestions et leur aide.
la source
list(\nprint(range is range)for aacdeeeeehmppprrrrssvwy in\noct(int is int))
.Python 2, taille 50, par Geobits
Sorties 42.
la source
print 2**2**2**2/2**2**2/2**2**2/2-2**2**2*2**2-22
, mais il n'est pas surprenant du tout que plus d'une option est correcte.GolfScript, taille 13, de Peter Taylor
Testez-le ici.
Un autre, que je n'ai craqué qu'avec une grande aide de Sp3000. Merci!
Alors voici comment nous en sommes arrivés là. Sp3000 a remarqué plusieurs séries de nombres consécutifs dans la sortie:
Sur la base de cette hypothèse, nous avons supposé qu'il s'agissait d'une séquence croissante, qui ne permettait qu'un seul fractionnement possible des nombres restants:
C’est 23 chiffres, ce qui est un indicateur fort de la répétition du bloc 22 fois, ainsi que de terminer le bloc avec
.
(élément dupliqué de la pile supérieure), de sorte que le résultat précédent soit laissé sur la pile et que la dernière itération apparaisse sur la pile deux fois. Ça c'est22,{____.}/
.Maintenant, en regardant les trous, ils s’avèrent être des 4ème pouvoirs (ce qui est bien, parce que nous avons
4
et?
) Plus précisément, ils sont la quatrième puissance de l'indice du nombre actuel. Nous avons ensuite examiné quels indices créaient un écart:En binaire ce sont
Ils ont tous le troisième bit défini, ce qui signifie que l'index est probablement juste au niveau des bits
4
(ce qui est bien, parce que nous pouvons en créer un autre4
avec.
a&
). Cela fonctionne particulièrement bien, car cette opération aboutit à soit,0
soit à4
, et si nous utilisons cela comme exposant, nous obtenons un1
ou quatre pouvoirs, ce qui est exactement ce dont nous avons besoin. Alors mettons cela ensemble:Voici ce que fait le bloc:
Maintenant, il restait deux problèmes: nous avions un vagabond que
,
nous n'avions pas encore utilisé, et la première itération est un cas spécial, en ce sens qu'il n'y a pas de valeur d'une itération précédente à laquelle nous pourrions ajouter des choses quand nous les rencontrons+
. Nous avons constaté que, grâce à un commentaire sans lien de la part de user23013, qui avait fait remarquer que GolfScript commençait avec une chaîne vide sur la pile (s'il n'y avait rien sur STDIN). Nous pourrions donc utiliser cet autre,
droit au début pour transformer cette chaîne en un0
, ce qui était exactement ce dont nous avions besoin au début de l'itération.la source
Python 3, taille 16, par matsjoyce
la source
Rubis, taille 17, par la poignée de porte
C'était très amusant. Merci à Sp3000 de m'aider avec ça! Et j'ai appris que les
%r?...?
littéraux peuvent avoir des délimiteurs. :)la source
print
, seulement pour le scinder en deuxp
pour l'impression, les%r
expressions rationnelles et lai
correspondance des expressions rationnelles sans distinction de casse.PHP, taille 49, par bwoebi
C'était absolument mental .
Il faut
assez rapidement, à quel point j'avais besoin de quelque chose qui donne
-6
après la virgule, étant$++$++$++$+=$~main$2
parti.Le principal problème est que
$a
,$m
et$i
sont tousNULL
, donc les utiliser indirectement dans des variables variables signifie qu'ils pointent tous vers la même variable. Cependant, PHP semble faire des choses étranges sur la résolution des variables variables. Avec des variables normales, vous pouvez faire des choses commequi imprime
4
(le2
est assigné$a
puis ajouté à lui-même). Mais si je fais la même chose avec les variables variables:Je reçois
2
, parce que maintenant le premier$$a
est évaluer avant la cession.En fin de compte, j'ai réussi à imposer un ordre en mettant quelques incréments sur le RHS
+=
qui devaient être évalués avant cette addition-affectation. De cette façon, je5
pouvais simplement compléter mon travail. Pourtant… il se passe des choses mystérieuses et je ne sais pas pourquoi la moitié des choses que j'ai essayées ont fonctionné et n'ont pas fonctionné.la source
print@substr(new exception,~$$mn+=2+$$a+++$$i++);
main
étaient dans la chaîne vous induisent en erreur. En outre, une méthode plutôt inhabituelle pour extraire{main}
, je pense ;-)main
ne m'a pas vraiment induit en erreur, après avoir repéréexception
,new
etsubstr
. Je pensais qu'ils ne seraient que des noms variables. Il m’a fallu un peu pour arriver à utiliser des variables variables et que j’ai passé la plupart du temps à déterminer un ordre d’opérations qui produirait un résultat5
que je pourrais compléter sans utiliser un autre jeu de parenthèses.exception
était évident, ce qui laissait des caractères errantssubstr
etnew
traînants. C'était littéralement la première chose que j'ai vue en commençant à travailler dessus.Rubis, taille 38, par la poignée de porte
Je suis à peu près sûr que cela est loin de la source originale. C'est déterministe malgré l'utilisation
rand
.Voici comment celui-ci fonctionne.
$><<
est juste sortie.$pece60
et$win
sont des variables globales non définies, qui sont donc justesnil
(et elles m'ont permis de supprimer certains caractères superflus).!$pece60
fait untrue
etto_s
donne la chaîne"true"
.Pendant des années, j’ai essayé d’obtenir un
2
ou-2
d’y accéderu
, mais j’ai alors réalisé que je pouvais prendre let
, et appeler.succ
(essor) dessus pour en faire unu
.rand
avec unnil
paramètre renvoie un nombre aléatoire dans l'intervalle [0,1). Lorsque vous utilisez des éléments flottants pour indexer des chaînes, elles sont tronquées en entiers, ainsi le premier caractère est toujours renvoyé.Enfin, j'avais une paire de rechange,
[]
alors je viens de tout emballer, car heureusement, tout est une expression en Ruby.Merci à Sp3000 pour avoir lancé quelques idées dans le chat.
la source
C, 51 par es1024
Après 20 ans de programmation en C, j'ai découvert les constantes hexadécimales à virgule flottante.
la source
Ruby, 45 ans (histocrate)
Woohoo! C’est ma première tentative face à un problème de golf, et je n’ai pas assez de représentants pour commenter le message original. J'ai tout de suite reconnu le truc utilisé, car j'ai souvent trouvé son utilité dans le code de production. Il a fallu environ 5 minutes pour comprendre la majeure partie de la structure et quelques heures pour trouver la réponse complète.
Explication:
%q[]
est une méthode alternative pour créer des chaînes. Les parenthèses et les accolades peuvent également être utilisés.String#to_i
in Ruby accepte les nombres de toutes les bases de 2 à 36. Il ignorera le premier caractère de la chaîne qui ne fait pas partie du nombre, de sorte que tous les caractères supplémentaires peuvent être "jetés" après l'espace.Et voici le code que j'ai utilisé pour le déchiffrer:
Chemin à parcourir pour intégrer un problème de NP dans une énigme. J'ai été complètement victime de nerd. Bon travail!
la source
p
à avant l'expression. On peut supposer que les caractères restants peuvent être utilisés pour former les constantes comme vous l'avez fait.p %q[zyfnhvjkwudebgmaclrsx].to_i(36)/51074892
je sais que j'ai brisé ma tentative de cracking réelle :)Coquille en python [toute] taille 44, de Caridorc
Je suis sûr qu'il était supposé être plus compliqué que cela, mais comme cela
__name__
équivaut à__main__
, le 4ème caractère "a" est sélectionné et le reste de la ligne n'est jamais évalué.la source
[__name__ for ___name__ in range(1,4)][2][3]
Perl, taille 36, par ossifrage délirant
Un autre difficile.
la source
CJam, taille 13, par utilisateur23013
Testez-le ici.
Résolu à la main, comme ceci:
Tout d’abord, quelques informations pour les non-CJammers:
CEGIK
sont toutes les variables, qui sont pré-initialisé à12
,14
,16
,18
,20
, respectivement.s
convertit l'élément de pile supérieur en chaîne.f
est assez magique. Aux fins de cette réponse, la version simplifiée est que, pour un tableaua
, une autre valeurb
et un opérateurg
, la séquence desabfg
cartesg(_,b)
sura
(où chaque élément dea
passe dans la_
fente)./
est la division et la division des tableaux (entre autres).*
est la multiplication et la répétition de tableau (entre autres).%
est modulo et une opération étrange qui, sous la formead%
de tableaua
et d’entier,d
prend chaqued
élément th dea
(comme le découpage avec largeur de pas de Pythond
).#
est l'exponentiation (entre autres).,
transforme les nombres en plages (de0
àn-1
) et renvoie la longueur d'un tableau.Ok, ça se passe loin ...
Il était assez évident que nous devions
,
transformer un nombre en une plage, car la seule autre façon d’obtenir un tableau aurait été de construire un nombre plus grand et de le transformer en tableau de caractères avecs
- mais alors nous n’aurions pas pu le faire. plus d'arithmétique sur elle. Et nous avons besoin d'un tableau pour faire quelque chose avec lef
s.J'ai d'abord supposé que les
f
s étaient utilisés avec#
et%
, mais cela voudrait dire que nous aurions eu besoin d'un nombre d'environ 90 pour obtenir le nombre correct de chiffres à la fin. Et aussi, cela n’expliquait pas quoi faires
, et comme la réponse semblait vraiment gaie, je doutais que user23013 soit simplement ajoutés
comme un no-op efficace, quelque part pour jeter les gens.Donc, je me suis dit qu'il ne gardait peut-être même pas un petit nombre
%
, mais au lieu de cela, il construit un tableau d'énormes nombres, concatène leur représentation sous forme de chaîne avecs
, mais ne retient que quelques tranches bizarres%
. J'ai donc joué un peu avec le framework suivant:(Vous ne pouvez pas le faire en
_f/
premier, car cela donnerait zéro pour au moins les 12 premiers éléments.)Où
_
sont les permutations des variables. Je ne les ai pas toutes essayées avant de m'ennuyer, et le principal problème était que la séquence de chiffres résultante était toujours trop longue.À un moment donné, je me suis dit que nous n'aurions pas besoin d'une plage aussi large (le produit de deux nombres) si nous utilisions plutôt le
*
pour répéter la chaîne résultante. En raison de la discordance des paramètres de*
et%
cela ne donnerait aucune répétition dans le résultat:Cela a donné des résultats d'une longueur très proche de ce que je cherchais. J'aurais effectivement essayé tous les 240 d'entre eux, mais assez rapidement (troisième ou quatrième tentative), je suis tombé sur
qui donne
Et je me suis dit qu'une correspondance des six premiers chiffres ne serait pas une coïncidence. La question était donc de savoir comment le réorganiser sans perturber le calcul réel:
K
parce que cela choisirait des chiffres complètement différents.C
ouI
parce que cela changerait les nombres résultant des deux opérations de carte.G
cela ne changerait que le nombre de répétitions, ce qui ne ferait que changer la longueur du résultat. (Ce qui est bon.)E
cela changerait la plage du tableau, mais la plage commencerait toujours par[0 1 2 3 ...]
, donc cela n'affecterait pas le calcul. Il aurait une incidence sur la longueur de la chaîne de base retournée pars
, qui signifie également queK%
choisirait des chiffres différents sur des répétitions supplémentaires.Alors j'ai juste essayé d'échanger
E
etG
et le tour est joué:En résumé, voici ce que fait le code:
la source
APL, taille 17, par utilisateur23013
J'ai passé beaucoup trop longtemps à essayer de casser cela. Cela aurait probablement été plus rapide si j'avais su que l'APL entrait dans le pays.
Essayez ici
la source
Pyth, taille 11, par isaacg
C'est là un abus de bogue méchant. Cela compile pour:
Le bogue pertinent est que
\\
compile to"\"
au lieu de"\\"
, ce qui vous permet de compiler Pyth en une chaîne.la source
Pprint
êtreprint
, ou du moinspprint
?Python, taille 69, par Sp3000
C'était dur ...
la source
print(sum(map(ord,str((dict(list(((str(),str(dict())),))),list())))))
, mais évidemment, beaucoup de permutations différentes de mots-clés fonctionneraient.Python 3, 37 octets, par Sp3000
De manière embarrassante, le plus difficile était de loin de trouver comment convertir la chaîne en octets. J'ai dû dormir dessus et dans la nuit, j'ai réalisé: "C'est un octet littéral!"
la source
PHP, 53, par PleaseStand
Il a finalement craqué:
La solution est venue assez rapidement lorsque j'ai remarqué que la séquence consistait en une alternance de nombres décimaux et octaux:
En outre, les intervalles entre chaque ensemble de nombres ont augmenté à un taux égal à la valeur renvoyée par
printf()
(c.-à-d. Le nombre de caractères écrits).la source
Python 2, taille 132, par Vi.
Merci pour les barres obliques inverses et les guillemets :)
Edit: La version 96 caractères mise à jour:
Ceci est entièrement repris de la solution d'Alex dans https://codegolf.stackexchange.com/a/41451/32353
la source
fgiillmmooprrsstt
ou,,,\016:::S[]____tuuvyy
.exec
? Mon code aurait dû être plus court ... Je l'imitais aveccompile
+eval
parce que j'avais oubliéexec
...CJam, taille 15, par Ypnypn
D'après les caractères donnés, j'ai supposé qu'il devait s'agir de l'une des trois formes suivantes:
qui crée une plage de deux chiffres, puis mappe une addition et une opération modulo (dans l’un ou l’autre) sur la plage, avant de la sommer. Je viens donc de commencer avec le premier et j'ai systématiquement essayé les permutations des
6789
trous.la source
PHP, taille 52, par PleaseStand
Cela s'est avéré être assez facile à la fin. La sortie est très aléatoire, et les personnages
m
,t
,_
,r
,a
,n
etd
tout est apparu deux fois ...la source
Python 2, taille 61, par FryAmTheEggman
Je serais très surpris si cela correspond à l'original.
la source
print''.__doc__[::2][::3].split()[1].split('.')[0][:-~-~True]
dir()
de trouver le "get". Et oui, cela aurait été très difficile sans les citations.Python 3, Sp3000, taille 44
Python 3 m'a aidé ici car j'ai pu provoquer une erreur (décalage
None
vers la gauche de quelque chose) après avoir imprimé la réponse.la source
print(~(~(()<())<<((()<((),))<<(()<((),)))))
origine.PHP, taille 52, par kenorb
(Mon dieu, combien de temps il m'a fallu pour comprendre quoi faire avec le
_r
suffixe restant . Jusqu'à ce que j'ai remarqué que ce n'était pas le casprint
, maisprint_r
...)la source
_:print_r(chr(3*pow(2,5)+@++$i));if(@$i<4<<1)goto _;
.echo
impossible;print
est resté; b) vous avez besoin d'une boucle, mais pour unefor
boucle, il n'y avait pas assez de points-virgules, et bien, il y a un colon ... donc probablement une étiquette associée à goto; c) alors il faut un if pour abandonner la boucle goto. Ayant maintenantX:print($Y);if($Y)goto X;
(X et Y étant des espaces réservés); d) il y a un++
, mais non=
, donc probablement++$Z
de 1 à 8; e) pour obtenir des lettres d'un entier, nous avons besoinchr()
(généralement) - c'était là; f) maintenant je devais juste trouver les nombres 96 et 8 pour chr et if. Puis remplissez les espaces réservés et volià.PHP, taille 54, par Steve Robbins
Pas la solution originale, je pense.
la source
echo
et lewhile
, mais je ne pouvais pas être dérangé pour trouver une boucle qui en produit 42.while
dans mon original.C, es1024, longueur 70
La partie difficile a finalement été de garder une trace de tous les personnages inutiles ... sérieusement ... je devais les refaire environ 10 fois. Le seul qui m'inquiète était le
.
mais je l'ai quand même collé au milieu de laprintf
chaîne de format et il est devenu invisible!la source
Python 3, taille 110, par Sp3000
C'était amusant :)
la source
Haskell, taille 34, de Petr Pudlák
Notez que ce programme doit être exécuté sur une machine 32 bits. Si vous voulez vérifier que c'est le bon programme et que vous avez une machine 64 bits, vous pouvez utiliser ceci à la place:
Il était assez facile de deviner le "cadre" du programme
main=print(0x<hex digits>^0x<hex digits>::Int)
. Toute la magie consistait à chercher le bon moyen de partitionner et de commander les chiffres. Je ne faisais pas très intelligent ici, juste une recherche de force brute ... même si j'ai pris soin d'abuser du fait que certains chiffres étaient dupliqués, il y avait probablement à peu près le même nombre de chiffres dans la base et l'exposant, et le dernier chiffre de la base n'était certainement même pas. Le code de recherche complet est inclus ci-dessous; il utilise le paquet multiset-comb . La recherche complète prend environ 10h33 sur ma machine (et ne produit qu'une seule bonne réponse, bien sûr).la source
Javascript, 82, de TrungDQ
Il a fallu une éternité pour obtenir les index corrects.
la source