C'est le fil des voleurs de ce défi
Les flics choisissent une séquence OEIS et écrivent deux programmes complets dans deux langues différentes qui produisent ce nième élément de la séquence lorsqu'ils reçoivent un n via STDIN. Les deux programmes doivent être des anagrammes l'un de l'autre, ce qui signifie que chacun peut être réorganisé à partir des lettres de l'autre.
Ils présenteront le nombre OEIS, le code source et le nom d' une langue est en.
Vous devez trouver une anagramme de la soumission originale du flic qui s'exécute dans une langue autre que celle utilisée par le flic. Pour déchiffrer une réponse, vous ne devez trouver que la langue et le programme qui produisent la séquence et est une anagramme de l'original, pas nécessairement la réponse à laquelle le flic pensait.
Vous pouvez sortir par code de caractère ou inclure STDERR dans votre solution, mais seulement si le flic a indiqué que sa solution cachée le fait. La sortie décimale vers STDOUT est toujours une fissure valide.
Ainsi, les flics sont incités à faire en sorte qu'il soit aussi difficile que possible de trouver une langue qui fait la tâche en utilisant leur liste de symboles.
Notation
La personne avec le plus de fissures sera la gagnante de cette section. Seule la première fissure pour chaque solution comptera pour son score.
Classement
Un grand merci à tous ceux qui ont participé à ce défi.
Voici le tableau des leaders tel quel
Place User Score
-----------------------------
1 Adnan 3
1 Kritixi Lithos 3
1 Emigna 3
1 milk 3
5 Steven H. 2
5 Wheat Wizard 2
5 jimmy23013 2
8 ETH Productions 1
8 Dennis 1
8 alleks 1
8 Martin Ender 1
8 Oliver 1
8 Conor O'Brien 1
la source
Réponses:
05AB1E , 38 octets, Loovjo , A000290
Essayez-le en ligne!
Très probablement pas la solution prévue, mais cela fonctionne.
Explication
la source
1.0 is not a number
? Pourriez-vous s'il vous plaît développer?is_number
vérifie que le nombre est uniquement composé0-9
. Comme ce.
n'est pas un nombre, il devient faux. La fonction pourrait utiliser un nom plus descriptif :)Jolf, 15 octets, Adnan , A000290
Essayez-le ici! Certainement pas la solution prévue, mais bon, ça marche.
Explication
la source
05AB1E , 49 octets, Wheat Wizard , A000290
En fait la même approche que le crack d'Emigna: p.
Explication:
Essayez-le en ligne!
la source
05AB1E , 35 octets, Oliver , A000290
Les flics devraient arrêter de publier des
n^2
défis en python ...Essayez-le en ligne!
Explication
la source
2sable , 7 octets, Kritixi Lithos , A005843
Code:
Explication:
Essayez-le en ligne!
la source
Hexagonie , 13 octets, Adnan , A002378
Essayez-le en ligne!
Déplié:
Pas à 100% que ce soit l'original, car le coin supérieur gauche
\
n'est pas utilisé.Ce ne
<\>
sont que des miroirs, donc le programme est en fait entièrement linéaire:la source
V , 13 octets, DJMcMayhem , A002275
Essayez-le en ligne!
Cela pourrait être la première solution dans la langue souhaitée par l'auteur.
Explication
la source
This might be the first solution in the language the author intended.
Repérez. :)2sable, Conor O'Brien , A000290
Essayez-le en ligne!
Je ne sais pas comment cela fonctionne, il n'y a vraiment qu'un seul programme qui réponde aux exigences et je viens de me forcer à trouver la langue dans laquelle il fonctionnait.
Après avoir parcouru les documents, je suis en mesure de trouver une explication:
la source
Pyth , 26 octets, Steven H. , A023443
Code:
Essayez en ligne .
Assez simple:
la source
Python 3, 118 octets, ETHproductions, A042545
Testez-le sur Ideone .
Soumission de flic
Qu'est ce qui est different
La soumission du flic ne fonctionne pas dans Python 3 pour deux raisons.
La fonction d' entrée de Python 2 évalue automatiquement une ligne d'entrée, tandis que l'homologue de Python 3 renvoie simplement la ligne sous forme de chaîne. Nous pouvons simplement appeler int pour résoudre ce problème.
print
était une instruction en Python 2, mais c'est une fonction en Python 3. En particulier, cela signifie que nous devons entourer son argument de parenthèses.Cela signifie que nous avons besoin de
int()
et()
, mais ces personnages ne font pas tous partie du commentaire. Cela signifie que nous devons apporter quelques modifications.Au lieu de la fraction s , nous gardons une trace de 1 / s .
L'initialisation de s -
s=1/(801**.5-28)
- devients=801**.5-28
, la sauvegarde des caractères1/()
.Le facteur d' un [-1] dans la mise à jour d' un -
int(s)
- devientint(1/s)
, coûtant les caractères1/
.La mise à jour de s -
s=1/(s-int(s))
- devients=1/s-1//s
, coûtant les personnages1//
, mais sauvegardant les personnages(int())
.Les caractères enregistrés
()(int())
couvrent ceux dont nous avions besoin pour porter le code sur Python 3, mais leur obtention nous a coûté1//
. Nous pouvons tirer//
du commentaire, mais nous devrons enregistrer1
ailleurs.Une façon (la seule?) D'économiser le nécessaire
1
est de remplacer le1
dans l'initialisation d' un avec0==0
. Cela coûte ces quatre caractères, mais nous pouvons tirer00
du commentaire.Jusqu'à présent, nous avons le code suivant.
Pour récupérer l'un des
=
nous "devons", nous pouvons réécrire l'initialisation de s et de a avec une seule affectation: ens,a=801**.5-28,[0,0==0]
outre, cela enregistre un;
et coûte un,
, qui peut être ajouté et supprimé du commentaire.La seconde
=
peut être sauvegardée en ne stockant pas l'entrée dans une variable, c'est-à-dire en écrivant à larange(int(input()))
place, en enregistrant les caractèresi=
. Nous utilisons également i après la boucle, mais le i ème élément de a est juste le deuxième à partir de la droite, nous pouvons donc le remplaceri
par-2
. Pour la même raison,a[-2]
le corps de la boucle peut être remplacé pari
.Nous avons maintenant une permutation dans le code Python 3 fonctionnel:
Cependant, ce code fonctionne également en Python 2! Une façon de résoudre ce problème consiste à remplacer
print(a[-2])
par(print(a[-2]),)
; nous avons les personnages dont nous avons besoin dans le commentaire. Comme mentionné précédemment, print est une fonction en Python 3, donc cela construit le tuple ( None ,) . Cependant, l' instruction print de Python 2 est une SyntaxError dans un littéral de tuple.la source
CJam, 39 octets, lait , A000007
Essayez-le ici.
la source
Pyth, 7 octets, Luis Mendo , A000217
Comme demandé, le programme se
p
ferme avec erreur après avoir imprimé la bonne réponse.Essayez-le en ligne ici !
la source
05AB1E , 12 octets, tuskiomi , A000012
Essayez-le en ligne!
Explication
la source
05AB1E , 38 octets, Conor O'Brien , A000290
Essayez-le en ligne!
Explication
Ceci est basé sur le crack d'Emigna ici .
la source
05AB1E, 27 octets, boboquack , A000012
Essayez-le en ligne
Comment ça marche:
la source
CJam, 70 octets, Shebang , A000217
Essayez-le ici.
la source
Convexe, 75 octets, boboquack , A004526
Essayez-le en ligne
Comment ça marche:
la source
Dip , 9 octets, Kritixi Lithos
Certainement pas la réponse souhaitée.
Explication:
la source
Pip , 6 octets, DLosc , A000012
Je pensais que j'essaierais d'abord l'esolang de l'OP ;-)
Essayez-le en ligne.
la source
05AB1E , 25 octets, Mego , A000583
Code:
Explication:
Essayez-le en ligne!
la source
Dip , 8 octets, Oliver , A000042
Explication
Le plus drôle, c'est que c'était la langue voulue! Dip est un esolang créé par Oliver.
Cas de test et exécution de Dip à partir de la ligne de commande
la source
2sable, 14 octets, Dopapp , A121377
Essayez-le en ligne.
Comment ça marche (plus ou moins):
la source
05AB1E , 4 octets, Oliver , A000012
Essayez-le en ligne!
Il s'agit d'une séquence de l'
1
art.Cela sort
1
quelle que soit l'entrée.la source
Dip , 5 octets, Oliver , A000012
La séquence s'imprime juste
1
quelle que soit l'entrée. La réponse d'Oliver imprime a1.0
. Ce programme imprime également un fichier1.0
. C'est apparemment la solution envisagée.Explication
Solution alternative (gracieuseté de @milk)
Convexe , 5 octets
Essayez-le en ligne!
Explication
la source
"1"
) par tous les[input]
caractères (puisque l'entrée est un nombre.