Ceci est un flic et des voleurs si vous n'êtes pas familier avec le format, cliquez sur la balise pour accéder au wiki. Il n'y aura pas de fil de voleurs pour cette question.
Flics
Votre tâche en tant que flics consiste à sélectionner deux séquences dans l' Encyclopédie en ligne des séquences entières et à écrire un programme qui prend le nième élément d'une séquence en entrée et génère le nième élément de la deuxième séquence. Vous répondez ensuite en incluant le code et en omettant les séquences sélectionnées. Les voleurs tenteront de trouver les séquences que vous avez sélectionnées et si l'on parvient à trouver les séquences que vous aviez en tête ou d'autres séquences pour lesquelles votre programme vous devez marquer votre réponse comme Cracked . Si un voleur vous informe d'une fissure que vous croyez non valide, vous pouvez présenter une preuve qu'il ne s'agit pas d'une fissure. Sinon, vous devez le marquer ainsi.
Selon les réponses habituelles qui n'ont pas été fissurées pendant 7 jours, vous pouvez être marqué comme sûr. Un flic peut marquer sa réponse comme sûre en révélant les séquences qu'il avait en tête. Une fois en sécurité, une réponse ne peut plus être craquée.
L'objectif est de minimiser le nombre d'octets de votre programme tout en restant non fissuré.
Exemple
Le code Python suivant traduit le nième élément de A000290 (les nombres carrés) en A000217 (les nombres triangulaires):
lambda x:sum(range(0,int(x**.5+1)))
Stipulations et exigences
Si vous choisissez une séquence dont il n'est pas prouvé qu'elle est finie, vous devez sortir tous les termes qui pourraient exister, pas seulement ceux répertoriés sur la page OEIS.
Par exception aux langages de règles précédents sans entiers de précision infinie, il n'est pas nécessaire de sortir ou de saisir des nombres en dehors de leur plage.
La taille de votre séquence d'entrée ne doit pas être inférieure à la séquence de sortie.
Votre séquence d'entrée ne doit pas avoir d'éléments de répétition (sinon la tâche est à peu près impossible)
L'OEIS inclut un index sur leur page (le premier nombre après l'en-tête "OFFSET") par défaut, c'est votre décalage pour n (n est égal à l'index pour le premier élément de la séquence) si vous choisissez un autre index, vous devez l'indiquer dans Ta Réponse.
Si vous choisissez un décalage différent de celui répertorié sur l'OEIS, vous devez toujours mapper tous les éléments de votre séquence d'entrée à l'élément correspondant dans votre séquence de sortie.
Si votre programme reçoit une entrée qui n'est pas dans la séquence d'entrée, il peut faire ce qu'il veut (comportement indéfini). Cependant, il est probablement dans votre intérêt qu'il affiche toujours un entier.
Il est antisportif de rendre intentionnellement votre code difficile à exécuter, que ce soit en le rendant long à exécuter ou via une sélection de langue non libre . Bien que j'applique la seconde, je ne peux pas appliquer objectivement la première. Cependant, je vous implore, pour le plaisir, de ne pas tenter le premier car cela rend le défi spécifiquement plus difficile pour ceux qui ont des ordinateurs plus faibles.
Voleurs
Votre tâche en tant que voleurs est de sélectionner des réponses non fissurées et dangereuses et de trouver les séquences entre lesquelles elles sont mappées. Si vous trouvez une solution qui fonctionne (pas nécessairement la solution prévue par les flics), commentez les séquences sur la réponse appropriée.
Les voleurs ne devraient pas trop se soucier de vérifier que deux séquences particulières sont une solution, on devrait publier une solution si elle correspond à toutes les entrées sur OEIS. Si ce n'est pas la séquence qu'un policier avait en tête, le policier peut offrir une preuve qu'elle est incorrecte ou la marquer comme fêlée s'ils ne peuvent pas en trouver une.
la source
Réponses:
Gelée , 14 octets (fissurée par @Wolfram)
Essayez-le en ligne!
Cela devrait être assez évident. En fait, pour le bénéfice des utilisateurs non-Jelly, je vais même donner une explication:
Explication
La question est, pourquoi fait-il cela?
Fissure
Les séquences en question étaient A201647 et A201647 . Ils sont finis et ne diffèrent que par les 2 derniers éléments:
Ainsi, si l'entrée est faible, je la laisse la même et j'adapte simplement une fonction à la transformation des deux dernières.
la source
Gelée , 7 octets (fissurée par @JonathanAllan)
Essayez-le en ligne!
Ce qu'il fait
la source
p
, lesÆF
rendements(p,1)
et lesÆd
rendements2
, doncḅ
nous obtient2p+1
, ce qui moyensÆẸ
donneront la première prime,2
, élevé à la puissance de ce résultat,2^(2p+1)
.Python 3, 256 octets ( fissuré! )
Essayez-le en ligne!
Désolé si ce code a l'air horrible, je pense que c'est mon premier golf Python. La conversion en Python facilite le codage.
la source
q
?k
semble être inutilisée, vous pouvez donc économiser quelques octets en la supprimant.Traitement , 184 octets, SÉCURITAIRE!
Une fonction qui prend un int et retourne un int. Tant que le numéro d'entrée est dans
int
la plage de, le programme devrait fonctionner correctement.Ce n'est pas lent, juste illisible. Bonne chance!
Je suis surpris que cette communication ait duré aussi longtemps. Eh bien, au moins c'est la première soumission sûre :)
A000578 à A000290
En d'autres termes: les cubes aux carrés.
Explication
En répondant à Aucune chaîne (ou nombre) attachée , j'ai découvert une liste de constantes de traitement qui représentent des entiers. Par exemple,
CORNER
a une valeur de0
. La liste complète se trouve ici . Pour trouver la valeur d'une constante, vous pouvez simplement la trouverprint
.En utilisant cela, j'ai décidé d'échanger certains nombres avec des combinaisons de ces constantes pour l'obscurcir. Voici donc ce que vous obtenez lorsque vous remplacez les constantes par leurs valeurs int respectives.
Même maintenant, le code clair complet n'est pas révélé. Les couleurs restent. Dans Processing, les variables de couleur ont des valeurs int, par exemple white (
#ffffff
) is-1
,#fffffe
is-2
,#fffffd
is-3
, etc. Cela peut être trouvé enprint
ing la couleur. Simplifions donc les couleurs.Nous sommes à mi-chemin :) Pour comprendre les valeurs, nous devons simplifier les expressions numériques.
Beaucoup plus clair! Simplifions maintenant le logarithme.
Presque fini! Maintenant, nous devons comprendre cette
(int)sqrt(red(color(-65536))/16))
bouchée.color(-65536)
est rouge, doncrgb(255, 0, 0)
. Maintenant, lared()
fonction renvoie la valeur du composant rouge dans l'argument (qui est une couleur). Alors, combien de rouge y a-t-il en rouge? La réponse est255
. Avec ça on obtientLa substitution de cela dans le programme se traduit par:
Oui, c'est fait!
Pour résumer, cela renvoie le carré (fait en multipliant deux fois dans la boucle for) de la racine cubique du nombre d'entrée.
la source
Mathematica (ou autre) - Cracked!
Je sais que Mathematica est un logiciel non libre, mais cette fonction est triviale à porter dans la langue préférée dans laquelle vous voulez l'exécuter. Elle calcule littéralement la valeur du polynôme degré 9 donné évalué à l'entier d'entrée, puis prend le quotient entier de cette valeur et le nombre de 42 chiffres sur la dernière ligne. Par exemple,
f[100]
évalue à-3024847237
.la source