Usando os 74 caracteres da sequência da cápsula do tempo de 2016
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
escreva trechos de código N, todos no mesmo idioma em que:
- O primeiro fragmento é gerado
1
. - O segundo fragmento é gerado
2
. - O terceiro trecho é exibido
3
. - ... etc ...
- O trecho N é o resultado
N
(o número, não a letra literal).
Um "snippet de código" é definido como qualquer um destes:
- Um programa completo sem entrada necessária que gera o número normalmente .
- Uma função sem argumentos necessários que gera / retorna o número normalmente .
- Uma expressão REPL que avalia o número.
Você pode misturar e combinar essas três variantes nos seus snippets N.
Os caracteres que você pode usar no conjunto combinado de N snippets são precisamente os 74 caracteres da cápsula do tempo, além de floor(N/2)
bytes extras "curinga" que você pode usar em qualquer lugar.
Por exemplo, a cápsula do tempo contém três @
, portanto, na totalidade de seus N snippets, pode haver apenas três @
presentes, a menos que você decida usar alguns de seus floor(N/2)
caracteres curinga para obter @
mais.
Portanto, sem contar caracteres curinga, o conjunto combinado de caracteres em seus N snippets deve ser um subconjunto dos 74 caracteres da cápsula do tempo. Seus comprimentos combinados não podem exceder 74. Você não pode reutilizar caracteres da cápsula do tempo ou bytes curinga entre os snippets.
Notas
Não existem outros limites no comprimento do trecho ou quantos curingas podem ser usados por trecho.
Você deve escrever todos os trechos de 1 a N. Não é 0 a N-1, nem k a N + k-1.
Os trechos devem ser individuais, não um trecho que produza a lista
1, 2, 3, ..., N
.As saídas podem ser flutuantes, como
3.0
no lugar de,3
e você pode usar uma base que não seja decimal se for a base natural do seu idioma . Você deve usar a mesma base para todos os trechos.Os curingas são contados como bytes na codificação do seu idioma . Provavelmente será ASCII, mas, por exemplo, se
∞
contar como um byte na sua codificação, você poderá usá-lo como um único byte curinga.Você pode usar bytes curinga para caracteres multibyte. por exemplo, normalmente
∞
tem três bytes, portanto você pode usá-lo em um trecho, mas custará três dos seus bytes curinga.floor(N/2)
Novas linhas , como
\r\n
podem ser consideradas um byte.
Exemplo
Em Python, N = 4 é possível apenas usando o REPL. Existem floor(4/2) = 2
curingas.
1
da cápsula do tempo é uma expressão que evals para1
.2
consiste em um único curinga, ou seja, o2
. Evals to2
.3
também consiste em um único curinga. Evals to3
. Não há mais curingas.4
é felizmente na cápsula do tempo e evals para4
.
Esses trechos são curtos e triviais. Uma resposta real provavelmente seria muito mais complexa.
(Cinco e mais além em Python certamente podem ser possíveis, mas deixarei para os profissionais.)
Pontuação
A resposta com o N mais alto ganha; ou seja, aquele que sobe mais alto na escada inteira.
Em caso de empate, a resposta que usou o menor número de bytes curinga vence.
Caso ainda haja um empate, a resposta que usou o menor número de caracteres acumulados vence.
Se ainda houver um empate, a resposta anterior vence.
fonte
4
um trecho válida que retorna 4, em versões antigas do Perl que não têm REPL?)07
o mesmo que7
?-
nemn
...Respostas:
CJam , 25 trechos, 12 curingas, 64 bytes
Experimente online!
Curingas:
Sinto que tenho que postar rapidamente, antes que Dennis me derrote.
fonte
CJam , 23 trechos, 11 curingas, 45 bytes
Experimente online! | contador curinga (ignore as novas linhas)
fonte
JavaScript, 10 números, 5 curingas
Caracteres restantes:
!!#$$%&())))*...:=@@@HILOQQQTTZ\^```eefmpy{|||~~~~~~~~~
5/5 caracteres de bônus usados:
37680
Programas:
1
3
4
4|!``
6
7
8
9
0xA
Eu esperava que uma das cordas que eu pudesse usar
\xAB
fosse um número, mas infelizmente nenhuma das combinações que eu tentei produziria nenhuma. O^
caractere (XOR) também seria interessante de usar, mas atualmente não vejo oportunidades em que possa ser usado para criar um número grande o suficiente.Se você vir outra combinação viável, informe-me nos comentários.
Edit: Added # 10 thanks to Arnauld
fonte
10. 0xA
(com0
sendo um novo curinga concedida para alcançar 10)(Q=!``)|Q
1 para obter um extra em1
algum lugar. Não tenho certeza se isso vai ajudar emboraPyth, 12 trechos, 20 bytes (6 caracteres curinga)
Encontre o primeiro número em que a raiz (n, n) é verdadeira, começando em 1. Saída: 1
Dobro não
{}
. Saída: 2Curinga # 1. Saída: 3
Saída: 4.
Curinga # 2. Saída: 5
Curinga # 3. Saída: 6
Curinga # 4. Saída: 7
Curinga # 5. Saída: 8
Saída: 9
Variável pré-inicializada. Saída: 10
Dez mais não zero. Saída: 11
Curinga # 6 (
2
). Saída: 12fonte
Oitava, 6 números, 3 curingas
Eu ainda tenho
1
,9
e*
à esquerda, mas eu não sei se ele vai me ajudar muito. Vou ver o que posso fazer com esses :)Não é fácil obter muitos números quando não estiver usando um Esolang. Espero conseguir mais um ou dois, mas acho que será difícil.
fonte
Pushy , 10 números (4 curingas)
Todos esses são trechos que deixam o resultado na pilha. Você pode testar isso no intérprete on - line anexando
#
a cada trecho (para imprimir o número)Essa resposta ainda não está completa - embora pareça improvável que eu vá muito além.
fonte
05AB1E, 12 números, 6 curingas
fonte
Hexagonia , 6 números, 3 curingas, 23 bytes
Experimente online!
O sexto programa inteiro é feito de caracteres curinga.
O único realmente interessante é
3
. Embora eu pudesse fazer isso assim4(!@
, isso me deixaria sem a4
para gerar5
facilmente, então fui com isso:Devido a isso
|
, a)
primeira linha é executada duas vezes, antes do IP passar para o canto direito.$
pula sobre o@
e\
redireciona o IP pela)
terceira vez. O IP passará para o canto inferior esquerdo,!
imprime o3
e@
finaliza o programa.Acho que não são possíveis mais de 6 trechos, porque existem apenas 5 comandos de impressão (
!!!!!
) e 5 comandos que podem ser usados para finalizar o programa (@@@%:
). Portanto, após o quinto snippet, precisamos de pelo menos dois curingas por snippet. Portanto, mesmo se eu conseguisse ficar6
sem usar um curinga, não haveria curingas suficientes para ir para o snippet sete.fonte
JavaScript, 8 números, 4 curingas
Posso tentar novamente mais tarde - estou meio que desperdiçando personagens nos dias 2 e 6, quando você se dedica a isso.
fonte
Befunge-98, 4 trechos, 18 bytes, 2 curingas
Caracteres restantes:
!!!$$%&())))*=ILOQQQTTZ\^`````````eefmpxy{||||~~~~~~~~~
Duvido que mais sejam possíveis, pois todo programa extra exigirá uma forma de saída e todos
.,
já estão esgotados. Se eu conseguir descobrir uma maneira de fazer 3 e 5 sem um curinga, é possível.O último programa será finalizado devido ao preenchimento da pilha.
A
eH
sem impressões digitais carregadas refletirá, e o programa continuará pressionando 9.fonte
%
embora.00%
é válida em Befunge-98 e resulta em 0 (ou pede ao usuário para o resultado em Befunge-93.{
pode reverter se ficar sem memória; nada é dito sobre o envio normal, e todos os intérpretes parecem falhar no OOM, mas claramente os limites de memória são pensados nas especificações de idioma.p
personagem, mas levaria algum trabalho. Você poderia fazere%9
para obter 5, mas você precisaria de uma maneira de imprimi-lo e finalizar o programa, então eu duvido dissoSmileBASIC, 12 trechos, 5 curingas, 31 bytes
Eu também poderia ter usado uma variável em vez de
.
(variáveis começam em 0) e uma variável de string (comoQ$
) em vez de@Q
Caracteres utilizados:
!!!#&*+...1449@AHILQQTem||
Curingas usados:
67813
caracteres não utilizados:
!!$$%()))):=@@OQTZ\\^`````````efpxy{||~~~~~~~~~
fonte