Escreva um quine apropriado cuja cada rotação seja ele próprio um quine adequado.
Por exemplo, se o seu código-fonte for abcdef
, então:
abcdef
produziriaabcdef
bcdefa
produziriabcdefa
cdefab
produziriacdefab
defabc
produziriadefabc
efabcd
produziriaefabcd
fabcde
produziriafabcde
Uma rotação "é feita dividindo uma corda em duas partes e revertendo sua ordem" .
Pontuação
Isso é código-golfe . A resposta mais curta em bytes vence. Aplicam-se brechas padrão .
aaabbb
e eu poderia dizer que a próxima rotação ébbbaaa
? Ou teria que ser a próxima rotaçãobaaabb
?baaabb
.Respostas:
Motorola MC14500B Código da máquina , 1 byte
A pontuação de 1 byte é derivada de duas instruções de 4 bits:
Explicação
Os pinos do processador são numerados:
Nos termos leigos, os pinos 4 a 7 são utilizados para apresentar uma instrução ao Registro de Instruções, mas os bits são interpretados na ordem inversa. Por exemplo, a instrução
0001
teria o pino 7 no estado alto e os pinos 6 a 4 no estado baixo.Ou, simplesmente, pinos 9 a 12 são as bandeiras de saída
FLGF
,FLGO
,RTN
, eJMP
, respectivamente. Observe que os dados geralmente são multiplexados noWRITE
pino (pino nº 2). Os pinos dos sinalizadores de saída são semelhantes aos códigos de saída de outros idiomas.Rotações
Posição inicial
Os períodos do relógio:
NOPO
instrução coloca o pino # 10 (FLGO
) no estado alto. Antes do próximo período do relógio, os pinos do sinalizador de saída são colocados novamente no estado baixo.LDC
instrução carrega o complemento do valor do barramento de dados no registro de resultados, sem afetar os pinos do sinalizador de saída.Assim, durante os dois períodos do relógio do programa, os pinos do sinalizador de saída representaram o
0100 0000
que, lido em sentido inverso (como os pinos de entrada), é0000 0010
ou as instruções originais.Primeira rotação
Os períodos do relógio:
Durante esses dois períodos de relógio, os pinos do sinalizador de saída representaram
0000 0100
, que, quando revertidas, são as instruções0010 0000
.fonte