Döndürme güvenli kine


17

Bir yaz Uygun Quine kimin her rotasyon kendisi uygun bir quine olduğunu.

Örneğin, kaynak kodunuz abcdef:

  • abcdef çıktı abcdef
  • bcdefa çıktı bcdefa
  • cdefab çıktı cdefab
  • defabc çıktı defabc
  • efabcd çıktı efabcd
  • fabcde çıktı fabcde

Döndürme "bir dizeyi iki parçaya bölerek ve sıralarını ters çevirerek yapılır" .

puanlama

Bu . Bayt cinsinden en kısa cevap kazanır. Standart boşluklar geçerlidir.


Yani programım aaabbbolabilir ve bir sonraki dönüşün ne olduğunu söyleyebilirim bbbaaa? Yoksa bir sonraki dönüş baaabbmü olmalı ?
Beta Çürümesi

1
Bir sonraki dönüş baaabb.
Sızdıran Rahibe

1
Yan not, standart Fission quine farklı bir rotasyon korumalı quine: nasıl döndürürseniz döndürün, her zaman orijinal kaynak kodunu yazdırır.
Martin Ender

1
Bir dilde bir kine bir bayt ise, bu hile mi?
MD XF

1
bu düzgün bir quine?
tsh

Yanıtlar:


10

Motorola MC14500B Makine Kodu , 1 bayt

1 bayt puanı iki 4 bitlik komuttan türetilir:

0000 0010

açıklama

Motorola MC145008, karar odaklı görevler için optimize edilmiş tek bir yonga, bir bitlik, statik CMOS işlemcidir. İşlemci 16 pimli bir pakette bulunur ve 16 dört bitlik talimat içerir. Talimatlar, bir bit iki yönlü veri hattında görünen veriler ve ICU içinde bir bitlik biriken Sonuç Kaydındaki veriler üzerinde mantıksal işlemler gerçekleştirir. Tüm işlemler bit düzeyinde gerçekleştirilir.

İşlemcinin pinleri numaralandırılmıştır:

Pin ataması

Talimatlar, 4 talimat pimler üzerinde çipe sunulmuştur ( I0, I1, I2, I3) ve X1 negatif devam kenarında Talimat Register (İR) içine kilitlenirler.

Layman'ın terimleriyle, 4 ila 7 numaralı pimler, Talimat Kaydını bir talimatla sunmak için kullanılır, ancak bitler ters sırada yorumlanır. Örneğin talimat 0001, yüksek durumda pim # 7'ye ve düşük durumda pim 6 ila 4'e sahip olacaktır.

Talimatlar, LU'ya uygun mantık komutlarını göndererek Kontrol Mantığında (CTL) çözülür. Bundan başka kod çözme ayrıca çıkış bayrakları bir dizi göndermek için CTL gerçekleştirilir ( JMP, RTN, FLGO, FLGF) Bu harici kontrol sinyalleri olarak kullanılan ve X1'in negatif olacak kenara sonra tam saat bir süre için aktif kalmaktadır ile 12 pim 9.

Veya basitçe, pimleri 9 12 üzerinden çıkış bayrakları FLGF, FLGO, RTN, ve JMPsırasıyla. Verilerin tipik olarak WRITEpime (pin # 2) çoğullandığına dikkat edin . Çıkış bayrağı pinleri diğer dilin çıkış kodlarına benzer.

Yoğun bakım ünitesinin talimatlarının her biri tek bir saat diliminde yürütülür.

rotasyonlar

İlk pozisyon

0000    NOPO
0010    LDC

Saat periyotları:

  1. NOPOTalimat koyar pim 10. ( FLGOyüksek devlet). Bir sonraki saat döneminden önce, çıkış bayrağı pinleri tekrar düşük duruma getirilir.
  2. LDCTalimat yükler çıkış bayrağı işaretçilerine etkilemeden Sonucu Register Veri Bus' değerinin tamamlayıcısı.

Bu nedenle, programın iki saat periyodu sırasında, çıkış bayrağı pinleri, 0100 0000ters olarak (giriş pinleri gibi) okunan 0000 0010veya orijinal talimatları temsil eder.

İlk dönüş

0010    LDC
0000    NOPO

Saat periyotları:

  1. Veri Veri Yolu tamamlayıcısı, çıkış bayrağı pinlerinin hiçbir etkisi olmaksızın Sonuç Kaydına yüklenir.
  2. # 10 numaralı pim yüksek durumuna geçti.

Bu iki saat periyodu sırasında, çıkış bayrağı pinleri 0000 0100, tersine çevrildiğinde talimatlar olan temsil etti 0010 0000.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.