Introducción
Pareidolia : del griego antiguo; παρα ( para , "concurrente, junto") + εἴδωλον ( eídōlon , "imagen"). La tendencia a interpretar un estímulo vago como algo conocido por el observador, como interpretar las marcas en Marte como canales, ver formas en las nubes o escuchar mensajes ocultos en la música. Fuente: Wiktionary .
Por ejemplo:
Paralogia : del griego antiguo; παρα ( para , "concurrente, junto") + λόγος ( lógos , "discurso, oración, palabra, ..."). La tendencia a percibir palabras en secuencias arbitrarias de caracteres, como en los programas de golf de código. Fuente: sí, lo inventé (en realidad la palabra significa algo más , como lo señaló @ Martin).
Por ejemplo:
df4$/H)hEy_^p2\
jtK2$)look|x1$
Desafío
Escriba un programa que tome un número entero positivo como entrada, produzca un número entero como salida e incluya una palabra en inglés como parte del código. La relación entrada-salida debe corresponder a una secuencia de enteros que se puede encontrar en OEIS .
Reglas
- Solo se permiten palabras de esta lista . Esto es ciertamente arbitrario, pero es esencial que todos estemos de acuerdo en qué palabras se aceptan; y en ese sentido, esta lista es probablemente tan buena como cualquier otra.
- Las palabras deben formarse concatenando al menos dos nombres de funciones o declaraciones. Si su idioma, por ejemplo, tiene una función llamada
correlation
, no se puede usar como está. La concatenación debe ser estricta: no deben aparecer otros símbolos entre las partes de la palabra. Por ejemplo,bro~ken
no contaría como una palabra. - El caso no es importante: ambos
valid
yvaLiD
son aceptables. - Las palabras dentro de las cadenas no cuentan. Las letras que componen la palabra deben ser funciones o declaraciones en el idioma de elección, es decir, algo que realmente se ejecuta . Por ejemplo, no se permitiría el siguiente código:,
'deoxyribonucleic'~1
donde'...'
es una cadena,~
descarta el contenido anterior y1
solo imprime el número1
. - Cada letra de la palabra debería ser necesaria . Esto significa que eliminar una sola letra de la palabra debería cambiar la relación entrada-salida. Eso incluye generar una secuencia diferente, o emitir cualquier otra cosa, o no producir ninguna salida, o causar un error.
- Cualquier número entero positivo debe ser aceptable como entrada, y debe producir una salida, excepto por el tipo de datos o las restricciones de memoria.
- Las salidas correspondientes a los insumos
1
,2
,3
, ... deben corresponder a una secuencia que aparece en OEIS . No se debe producir ninguna otra salida; solo un número entero, posiblemente con espacios en blanco al final o al final. - La entrada y la salida pueden ser argumentos de función o stdin / stdout.
Puntuación
La puntuación se calcula como la longitud total del código menos el doble de la longitud de la palabra más larga, en caracteres. O, de manera equivalente, el número de caracteres que no están en la palabra más larga menos la longitud de la palabra más larga.
La puntuación más baja gana.
Ejemplos
Considere un lenguaje postfix imaginario que tenga estas funciones c
:: ingrese un número; At
: calcular cuadrado; $
: agregar 1.
cAt
sería un programa válido (sus corresponde a la secuencia de salida 1
, 4
, 9
, ..., que es A000290 ), y tendría puntuación de -3.
cAt$
también sería válido (secuencia 2
, 5
, 10
, ..., que es A002522 ), la puntuación de -2.
c$At
no sería válido, porque la única palabra aquí es "At" y es producida por una sola función o declaración.
Respuestas:
CJam, -20
Emite el enésimo elemento en la secuencia A010861 .
Eliminar un carácter de la palabra da como resultado una secuencia completamente diferente A010860 . Hay una relación bastante interesante entre las dos secuencias: en cada índice n, ¡
A010860(n)
es coprime paraA010861(n)
! Debe haber alguna razón matemática profunda detrás de esto.Pruébalo aquí .
fuente
CJam, -5
A010051 : imprime
0
para números compuestos y1
para números primos.Me llevó una eternidad encontrar algo que anotara algunos puntos y se rompería al eliminar cualquier letra. Eliminar cualquier cosa, excepto
m
arroja un error, y eliminarm
convierte el programa en la función de identidad.Pruébalo en línea.
fuente
05AB1E ,
-4-11Código, imprime A010869 (constante 30):
Código anterior:
Explicación:
Imprime la secuencia A010879 .
fuente
MATL , −6
Pruébalo en línea!
Produce secuencia
1
,2
,3
, ... ( A000027 )La eliminación de cualquier letra cambia la salida, o deja el programa esperando una segunda entrada que no existe, o produce un error.
Explicación
El programa simplemente inhala un número y, después de tocar un poco, lo exhala sin cambios.
fuente
Pyth, 1
¿Explicación?
1, 2, 3, 4, 5 ...
Secuencia A000027
¿Mensajes subliminales? Nunca.
Pruébalo aquí.
fuente
Japt, -6
Salidas A004453 : nimsum de N y 12 (N XOR 12). ¡Pruébalo en línea!
Nota: la secuencia OEIS está indexada en 0, por lo que una entrada de 0 dará como resultado el primer elemento.
Cómo funciona
fuente
Y
produce la misma salida? (a menos que esté haciendo algo mal)Headsecks , puntuación −4
Esto se asigna al programa Brainfuck
,+-.
, que lee un solo personaje y lo imprime, calculando A000030 . Eliminar cualquier personaje obviamente lo romperá.También hay
marshal
(,-<>+-.
), que es efectivo,-.
, pero que no corresponde a ninguna secuencia OEIS.fuente
Código máquina x86, puntaje -4
Hexdump del código:
O, en la página de códigos 437 :
Código de montaje:
Una función que agrega 1 a su argumento .
Eliminarlo lo
A
convierte en una función de identidad. Eliminar cualquier otro byte desordena la pila, causando un bloqueo o un mal comportamiento de la función de llamada.Estoy bastante seguro de que es posible mejorar la puntuación, pero puede depender de la interpretación de los requisitos. Por ejemplo, usar la palabra
SQUEAMIShness
da un programa, que aumenta y luego disminuye elebp
registro. ¿Eliminar alguno de estos causa un bloqueo? Un programa de prueba más simple no usa elebp
registro, así que tal vez no lo hace ... Para evitar esta duda, usé una palabra más corta.fuente
Ruby, puntaje 3
Esto calcula la secuencia de identidad A000027 . La salida está rodeada por algún espacio en blanco; Espero que esté bien.
fuente
Matemáticas ++, puntaje -2
Implementa A000004 .
fuente