Isenção de responsabilidade: Isso é fortemente inspirado em "Polyglot the OEIS!" mas corrige o problema que levou ao fechamento (consulte a seção de saída) e foi postado novamente para não invalidar as respostas.
Introdução
Todos conhecemos e amamos a enciclopédia on-line de seqüências inteiras ( OEIS ). E daí se fizéssemos uma versão off-line das sequências interessantes? Bem, isso seria meio fácil demais, não e como você selecionaria uma sequência com nossa interface padrão !? Não. Precisamos de uma solução mais fácil para isso. Um poliglota!
Entrada
Sua entrada será um número inteiro não negativo n
.
Saída
Sua saída será
- A
n
-ésima entrada de uma sequência OEIS OU - As primeiras
n
entradas de uma sequência OEIS.
Você pode considerar o índice com base em 1 ou em 0, conforme preferir.
Para não fazer desta pergunta uma duplicata de As seqüências constantes versáteis da impressora são proibidas. Isso também deve aumentar o nível de dificuldade dos envios e evitar soluções "chatas";)
Uma sequência não é constante se houver dois membros de sequência desiguais.
Uhm, então, onde está o desafio?
Você precisa poliglota a funcionalidade acima. Ou seja, se você suporta os idiomas A, B e C, todos devem implementar diferentes sequências OEIS. A escolha da sequência não é limitada, exceto que você precisa de diferentes para todos os idiomas.
Ou seja, se você executar o programa fornecido na linguagem A, a sequência X será gerada, se você executar o programa fornecido na linguagem B, a sequência Y será gerada (com X! = Y) e se você executar o programa fornecido na linguagem C, a sequência Z deve ser gerada (com X! = Z && Y! = Z).
Quem ganha?
A resposta com mais pares de sequências / idiomas vence. O primeiro desempatador é do tamanho do código (em bytes), com menor sendo melhor. O segundo desempate é o tempo de finalização, sendo antes melhor.
Algumas palavras / regras finais?
- Você deve declarar qual idioma gerará qual sequência.
- Aplicam-se as regras de E / S padrão.
- Se codificações diferentes forem usadas entre idiomas, os dois programas deverão usar a mesma sequência de bytes.
- Language (Python 2/3) revisões não contam como línguas diferentes. Diferentes implementações de um idioma (como Browser JS vs Node.js) também contam como idiomas diferentes.
- Aplicam-se brechas padrão.
Respostas:
3 idiomas (1 byte) - Pyth ( A001477 ), MATL ( A000027 ), Braingolf ( A000217 )
Quão?
Q
faz o seguinte:No MATL, significa
+ 1
, portanto, basicamente é avaliado comoinput + 1
.No Pyth, significa entrada, portanto, apenas gera a entrada.
Em Braingolf, é o built-in para números triangulares.
Mini-poliglota
Pyth pode ser substituído por qualquer um dos seguintes idiomas: GolfScript , Pyke , Brachylog ou Brain-Flak .
fonte
10 idiomas, 122 bytes
Definitivamente, posso adicionar muito mais. Indexado em 1, a menos que especificado de outra forma.
Observe que talvez eu não esteja atualizado nos links TIO quando tiver certeza de que alterações mais recentes não afetaram os programas mais antigos - você pode testá-los, se quiser, mas copiar mais de 10 links TIO novos sempre que fizer uma alteração fica cansativo depois de um tempo. Copio novos a cada 5 atualizações.
cQuents v0, A000007
Código relevante:
#|A=1:0;
#|A
captura a entrada e existe para comentários em Python.=1
significa que o primeiro item é1
,:0
significa o resto0
, gera on
th termo fornecidon
. O cQuents v0 possui um bug / recurso estranho que, quando um token inesperado, mas válido, como;
, é lido, causa o término da análise.Experimente online!
PingPong, A001478
Código relevante:
#|A=1:0;~@
Saídas via código de saída. Indexado a 0.
#
pula o próximo caractere.=
não faz nada aqui.1
empurra1
e:
imprime1
em STDOUT.0
empurra0
.)
faz nada.;
empurra a entrada,~
aparece e empurra-n-1
.@
termina. O código de saída é o topo da pilha.Experimente online!
axo, A001477
Código relevante:
}{\
Indexado a 0.
}
lê e envia um número inteiro de STDIN (requer nova linha à direita por algum motivo),{
imprime no topo da pilha e\
termina o programa. Não sei o que os personagens anteriores fazem, mas nada que importa nesse caso.Experimente online!
brainfuck, A000027
Código relevante:
,[.,]
Programa simples para gatos da esolangs.org. Emite a entrada.
Experimente online!
> <>, A000030
Código relevante:
#
...;oi
#
espelha e envolve à direita, que o direciona a lerio;
, que gera o primeiro caractere da entrada. Indexado a 0.Experimente online!
Ruby, A023443
Código relevante:
print (0 and gets.to_i-1
...)
Indexado a 0. Imprime a entrada menos 1.
0
é verdade em Ruby, mas falsey em Python.Experimente online!
Python 3, A000578
Código relevante:
print (0 and gets.to_i-1 or int(input())**(2+(1/2>0)));quit()
Arrancado do post original do HyperNeutrino, mas é um poliglota bem conhecido.
quit()
finaliza o programa.Experimente online!
Python 2, A000290
Código relevante:
#coding:utf-8
é necessário para o material de carvão funcionar. Também roubado da postagem original do HyperNeutrino.quit()
finaliza o programa.Experimente online!
Carvão, A001489
Código relevante:
⎚I±N»
Indexado a 0.
⎚
limpa o console (Charcoal imprime ASCII como está) eI±N
imprime o negativo da entrada.»
é um erro de análise e finaliza o programa.Agradecemos a ASCII-only pela ajuda no chat.
Experimente online!
Cardinal, A020725
Código relevante:
Adiciona 1 à entrada e esmaga todos os outros ponteiros.
Experimente online!
fonte
5 idiomas ( 05AB1E , atualmente , CJam , Jelly , MATL ), 7 bytes
Experimente online !:
fonte
3 idiomas: Proton, A000583 ; Python 3, A000578 ; Python 2, A000290
Próton , 49 bytes
Experimente online!
Python 3 , 49 bytes
Experimente online!
Python 2 , 49 bytes
Experimente online!
Explicação
O próton não tem
'''...'''
cordas, então(''',''')
se torna('' ',' '')
, o que de alguma forma não causa problemas. Avalia para''
, fazendo(''',''')!=','
para avaliarTrue
.Python tem essas cadeias, por isso
(''',''')
é apenas','
assim(''',''')!=','
avaliada comoFalse
.O Python 2 usa a divisão do piso para números inteiros, portanto,
1/2>0
é falso no Python 2 e verdadeiro no Python 3.fonte
1//1;print(int(input())**(2+(1/2>0)+((''',''')!=',')));quit()
e em seguida, adicione linguagens como JavaScript depois5 idiomas, 107 bytes
Perl: A000035
Usando
=
como delimitador paras///
meios, podemos excluir facilmente o código que não queremos, e usando)
como delimitador paraq{}
meios após aprint
inserçãoq
em todos os outros idiomas, podemos trabalhar<>
diretamente, sem se preocupar.Experimente online!
Rubi: A001477
No Ruby,
//
é na verdade/
(dividir por)/.../
(correspondência de expressão regular), desde que a expressão regular seja terminada e convertida em um número, podemos dividi-la com segurança.__id__
é menor que.to_s.ord
, então, apenas contém o restante do código que não queremos em'
s, definidoq
comogets
eprint
com todos os outros.Experimente online!
Python 2: A005843
Usando o truque padrão para diferenciar 2 de 3 e anexando itens que não queremos
"""
e comentamos.Experimente online!
Python 3: A008585
Experimente online!
JavaScript (navegador ES6): A000027
Bem simples para JS, acabou sendo mais fácil não reutilizar o existente
print
e usar o SpiderMonkey, mas isso também pode ser possível.fonte
6 idiomas: Cubicamente 5/6/7/8/9/10,
444032 bytesO riscado 44 ainda é regular 44;
Isso imprime:
Explicação:
Experimente online! (Cubicamente 6x6x6)
fonte