Introdução
Pareidolia : do grego antigo; παρα ( para , "simultâneo, ao lado") + εἴδωλον ( eídōlon , "imagem"). A tendência de interpretar um estímulo vago como algo conhecido pelo observador, como interpretar marcas em Marte como canais, ver formas nas nuvens ou ouvir mensagens ocultas na música. Fonte: Wikcionário .
Por exemplo:
Paralogia : do grego antigo; παρα ( para , “em simultâneo, ao lado de”) + λόγος ( lógos “discurso, discurso, palavra, ...”). A tendência de perceber palavras em seqüências arbitrárias de caracteres, como em programas de código de golfe. Fonte: sim, eu inventei isso (na verdade, a palavra significa outra coisa , como apontado por @Martin).
Por exemplo:
df4$/H)hEy_^p2\
jtK2$)look|x1$
Desafio
Escreva um programa que use um número inteiro positivo como entrada, produza um número inteiro como saída e inclua uma palavra em inglês como parte do código. O relacionamento de entrada e saída deve corresponder a uma sequência inteira que pode ser encontrada no OEIS .
Regras
- Apenas palavras desta lista são permitidas. Isso é admitidamente arbitrário, mas é essencial que todos concordemos com quais palavras são aceitas; e, nesse sentido, esta lista é provavelmente tão boa quanto qualquer outra.
- As palavras precisam ser formadas concatenando pelo menos dois nomes ou instruções de função. Se o seu idioma, por exemplo, tem uma função chamada,
correlation
ele não pode ser usado como está. A concatenação deve ser rigorosa: nenhum outro símbolo deve aparecer entre as partes da palavra. Por exemplo,bro~ken
não contaria como uma palavra. - O caso não é importante: ambos
valid
evaLiD
são aceitáveis. - Palavras dentro de strings não contam. As letras que compõem a palavra precisam ser funções ou declarações no idioma de escolha, ou seja, algo que é realmente executado . Por exemplo, o código a seguir não seria permitido:,
'deoxyribonucleic'~1
onde'...'
é uma string,~
descarta o conteúdo anterior e1
apenas imprime o número1
. - Toda letra da palavra deve ser necessária . Isso significa que a remoção de uma única letra da palavra deve alterar a relação entrada-saída. Isso inclui a saída de uma sequência diferente ou a saída de qualquer outra coisa, ou a produção de nenhuma saída ou a ocorrência de um erro.
- Qualquer número inteiro positivo deve ser aceitável como entrada e produzir uma saída, exceto para restrições de tipo de dados ou memória.
- As saídas correspondentes a entradas
1
,2
,3
, ... deve corresponder a uma sequência em que aparecem OEIS . Nenhuma outra saída deve ser produzida; apenas um número inteiro, possivelmente com espaço em branco à direita ou à esquerda. - Entrada e saída podem ser argumentos de função ou stdin / stdout.
Ponto
A pontuação é calculada como o comprimento total do código menos o dobro da palavra mais longa, em caracteres. Ou equivalente, número de caracteres que não estão na palavra mais longa menos o comprimento da palavra mais longa.
Menor pontuação ganha.
Exemplos
Considere uma linguagem postfix imaginária que possua estas funções c
:: insira um número; At
: quadrado de computação; $
: adicione 1.
cAt
seria um programa válido (seus corresponde saída para a seqüência 1
, 4
, 9
, ..., que é A000290 ), e teria pontuação -3.
cAt$
também seria válido (seqüência 2
, 5
, 10
, ..., que é A002522 ), com pontuação de -2.
c$At
não seria válido, porque a única palavra aqui é "At" e é produzida por uma única função ou instrução.
Respostas:
CJam, -20
Emite o enésimo elemento na sequência A010861 .
A remoção de um caractere da palavra resulta em uma sequência completamente diferente A010860 . Existe uma relação bastante interessante entre as duas seqüências: em todo índice n,
A010860(n)
é coprime paraA010861(n)
! Deve haver alguma razão matemática profunda por trás disso.Experimente aqui .
fonte
CJam, -5
A010051 : imprime
0
para números compostos e1
para números primos.Levei uma eternidade para encontrar algo que tivesse alguns pontos e que quebraria com a remoção de qualquer carta. A remoção de qualquer coisa, exceto
m
gera um erro, e a remoçãom
transforma o programa na função de identidade.Experimente online.
fonte
05AB1E ,
-4-11Código, imprime A010869 (constante 30):
Código anterior:
Explicação:
Imprime a sequência A010879 .
fonte
MATL , -6
Experimente online!
Produz seqüência
1
,2
,3
, ... ( A000027 )A remoção de qualquer letra altera a saída ou deixa o programa esperando uma segunda entrada que não existe ou produz um erro.
Explicação
O programa simplesmente inala um número e, depois de algumas brincadeiras, o expira inalterado.
fonte
Pitão, 1
Explicação?
1, 2, 3, 4, 5 ...
Sequência A000027
Mensagens subliminares? Nunca.
Experimente aqui.
fonte
Japt, -6
Saídas A004453 : nimsum de N e 12 (N XOR 12). Teste online!
Nota: a sequência OEIS é indexada em 0, portanto, uma entrada de 0 resultará no primeiro item.
Como funciona
fonte
Y
produz a mesma saída? (a menos que eu estou fazendo algo errado)Headsecks , score -4
Isso é mapeado para o programa Brainfuck
,+-.
, que lê um único caractere e o imprime, calculando A000030 . Remover qualquer personagem obviamente o quebrará.Há também
marshal
(,-<>+-.
), que é efetivamente,-.
, mas isso não corresponde a nenhuma sequência OEIS.fonte
código de máquina x86, pontuação -4
Hexdump do código:
Ou, na página de código 437 :
Código de montagem:
Uma função que adiciona 1 ao seu argumento .
A remoção o
A
transforma em uma função de identidade. A remoção de qualquer outro byte atrapalha a pilha, causando uma falha ou mau comportamento da função de chamada.Tenho certeza de que é possível melhorar a pontuação, mas isso pode depender da interpretação dos requisitos. Por exemplo, o uso da palavra
SQUEAMIShness
fornece um programa que aumenta e diminui oebp
registro. A remoção de qualquer um desses causa uma falha? Um programa de teste mais simples não usa oebp
registro, então talvez não ... Para evitar essa dúvida, usei uma palavra mais curta.fonte
Ruby, pontuação 3
Isso calcula a sequência de identidade A000027 . A saída é cercada por algum espaço em branco; Espero que esteja tudo bem.
fonte
Matemática ++, pontuação -2
Implementa o A000004 .
fonte