introduction
Pareidolia : du grec ancien; παρα ( para , «simultané, à côté») + εἴδωλον ( eídōlon , «image»). La tendance à interpréter un stimulus vague comme quelque chose de connu de l'observateur, comme interpréter des marques sur Mars comme des canaux, voir des formes dans les nuages ou entendre des messages cachés dans la musique. Source: Wiktionnaire .
Par exemple:
Paralogia : du grec ancien; παρα ( para , «simultané, à côté») + λόγος ( lógos , «discours, discours, mot, ...»). La tendance à percevoir les mots dans des séquences arbitraires de caractères, comme dans les programmes de golf à code. Source: oui, je l'ai inventé (en fait, le mot signifie autre chose , comme l'a souligné @Martin).
Par exemple:
df4$/H)hEy_^p2\
jtK2$)look|x1$
Défi
Écrivez un programme qui prend un entier positif en entrée, produit un entier en sortie et inclut un mot anglais dans le code. La relation entrée-sortie doit correspondre à une séquence entière qui peut être trouvée dans OEIS .
Règles
- Seuls les mots de cette liste sont autorisés. C'est certes arbitraire, mais il est essentiel que nous nous mettions tous d'accord sur les mots acceptés; et à cet égard, cette liste est probablement aussi bonne que toute autre.
- Les mots doivent être formés en concaténant au moins deux noms ou instructions de fonction. Si votre langue par exemple a une fonction appelée,
correlation
elle ne peut pas être utilisée telle quelle. La concaténation doit être stricte: aucun autre symbole ne doit apparaître entre les parties du mot. Par exemple,bro~ken
ne compterait pas comme un mot. - Le cas est sans importance: les deux
valid
etvaLiD
sont acceptables. - Les mots dans les chaînes ne comptent pas. Les lettres qui composent le mot doivent être des fonctions ou des instructions dans la langue de choix, c'est-à-dire quelque chose qui est réellement exécuté . Par exemple, le code suivant ne serait pas autorisé:,
'deoxyribonucleic'~1
où'...'
est une chaîne,~
supprime le contenu précédent et1
imprime simplement le numéro1
. - Chaque lettre du mot devrait être nécessaire . Cela signifie que la suppression d'une seule lettre du mot devrait modifier la relation entrée-sortie. Cela inclut la sortie d'une séquence différente, ou la sortie de toute autre chose (s), ou la production d'aucune sortie, ou provoquant une erreur.
- Tout entier positif doit être acceptable comme entrée et doit produire une sortie, à l'exception des restrictions de type de données ou de mémoire.
- Les sorties correspondant aux entrées
1
,2
,3
... doivent correspondre à une séquence apparaissant dans OEIS . Aucune autre sortie ne doit être produite; uniquement un nombre entier, éventuellement avec un espace de fin ou de début. - L'entrée et la sortie peuvent être des arguments de fonction ou stdin / stdout.
But
Le score est calculé comme la longueur totale du code moins le double de la longueur du mot le plus long, en caractères. Ou de manière équivalente, le nombre de caractères de mot non long le moins la longueur du mot le plus long.
Le score le plus bas l'emporte.
Exemples
Considérons un langage de suffixe imaginaire qui a ces fonctions c
:: saisir un nombre; At
: calcul carré; $
: ajoutez 1.
cAt
serait un programme valide (ses correspond de sortie à la séquence 1
, 4
, 9
, ..., qui est A000290 ), et il aurait moyenne à -3.
cAt$
serait également valable (séquence 2
, 5
, 10
, ..., qui est A002522 ), avec un score de -2.
c$At
ne serait pas valide, car le seul mot ici est "At" et est produit par une seule fonction ou instruction.
Réponses:
CJam, -20
Sort le nième élément dans la séquence A010861 .
La suppression d'un caractère du mot entraîne une séquence complètement différente A010860 . Il existe une relation assez intéressante entre les deux séquences: à chaque indice n,
A010860(n)
est coprime àA010861(n)
! Il doit y avoir une raison mathématique profonde derrière cela.Essayez-le ici .
la source
CJam, -5
A010051 : imprime
0
pour les nombres composites et1
pour les nombres premiers.Il m'a fallu une éternité pour trouver quelque chose qui a marqué quelques points et qui se briserait à la suppression de toute lettre. Supprimer quoi que ce soit, sauf
m
une erreur, et la suppressionm
transforme le programme en fonction d'identité.Essayez-le en ligne.
la source
05AB1E ,
-4-11Code, imprime A010869 (constante 30):
Code précédent:
Explication:
Imprime la séquence A010879 .
la source
MATL , −6
Essayez-le en ligne!
Produit séquence
1
,2
,3
, ... ( A000027 )La suppression d'une lettre modifie la sortie, ou laisse le programme attendre une deuxième entrée qui n'existe pas, ou produit une erreur.
Explication
Le programme inhale simplement un certain nombre et, après quelques tripotages, l'exhale inchangé.
la source
Pyth, 1
Explication?
1, 2, 3, 4, 5 ...
Séquence A000027
Messages subliminaux? Jamais.
Essayez-le ici.
la source
Japt, -6
Sorties A004453 : nimsum de N et 12 (N XOR 12). Testez-le en ligne!
Remarque: la séquence OEIS est indexée sur 0, donc une entrée de 0 entraînera le premier élément.
Comment ça fonctionne
la source
Y
produit la même sortie? (sauf si je fais quelque chose de mal)Headsecks , score −4
Cela correspond au programme Brainfuck
,+-.
, qui lit un seul caractère et l'imprime, calculant A000030 . Supprimer n'importe quel personnage le cassera évidemment.Il y a aussi
marshal
(,-<>+-.
), ce qui est efficace,-.
, mais cela ne correspond à aucune séquence OEIS.la source
code machine x86, score -4
Hexdump du code:
Ou, dans la page de codes 437 :
Code d'assemblage:
Une fonction qui ajoute 1 à son argument .
Le retirer le
A
transforme en fonction d'identité. La suppression de tout autre octet gâche la pile, provoquant un plantage ou un mauvais comportement de la fonction appelante.Je suis sûr qu'il est possible d'améliorer le score, mais cela peut dépendre de l'interprétation des exigences. Par exemple, l'utilisation du mot
SQUEAMIShness
donne un programme qui augmente puis diminue leebp
registre. La suppression de l'un de ces éléments provoque-t-elle un crash? Un programme de test le plus simple n'utilise pas leebp
registre, alors peut-être que non ... Pour éviter ce doute, j'ai utilisé un mot plus court.la source
Ruby, score 3
Ceci calcule la séquence d'identité A000027 . La sortie est entourée d'espaces; J'espère que ça va.
la source
Math ++, score -2
Implémente A000004 .
la source