Crie um programa que produza a si próprio.
No entanto, se o código-fonte for repetido n vezes (o que significa concatenar uma cópia do código-fonte até o final n-1 vezes) , deve haver 1 / n de probabilidade de saída do código-fonte original, 1 / n de probabilidade de saída o código-fonte repetido duas vezes, uma probabilidade de 1 / n de saída do código-fonte repetido três vezes, ... e uma probabilidade de 1 / n de saída do código-fonte n vezes.
Por exemplo, se o seu programa for foobar
, ele sempre deve ser exibido exatamente foobar
. No entanto, se você executar foobarfoobarfoobarfoobar
, então deve haver um ¼ chance de cada um de saída foobar
, foobarfoobar
, foobarfoobarfoobar
e foobarfoobarfoobarfoobar
.
- A distribuição de cada saída possível deve ser igual
- Além dos métodos de E / S padrão aplicáveis e brechas padrão proibidas, aplicam-se regras de quine padrão (não é possível acessar sua própria fonte, etc.)
- Este é o código de golfe, então a resposta mais curta em bytes ganha
foobarfoobar
), então ele só tinha imprimirfoobar
foobarfoobar
éfoobar
repetido duas vezes, nem uma vez.Respostas:
Perl 5 ,
8280 bytesExperimente online! ou suíte de teste
fonte
Geléia ,
2422 bytesExperimente online!
Experimente x4!
fonte
05AB1E , 32 bytes
Experimente online!
Explicação
fonte
Gol> <> , 21 bytes
Experimente online!
Explicação:
fonte
Alice , 35 bytes
Experimente online!
Explicação
Como em muitos quines nas linguagens 2D, isso começa com um
"
que se envolve e empurra toda a primeira linha, exceto a"
própria.A adição de uma ou mais cópias adicionais do código-fonte colocará alguns espaços implícitos no final da string literal. Para tornar isso realmente adequado, truncamos a pilha com 31 caracteres.
Empurre uma nova linha e, em seguida, a altura da pilha três vezes. Os valores pressionados como a altura da pilha são 32 (o espaço na segunda linha), 33 (o
!
na segunda linha) e 34 (a inicial"
).Empurre a altura da pilha novamente, desta vez como o comprimento do código fonte original (35).
Inicialize um contador em 1. Contará o número de vezes que o código fonte é repetido.
Vire à direita três vezes no lugar (ou seja, vire à esquerda). Cada repetição adicional do código-fonte contribuirá
h
com a mesma coluna}
, incrementando o contador. Quando o IP retornar ao}
, vire à direita novamente para continuar na mesma direção.Pegue um número aleatório uniforme de 0 a n-1 e adicione 1 para obter o número de vezes que a fonte original será impressa.
Multiplique pela altura da pilha enviada anteriormente (comprimento do código) e repita o seguinte várias vezes, pressionando um endereço de retorno tantas vezes menos um.
Produza a parte superior da pilha sem destruí-la.
Mova a entrada da pilha inferior para o topo.
Repita e termine depois que o loop terminar.
fonte
JavaScript (Node.js) , 62 bytes
Experimente online!
fonte
Carvão , 58 bytes
Experimente online! Nenhuma versão detalhada porque o deverbosifier atualmente engasga
"´"
. Principalmente com base no carvão mineral da Golf você um mineral para o bem! . Explicação:Atribua a sequência literal
θ⎚×⊕‽L⊞Oυω⁺⪫⁺´≔θ´´θ
aθ
.Limpe qualquer saída anterior, para que somente a última saída entre em vigor.
Empurre a sequência vazia para a matriz predefinida. Isso faz com que o comprimento da matriz seja igual ao número de repetições processadas até o momento;
Anexe o texto literal
≔
aθ
, insira´
s literais entre cada caractere e, em seguida, coloque outra cópia deθ
.fonte