Não é enganador para isso . Essa pergunta pede especificamente uma contagem para sempre, enquanto essa pergunta permite muitas outras abordagens.
Escreva um programa ou função que, com tempo e memória infinitos, imprima uma saída não periódica infinita.
Esclarecimentos
- 'Infinito' significa que a solução continua produzindo algo sem outras entradas ou operações após o início do programa ou função com sucesso.
- 'Não periódico' significa que a saída não tem possibilidade de, eventualmente, repetir a mesma seção para sempre (independentemente da duração desse período). Um exemplo de uma solução válida seria imprimir os dígitos de um número irracional.
- As soluções aleatórias não contam, a menos que você possa provar que se encaixa nos requisitos. As soluções baseadas em data / hora também podem ser inválidas se não forem armazenadas com precisão arbitrária.
Vencedora
O código mais curto (em bytes) vence.
1\n12\n123
inválido?Respostas:
Hexagonia , 2 bytes
Experimente online!
O código-fonte desdobrado se parece com:
Isso apenas executa esses dois comandos em um loop, que são decrement (
(
) e print (!
). Portanto, a saída é:Precisamos usar decremento em vez de incremento para garantir que o programa retorne à primeira linha (se o valor da memória for positivo, o Hexagony entrará em loop entre a segunda e a terceira linha e terminará em um loop infinito sem fazer nada).
fonte
Python 2 , 23 bytes
Experimente online!
Impressões
e assim por diante. Inicia com a função
id
interna, o nome mais curto da variável pré-inicializada e a transforma repetidamente em uma tupla de si mesma.No Python 3, essa solução tem um byte a mais
print()
, mas o byte pode ser recuperado daprint
saídaNone
:ou
fonte
Labirinto , 3 bytes
Experimente online!
Imprime todos os números pares não negativos sem separador:
O IP salta para frente e para trás no código, então isso é realmente
#:!:
um loop:Um monte de alternativas:
fonte
Braquilog , 2 bytes
Experimente online!
Isso imprime todos os números inteiros ordenados por magnitude. Isso nunca excederá e imprimirá números inteiros já vistos, já que o Brachylog usa números inteiros ilimitados por padrão.
Explicação
fonte
> <>, 3 bytes
l:n
Gera um fluxo de números, contando de 0.
Eu acredito que incrementar números não circula ...
Explicação:
l
empurra o comprimento da pilha para a pilha:
duplica o valor da pilha superior em cima da pilhan
gera valor como númeroQuando a linha termina, ela volta ao início, e o faz novamente, mas agora a pilha é mais longa ...
conectados
fonte
PHP, 20 bytes
Emite isso:
Se argumentos de linha de comando forem fornecidos, a saída será diferente, mas ainda não periódica.
Tanto quanto eu entendo a documentação, o próprio idioma não restringe o comprimento das strings.
fonte
JavaScript,
262220 bytes(Aviso: é mau)
fonte
for(n=0;;)alert(n++)
for(;;)alert(Date())
por 20 bytes.Haskell - 10 bytes
Embora em ghci você possa digitar [1 ..] e isso iniciará automaticamente a impressão.
fonte
Brainfuck, 13 bytes, assumindo que não há modificação superior, mas saída 256
código de saída char 2 2 4 6 2 4 6 8 10 12 14 16 18 ...
desculpe o código antigo imprimir loop 0 2 4 6 ... 254,
Brainfuck,
1312 bytes (-1 de Jo King)código de saída de caracteres 0 1 0 1 1 0 1 1 1 0 ...
fonte
[.>].
into[>.]
?+[[>.]<[<]+]
imprime 010110111011110 ...Thanks
+[[>.]<[<],]
e barra de entrada de preenchimento com'\1'
Gelatina , 3 bytes
Experimente online! - trunca a saída e gera um erro, mas vai demorar muito mais localmente (até a memória acabar).
Com uma entrada implícita de zero, este programa consiste em um único link que incrementa
‘
, imprimeȮ
e se autodenomina com o novo valorß
,.fonte
MATL, 4 bytes
Esta solução cria um
while
loop que empurra o índice do loop para a pilha, duplica, imprime o valor e verifica se o índice do loop é diferente de zero para repetir novamente.Experimente Online!
fonte
RProgN 2 , 13 bytes
Há muitos dois na saída, separados por novas linhas progressivamente mais esparsas.
Que imprime 2 ^ n 2s seguidos por uma nova linha para cada iteração.
Experimente online!
fonte
Befunge , 4 bytes
Experimente online!
No Befunge, a pilha não tem fundo e possui zeros infinitos. Dito isto:
1+
adiciona um ao topo da pilha:
duplica a parte superior da pilha.
imprime o valor ascii da parte superior da pilha como um númeroE continua infinitamente, porque não há
@
para parar a execução. Na verdade, esse é um daqueles problemas mais fáceis de resolver pela maneira como o befunge funciona ... estranho.fonte
APL (Dyalog APL) , 8 bytes
{
emsp; uma função anônima ...∇
recursar em⎕ ←
saída para STDOUT0 ⍵
a lista de dois elementos que consiste em um zero e o argumento}
aplicado ao número umA saídas (em linhas separadas)
[0,1]
,[0,[0,1]]
,[0,[0,[0,1]]]
, etc.fonte
Processando,
3029 bytes1 byte economizado graças ao QwerpDerp por usar em
millis()
vez deframeRate
Imprime continuamente o número de milissegundos desde o início do programa.
Saída de amostra:
fonte
C (gcc) ,
8381 bytesPrimeiro, alocando um ponteiro no heap, a função é contabilizada nos endereços de memória adiante até que um segfault seja
*p++
, portanto, é limitada pela quantidade de memória no sistema, e não pelos tipos de dados usados que, eventualmente, estourariam e repetiriam a série. Dada a memória infinita com capacidade de endereçamento infinito, ela continuaria para sempre.Experimente online!
fonte
p++
meu pedido.7 , 2 bytes
Os caracteres que compõem este programa são:
Ao visualizar o arquivo em um editor, ele provavelmente tentará interpretá-lo como ASCII; nesse caso, ele será assim:
Experimente online!
O programa recebe entrada. Eu assumi aqui que a entrada está no EOF; se você fornecer uma entrada, é possível que ela trava.
Explicação
Iteração Zeroth
O programa inteiro aqui é passivo, portanto, ele anexará uma versão ativa de si mesmo ao elemento da pilha superior (que está inicialmente vazio). O programa está em um loop implícito, que avalia o elemento da pilha superior (enquanto o deixa na pilha) a cada iteração. Portanto, a versão ativa será executada. (Praticamente todos os 7 programas começam assim.)
Primeira iteração
Antes do comando de saída, a pilha contém duas cópias de
240223
(ou seja, passivo). O primeiro obtém saída (com nenhum efeito observável além de selecionar o formato de saída 2, "números"), o abaixo fica e se torna o programa para a próxima iteração.Segunda iteração
O mesmo que a iteração zero, certo? Não é bem assim; a pilha tinha conteúdos diferentes. A pilha está agora
240223
abaixo .240223240223
Terceira iteração
Isso gera um elemento de pilha que possui mais três 6s e 0s do que 7s e 1s. O formato de saída 2 interpreta isso como uma solicitação para inserir um número. Lemos EOF, com a conseqüência de que o próximo elemento da pilha é reduzido a uma cadeia de comprimento zero. No entanto, devido a um bug (que parece levemente útil e pode ser promovido a um recurso?), Isso só acontece após o início da execução. A pilha mais uma vez possui dois elementos,
240223
abaixo , mas a versão escapada desse elemento superior está em execução.240223240223240223
72402236240223240223
Quarta iteração
O topo da pilha era uma string de comprimento zero, então basicamente estamos apenas escapando do programa que acabou lá.
Quinta iteração
Isso é muito semelhante à terceira iteração. Existem duas mudanças, no entanto. Primeiro, agora existem 4 mais 0s e 6s do que 1s e 7s; portanto, tentaremos inserir um caractere da entrada padrão em vez de um número. Porém, ainda temos EOF e, no final, acabamos reduzindo o topo da pilha a uma string de comprimento zero. Em seguida, há código em execução após a redução, para que a próxima iteração não inicie imediatamente. Em vez disso, fazemos várias operações nesse elemento de comprimento zero, terminando com três elementos de comprimento zero. Nós produzimos um, os outros dois desaparecem (porque é o fim de uma iteração) e terminamos basicamente onde estávamos no final da terceira iteração.
Sexta iteração
O programa que copiamos do topo da pilha é agora . Tudo funciona como na iteração anterior até chegarmos à primeira instrução de saída (a primeira ). Agora, ele tem mais cinco 0s e 6s do que 1s e 7s; portanto, define um modo no qual a próxima instrução de saída será interpretada como uma solicitação para alterar o formato de saída. Isso também leva a uma notável mudança de comportamento; como não havia solicitação de entrada, não lemos o EOF e, portanto, não acionamos a conseqüência da leitura do EOF (o novo elemento da pilha superior sendo apagado) e, como tal, a versão escapada do elemento da pilha original permanece em vez de ser removido. Isso significa que o próximo
240223240223240223240223
23
2402
não é mais um no-op, criando duas cópias com escape do elemento de pilha com escape (ou seja, agora elas têm escape duplo). Nós produzimos um, configurando o formato de saída para 7 ("igual à entrada"); esse formato de saída não possui comandos de E / S e nenhum comando para alterar o formato; portanto, permaneceremos nele pelo resto do programa. Também produzimos724022362402232402232402232402236
(na mesma codificação que a entrada) para a saída padrão.De qualquer forma, é bastante claro o que o programa fará a partir deste momento: é uma combinação de anexar vários números de cópias de várias formas escapadas
240223
para o topo da pilha, escapando do topo da pilha e emitindo cópias da parte superior da a pilha. A partir deste momento, o elemento da pilha superior nunca é limpo (porque nunca lemos EOF), portanto, apenas cresce, cresce e cresce. O escape periódico garante que a saída nunca se repita (porque significa que a cada iteração, a primeira saída começa com pelo menos um a mais7
do que na iteração anterior).fonte
Ohm , 4 bytes (CP437)
Imprime a variável do contador, a incrementa e entra em um loop infinito! Simples o suficiente.
EDIT (1 / mar / 17): Enquanto eu estava no processo de fazer outras atualizações (depois de postar esta resposta), alterei o comportamento de
∞
. A resposta atualizada seria∞^,
.fonte
"modernos" DC , 9 bytes
Memória infinita?
Então uma pilha em crescimento contínuo está ok?
] :-)
Comentado:
Por causa do uso do
r
comando, isso não será executado em alguns controladores de domínio antigos.fonte
Ruby,
2112 bytesImprima todos os números naturais. Tanto quanto eu entendo a descrição do problema, isso deve estar ok.
fonte
PHP, 21 bytes
Uso:
php -r "for(;;)echo uniqid();"
Produz IDs exclusivos com base no horário atual em microssegundos:
58b3e065e4b4c58b3e065e4b6358b3e065e4b7b58b3e065e4b9458b3e065e4bac58b3e065e4bc458b3e065e4bdc58b3e065e4bf558b3e065e4c0e58b3e065e4c2658b3e065e4c3e58b3e065e4c5658b3e065e4c6f58b3e065e4c8758b3e065e4c9f...
como uma sequência contínua de:
58b3e09390617
58b3e09390651
58b3e0939068a
58b3e093906c3
58b3e093906fc
...
fonte
uniqid
tem um comprimento fixo. Portanto, se você deixar o programa rodar por tempo suficiente, a cadeia transbordará e começará do início. Então, em algum momento, atingirá o tempo inicial e o principal poderá gerar a mesma seqüência exata de IDs novamente. Dito isto, se você pode mostrar que o comprimento não é fixo, isso deve ser bom.Perl 6 , 11 bytes
Imprime os números naturais.
Experimente online!
fonte
Python 2, 24 bytes
Imprime 9 vezes cada potência de 2.
Experimente online
fonte
while n:
.Lote, 7 bytes
Ou:
fonte
Powershell, 19 bytes
Chato contando resposta.
Versão aprimorada da resposta do Count Up Forever
fonte
empilhados , 9 bytes
Experimente online! Semelhante à minha resposta Contar para sempre , isso gera números naturais
0
do contador.fonte
Bourne Shell, 11 bytes
fonte
TI-Basic, 11 bytes
fonte
GNU sed , 13 bytes
Este é um contador de precisão arbitrário em unário. É uma maneira elegante de dizer que eu anexo um
0
ao espaço do padrão e o imprimo em todas as iterações (loop infinito).Depois de algum tempo, isso normalmente ocorre com um erro de alocação de memória e para de imprimir, porque não pode mais armazenar o espaço padrão cada vez maior. Isso não é um problema para esse desafio, pois a memória é assumida como infinita.
Experimente online! (esse intérprete limita ainda mais os recursos disponíveis por design)
Visualização de saída: apenas as 5 primeiras linhas
fonte
Sesos , 2 bytes
SASM
SBIN
Imprime todos os números inteiros não negativos em ordem.
Experimente online!
fonte
set mask
diretiva, o Sesos usa números inteiros de precisão arbitrários.