Безпечний для обертання квін


17

Напишіть належну квочку , кожне обертання якої є власною лайкою.

Наприклад, якщо ваш вихідний код abcdef, то:

  • abcdef виведе abcdef
  • bcdefa виведе bcdefa
  • cdefab виведе cdefab
  • defabc виведе defabc
  • efabcd виведе efabcd
  • fabcde виведе fabcde

Поворот "робиться шляхом розбиття струни на дві частини та зміни їх порядку" .

Оцінка балів

Це . Найкоротша відповідь у байтах виграє. Застосовуються стандартні лазівки .


Тож я міг би мати програму aaabbbі можу сказати, що наступна ротація bbbaaa? Або повинна бути наступна ротація baaabb?
Бета-розпад

1
Наступне обертання - це baaabb.
Leaky Nun

1
Бічна примітка, стандартна квітка Fission - це інша квітка, безпечна для обертання: незалежно від того, як ви її обертаєте, вона завжди буде друкувати вихідний вихідний код.
Мартін Ендер

1
Якщо квітка на мові - один байт, це обман?
MD XF

1
Є чи це правильний Куайн?
tsh

Відповіді:


10

Motorola MC14500B код машини , 1 байт

Оцінка 1 байт отримана з двох 4-бітних інструкцій:

0000 0010

Пояснення

Motorola MC145008 - це єдиний мікросхем, однобітний статичний процесор CMOS, оптимізований для вирішення завдань. Процесор розміщений у 16-контактному пакеті та має 16 чотирибітних інструкцій. Вказівки виконують логічні операції над даними, що з’являються в однобітному двонаправленому рядку даних, і дані в однорозрядному накопичувальному реєстрі результатів в ICU. Всі операції виконуються на рівні бітів.

Штифти процесора пронумеровані:

Призначення шпильок

Інструкції представлені на чіп на штирках 4 команд, ( I0, I1, I2, I3), і замикаються в регістр команд, (IR), на негативній поточної кромці X1.

За умовами мирян, штифти 4 - 7 використовуються для подання Інструкції Реєстру з інструкцією, але біти інтерпретуються у зворотному порядку. Наприклад, інструкція 0001матиме штифт №7 у високому стані та шпильки 6 - 4 у низькому.

Інструкції розшифровуються в логіці управління (CTL), надсилаючи відповідні логічні команди до LU. Подальше декодування також виконується в CTL , щоб відправити число вихідних прапорів ( JMP, RTN, FLGO, FLGF) до контактів 9 до 12. Вони використовуються в якості зовнішніх керуючих сигналів і залишаються активними в протягом повного періоду тактового сигналу після негативного триваючого краю X1.

Або, просто, контакти 9 через 12 є вихідними прапорами FLGF, FLGO, RTNі JMP, відповідно. Зауважте, що дані зазвичай мультиплексовані на WRITEштифт (контактний №2). Штифти вихідного прапора схожі з кодами виходу інших мов.

Кожна інструкція ICU виконується за один годинний час.

Обертання

Початкове положення

0000    NOPO
0010    LDC

Годинники:

  1. NOPOІнструкція поміщає контактний # 10 ( FLGO) в високому стані. Перед наступним тактовим періодом штифти вихідного прапора повертаються в низький стан.
  2. В LDCінструкції завантажує комплемент значення шини даних в регістр результату, не впливаючи на контакти вихідного прапора.

Отже, протягом двох тактових періодів програми були представлені штифти вихідних прапорців 0100 0000, які, прочитані в зворотному порядку (як вхідні штифти), є 0000 0010оригінальними інструкціями.

Перше обертання

0010    LDC
0000    NOPO

Годинники:

  1. Доповнення шини даних завантажується в Реєстр результатів, без ефекту штифтів вихідного прапора.
  2. Штифт №10 перемикається на високий стан.

Протягом цих двох тактових періодів були представлені штифти вихідних прапорців 0000 0100, які при зворотному напрямку є інструкцією 0010 0000.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.