Ceci est un puzzle de flics et de voleurs , le fil des flics peut être trouvé ici.
Votre tâche sera de trouver une anagramme des programmes fournis dans le fil des flics qui effectue son inverse gauche.
Une fois que vous avez craqué une réponse, publiez la solution comme réponse ci-dessous et informez le répondeur d'origine.
Vous serez noté sur le nombre de programmes que vous êtes le premier à cracker.
permutations
source-layout
cops-and-robbers
Post Rock Garf Hunter
la source
la source
f=
au début de votre code car il n'est pas nécessaire et ne fait pas partie de la fonction d'originePython 2, 225 octets, orlp
Je suppose que j'ai eu de la chance après avoir deviné des diviseurs premiers aléatoires toute la journée ...
(La limite de spot par défaut c4.8xlarge est de 4, mais j'ai réussi à la ramener à 10 l'année dernière. J'ai dû modifier la configuration FAAS de 16 esclaves à 6 (+3 mpi, 1 maître). 20m polyselect, 12h 50m tamisage, 2h 25m linalg, 30m sqrt. Coût total ~ 70 $. Au moins @orlp était assez sympa pour choisir une taille soluble, mais je ne recommence pas! Merci à @IlmariKaronen pour la dernière étape, et oui je plaisante sur le deviner: P)
la source
Python 2, 83 octets, orlp
Original:
Fissure:
Essayez-le en ligne!
Craquage RSA effectué par Wolfram Alpha . ;)
la source
~p*~q
c'est plus court que-~p*-~q
, oups.(p*q-2*(p+q))/4
pièce? :)p/2
etq/2
étaient tous les deux des nombres impairs, et un tas d'essais et d'erreurs pour trouver quelque chose qui fonctionnerait en utilisant les caractères disponibles.p
etq
(les vrais, celui dans le code sontp-1
etq-1
à des fins de golf) tel qui(p-1)/2
est primordial pour nousφ(φ(pq)) = ((p-1)/2-1)((q-1)/2-1)
. Cela nous permet de calculer l'inverse modulaire de65537
modφ(pq)
(ce dont nous avons besoin pour RSA) en utilisant l'identité d'Euler, ce qui rend la réponse beaucoup plus courte car nous n'avons pas besoin d'implémenter une logique inverse modulaire ou de coder en dur une autre grande constante. Hormis le-~q*-~p
->~q*~p
, vous avez trouvé exactement ma fonction :)φ(φ(pq)) = 2((p-1)/2-1)((q-1)/2-1)
pour des nombres premiers sûrsp
etq
, parce queφ(4) = 2
. Maisλ(φ(pq)) = lcm(2, (p-1)/2-1, (q-1)/2-1)
est tout au plus((p-1)/2-1)((q-1)/2-1)/2
, et tout multiple de cela, moins un, fera l'affaire pour l'exposant. :)Python 3, 80 octets, Wolfram
C'était vraiment difficile à casser! J'utilise la bibliothèque bisect , qui est incluse dans la distribution Python 3. La
bisect
fonction prend une liste triée et un élément, et retourne l'index le plus à droite où l'élément pourrait être inséré pour maintenir l'ordre. Nous lui donnons simplement laq
liste des carrés à partir de1
et l'élémentq
.la source
(h+1)
pour-~h
. Ensuite, j'ai réalisé que ce n'était pas le but de ce défi: P**
a une priorité plus élevée qu'en~
Python. Je suppose que c'est mieux que dans JS, où-~2**2
jette une erreur de syntaxe ("l'expression unaire non parenthèse ne peut pas apparaître sur le côté gauche de '**'").**
opérateur, ajouté dans ES2017)Javascript, 21 octets, Arnauld
Original
Fissure
Renvoie la racine du cube.
la source
7, 9 octets, ais523
Parce que la force brute gagne toujours, et 9! est seulement 362880
la source
Processing.js, 59 octets, Kritixi Lithos
Original:
Fissure:
Eh bien, c'était assez facile. La partie la plus difficile a été de savoir où coller les virgules et les astérisques supplémentaires. Heureusement, il semble que Processing autorise des paramètres de fonction supplémentaires non utilisés ainsi que des expressions de virgule de style C.
la source
JavaScript (ES6), 63 octets, SLuck49
Original:
Fissure:
Le code base64 ci-dessus décode pour:
où le
...
représente un tas d'ordures aléatoires qui est ignoré par l'interpréteur JS, car il est dans un commentaire.J'ai trouvé cette solution par essais et erreurs. En fin de compte , la seule partie vraiment difficile étaient les deux nouvelles lignes au début du code, nécessaires pour rendre la ligne de repos correctement et pour obtenir le
M
dansMath
de base64 encode en quelque chose qui était disponible dans le jeu de caractères d' origine. J'ai d'abord essayé les espaces, mais" M"
base64-encode dans"ICBN"
et j'avais besoin du seul disponibleB
pour encoder".po"
plus tard dans le code."0+M"
,"1*M"
,"1?M"
Ou tout autre préfixes sans op semblables que je pouvais penser ne fonctionnait pas non plus , mais les nouvelles lignes ont fait.Je soupçonne que ce n'est peut-être pas exactement la solution prévue, mais peu importe - cela fonctionne. :)
Démo:
la source
Brain-Flak, 26 octets, Assistant de blé
Original (ajoute 13)
Crack (soustrait 13)
la source
J, 8 octets, miles
Échange simple de
+:
for-:
(double for half).la source
[:[+:]-:
.Javascript, 15 octets, insertusernamehere
Original
Fissure
la source
Python 2, 47 octets, Assistant de blé
la source
JavaScript (ES6), 46 octets, SLuck49
Original (calcule ln (x + 1))
Fissure
Je n'aurais jamais craqué cela si je n'avais pas réalisé que l'inverse est
Math
intégré .(lg=19979699+55686).toString(9+25)
est juste une façon compliquée de revenir"expm1"
.la source
expm1
et j'ai dit "Attendez, c'est une chose?"J, 10 octets, miles
Je dois écrire quelque chose ici parce que la réponse est trop courte.
la source
J, 29 octets, Zgarb
Original
Fissure
Essayez-le en ligne!
Un autre équivalent de crack est
Explication
la source