(Inspirado nos 95 personagens da ASCII ... 95 citações de filmes )
O desafio
Dada a entrada n
, emita o nth
número de Fibonacci . Você pode usar a indexação 0
ou 1
, indique qual em seu envio. Simples, sim? O problema é que você deve pegar o conjunto de caracteres da resposta imediata imediata, remover dois caracteres e adicionar um caractere separado. O caractere separado deve
- não seja do conjunto de caracteres da resposta anterior imediata
- ser do conjunto de (ASCII imprimível, espaço, nova linha, guia horizontal)
e, portanto, o tamanho total do conjunto de caracteres será exatamente um menor que o conjunto da resposta anterior imediata.
A resposta inicial
O primeiro envio deve conter um subconjunto de (todos os ASCII imprimíveis, espaço, nova linha e guia horizontal) com dois caracteres removidos. Todas as submissões posteriores devem restringir suas respostas a este formato original ASCII (o que significa que você não pode adicionar um caractere Unicode ou ASCII estendido ... desculpe Jelly, APL, et al.).
Exemplos e esclarecimentos
- Suponha que a primeira resposta esteja em C e contenha (quase todas as guias ASCII, nova linha e horizontal imprimíveis) e omita o
%
e^
de seu conjunto de caracteres. O segundo envio, portanto, deve remover dois caracteres do conjunto de caracteres anterior (quase todos os ASCII, nova linha e guia horizontal imprimíveis) e adicionar o%
ou^
. Talvez seja uma resposta do PowerShell de uma linha que omita a nova linha. E assim por diante. - Se a resposta anterior tivesse
print(){}!*+
como conjunto de caracteres (12 caracteres), seu envio poderia terprint(){}!
(10 caracteres) e um caractere adicional,print(){!+
(10 caracteres) e um caractere adicional, etc. - Se a resposta anterior tivesse
print(){}!*+
como conjunto de caracteres (12 caracteres), seu envio não poderia terprint()
e&
(8 caracteres) como conjunto de caracteres, desde12 - 8 > 1
. - Se a resposta anterior tivesse
print(){}!*+
como conjunto de caracteres (12 caracteres), seu envio não poderia terprint(){}!
(10 caracteres) mais caracteres adicionais*
como conjunto de caracteres, pois, embora sejam 11 caracteres, ele*
está incluído no conjunto anterior. - Nem todos os caracteres do seu conjunto de caracteres devem fazer algo útil para o envio. Por exemplo, se a resposta anterior tiver
print(){}!*+
como conjunto de caracteres e seu idioma tiver um built-in!
que calcule a sequência de Fibonacci e#
inicie um comentário, seu envio poderá ser!#print(){}
e ainda será válido. - Você pode usar o mesmo caractere do seu conjunto de caracteres várias vezes. Por exemplo, suponha que seu conjunto de caracteres seja
!*#_
, sua resposta poderia ser!!!**#**#_!!
e seria aceitável. - Além do seu código (e uma explicação também é legal!), Liste explicitamente o seu conjunto de caracteres, para facilitar para envios futuros.
Ganhando
O vencedor do desafio será a pessoa que postou a segunda submissão mais recente (ou seja, não a pessoa que postou por último, desde que rompeu a cadeia).
Regras finais
Aplicam-se regras usuais de encadeamento de respostas :
- A mesma pessoa não pode postar duas vezes seguidas
- Se uma resposta for considerada inválida (por exemplo, ele usou um caractere proibido ou não é calculado corretamente), ela precisa ser excluída (e todas as respostas subsequentes que se aceleram também)
- Dois usuários que postarem "ao mesmo tempo" terão que deixar o envio anterior permanecer
- O mesmo idioma não pode ser postado duas vezes seguidas. Para os fins desta regra, os idiomas da mesma família (por exemplo, Python 2 e Python 3) contam como "a mesma linguagem".
Coisas finais:
- Esta postagem funciona melhor se você classificar por "Mais antigo" para que as respostas estejam na ordem correta.
- Kyle Gullion construiu um verificador de código em Python aqui para verificar se você está ausente ou usando caracteres errados.
Respostas:
1. C
Não contém
{
ou}
.Experimente online!
Espero ter feito isso direito.
fonte
{
ou mais}
para poder adicionar a outra.{
ou}
, você poderá adicionar o outro e a resposta Brain-Flak.*
. É permitido omitir caracteres do nosso conjunto de caracteres e tê-los ainda "incluídos", ou isso foi um descuido?2?1*1
resolveria isso.2. Mathematica
Contém não
}
,Z
ou guia horizontal. (Reincluído{
.)As duas primeiras linhas são apenas um comentário; a última linha é a função embutida, usando a única indexação verdadeiramente verdadeira e super cosmicamente ordenada, em que as entradas 0 e 1 produzem as saídas 0 e 1 respectivamente (não faço idéia se devo chamar isso de indexado em 0 ou 1).
fonte
8. Oitava
Adicionado
U
e removido+
e-
. A solução não contém+-`01AEI
caracteres de tabulação ou.Baseado na matriz de Fibonacci .
fonte
t
...\t
é a maneira como o caractere de tabulação é impresso em Python (que eu costumava verificar minha resposta), editarei para torná-lo um pouco mais claro.33, MATL
Adicionado
-
, removido()
. A solução não contém!&'()/\01?AEIKLMNPSTWZ`dmwz{}|~
tabulação, espaço ou nova linha.Experimente no MATL Online
Erro fixo:
0
,1
e\
foram acidentalmente deixou no comentário (após a%
) no final. Sua remoção não quebra a funcionalidade. Movi esta resposta de 32 para 33 na tentativa de mantê-la válida. Se precisar ser excluído, entre em contato e eu farei exatamente isso.fonte
36. Java
Adicionado
\
. Removidoqx
. Não usa!&'()/1?AEIKLMNPSTWZ`dmnqtwxz{}|~[]
, tabulação ou espaço.Eu sei que provavelmente poderia ter esperado mais, mas eu queria ter certeza de que isso seria divulgado antes que fosse tarde demais. Essa classe não apenas define uma função que pega um número inteiro
n
e retorna esse número de Fibonacci, mas também imprime os 20 primeiros para você apenas por diversão. Tentei fazer minha devida diligência escrevendo isso em java antigo simples, sem golfe furtivo, e então removi os caracteres ilegais 1 a 1 até chegarmos à criatura que você vê agora.Experimente online!
fonte
0
37. Python 2
Readded
x
. Não usa!&'()/1?AEIMNPSTWZdmnqtwz{}|~[]
espaço, tabulação ou `. K e L. removidosCom comentários:
Essa abordagem usa o termo geral da série fibonacci.
fonte
3. Flacidez Cerebral
Não contém
Z
,~
,A
, ou guia horizontal. (Re-incluído}
)Experimente online!
fonte
5 Haskell
Removido
AEIOU
e guia, adicionadoZ
Experimente online!
fonte
12. Python 3
adicionado
:
removido{;
não contém{};`01AEIPQx
nem um caractere de tabulação.fonte
{;
, não};
.6. Flacidez Cerebral
Experimente online! Não usa
tabAEIU`_
e adicionado de voltaO
fonte
26. Prolog (SWI)
Adicionado
%
. RemovidoNK
. Não usa&*01AEIKLMNPSTWZ`dmrwz{}]
, guia ou nova linha.Experimente online!
fonte
34. cérebro
Adicionada nova linha, removida
n
et
. Não usa!&'()/\01?AEIKLMNPSTWZ`dmntwz{}|~
, tabulação ou espaço. (talvez possamos obter algumas linguagens 2D agora)Indexado a 0. Entrada / saída é por valores de bytes.
Experimente online!
fonte
4, Python 2
Removido
AEIZ
, guia adicionado~
Experimente online!
fonte
11. ML padrão (mosml)
Adicionado
+
. Removido:}
. Não contém:}0`1AEIPQx
nem caracteres de tabulação.O SML não está no TIO e usei a variedade moscow ml, mas há um interpretador SMLNJ on-line aqui .
fonte
10. C
Adicionado
m
, removidoPQ
. Não contém+`01AEIPQx
nem caracteres de tabulação.Sinalizador do compilador:
-lm
Experimente online!
fonte
.
ainda está faltando no seu comentário.9. Python 2
Adicionado
-
, removidom
ex
. Contém nenhum+`01AEImx
caractere de tabulação ou.Função Python recursiva! Adiciona todos os números de Fibonacci para trás até que
n
seja 1.fonte
1
e deixado de fora345678BCDFGHJKLMNOPQRSTUVWXYZ
18 Oitava
Adicionado
;
e removidof
e espaço. A solução contém caracteres sem{}:`*%01AEIPQfrd
, sem tabulação, sem nova linha e sem espaço.Idêntico à resposta 8 , apenas com mais ódio do SML: P
fonte
23. ML padrão (mosml)
Lá vamos nós novamente. Adicionado
Q
, removido}
e]
. Não usa%&*+01:AEILMPZ`dmrzM{}]
, guia ou avanço de linhafonte
Q
.25. CJam
Adicionado de
+
volta, removidoS
eT
. Não usa%&*01AEILMPSTZ`dmrz{}]Ww
, guia ou avanço de linha.Basicamente, é um porto da minha resposta mais antiga, mas essa usa algumas artimanhas para contornar a falta de aparelhos.
Indexado a 0.
Experimente online!
fonte
27. JavaScript
Adicionado
*
, removido"
e'
. Não usa"&'01AEIKLMNPSTZ`dmrz{}]Ww
, guia ou avanço de linha.fonte
28. Haskell
Experimente online! Uso:
g 3
dá2
.Adicionado
"
, removido<space>
e-
. Não usa&'-01AEIKLMNPSTZ`dmrz{}]Ww
ou escamas brancas.fonte
30. ML padrão
Adicionado
:
, removido+
e?
. Não contém!&'+-01?AEIKLMNPSTWZ`dmrwz{}
nenhum espaço em branco.A primeira parte
fun$(a,b,x)n=if(length(x)=n)then(length(a))else$(b,a@b,()::x)n
define uma função$
que calcula on
número de fibonacci de forma iterativa, usando uma codificação de lista unária. O comprimento do argumentox
indica o número atual ea
eb
são listas de comprimentofib(length(x)-1)
efib(length(x))
. Se retornarmosn
iguais , adicione de forma recursiva e via concatenação de lista e incremento adicionando um elementolength(x)
length(b)
a
b
x
()
a ela.A segunda parte
("#%*./23456789<>BCDFGHJOQRUVXY\\^_cjkopqvy|~";$([],[()],[]))
é uma sequência em que a string é descartada e$([],[()],[])
é a inicialização da função$
coma = 0
,b = 1
ex = 0
, resultando em uma função anônima que calcula o enésimo número de fibonacci.fonte
32, Python 3
Adicionado
r
e removido|~
. A solução contém caracteres sem!&'/\-01?AEIKLMNPSTWZ`dmrwz{}|~
, sem tabulação, sem nova linha e sem espaço.fonte
39. Python 2
Adicionado
0
. Removido@^
. Não usa!^&'()/1?@AEIMNPSTWZdmntwz{}|~[] `
, guia ou nova linha.Argumento ao exec sem sequências de escape:
Experimente online!
fonte
38. Matl
Adicionado
q
. Removido0 <newline>
. Não usa!&'()/1?AEIKLM0NPSTW{Z`dmntwxz}|~[]
, guia, nova linha ou espaço.Experimente online
fonte
q
x
, você não o removeu, mas é restrito. Você pode adicionar x no final do comentário? A lista restrita também diz que você não usaq
, então você precisa removê-lo.7, Python 2
Re-incluído
_
. Caracteres removidos: tab eAEIU`
, e (apenas para ficar um pouco desagradável)0
e1
. Caso contrário, apenas uma cópia da resposta do Assistente de Trigo (daí o wiki da comunidade).Experimente online!
fonte
13. ML padrão (mosml)
Adicionado
x
. Removido:r
. Não contém:;{}0`1AEIPQr
nem caracteres de tabulação.Depois de excluirmos praticamente as linguagens no estilo C, vamos atrás do Python. Esta resposta é praticamente idêntica à resposta 11.
fonte
14. Oitava
Adicionada
r
e removida nova linha e espaço. A solução contém caracteres sem{}:;`01AEIPQ
, sem tabulação, sem nova linha e sem espaço.Baseado em uma fórmula de formulário fechado (7) .
fonte
16. Oitava
Adicionado
/
e removido * e espaço. A solução contém caracteres sem{}:;`*%01AEIPQ
, sem tabulação, sem nova linha e sem espaço.Idêntico à resposta 14 , apenas um ataque direto ao SML e Python: P
fonte
15. ML padrão (mosml)
Adicionado espaço e removido
%/
. Não contém{}:;`01AEIPQ
, guia ou nova linha.fonte