Écrivez un quine approprié dont chaque rotation est elle-même un quine approprié.
Par exemple, si votre code source est abcdef
, alors:
abcdef
sortiraitabcdef
bcdefa
sortiraitbcdefa
cdefab
sortiraitcdefab
defabc
sortiraitdefabc
efabcd
sortiraitefabcd
fabcde
sortiraitfabcde
Une rotation "se fait en coupant une corde en deux morceaux et en inversant leur ordre" .
Notation
C'est du code-golf . La réponse la plus courte en octets l'emporte. Des échappatoires standard s'appliquent.
aaabbb
et je pourrais dire que la prochaine rotation estbbbaaa
? Ou la prochaine rotation devraitbaaabb
-elle être ?baaabb
.Réponses:
Code machine Motorola MC14500B , 1 octet
Le score de 1 octet est dérivé de deux instructions de 4 bits:
Explication
Les broches du processeur sont numérotées:
En termes simples, les broches 4 à 7 sont utilisées pour présenter le registre d'instructions avec une instruction, mais les bits sont interprétés dans l'ordre inverse. Par exemple, l'instruction
0001
aurait la broche # 7 à l'état haut et les broches 6 à 4 à l'état bas.Ou, tout simplement, les broches 9 à 12 sont les indicateurs de sortie
FLGF
,FLGO
,RTN
etJMP
, respectivement. Notez que les données sont généralement multiplexées sur laWRITE
broche (broche n ° 2). Les broches d'indicateur de sortie sont similaires aux codes de sortie d'autres langues.Rotations
Position initiale
Les périodes d'horloge:
NOPO
instruction met la broche # 10 (FLGO
) à l'état haut. Avant la prochaine période d'horloge, les broches de drapeau de sortie sont remises à l'état bas.LDC
instruction charge le complément de la valeur du bus de données dans le registre des résultats, sans affecter les broches d'indicateur de sortie.Ainsi, pendant les deux périodes d'horloge du programme, les broches de drapeau de sortie ont représenté
0100 0000
, ce qui, lu à l'envers (comme les broches d'entrée), est0000 0010
, ou les instructions d'origine.Première rotation
Les périodes d'horloge:
Au cours de ces deux périodes d'horloge, les broches de drapeau de sortie se sont représentées
0000 0100
, qui, lorsqu'elles sont inversées, sont les instructions0010 0000
.la source