Terkait: Interquine
Program A mengeluarkan kode program B saat dijalankan, dan B mengeluarkan sumber C, dan C menghasilkan sumber A.
Kali ini Anda tidak dapat bertukar dua karakter dan bertukar lagi :)
Persyaratan:
- Hanya satu bahasa di semua program
- Batasan celah standar berlaku
- Semua program berbeda. Satu program yang menghasilkan sendiri tidak memenuhi syarat. Dua yang saling output tidak memenuhi syarat juga.
- Semua program tidak kosong, atau paling tidak panjangnya 1 byte.
- Tidak ada yang dapat dibaca karena stdin terhubung
/dev/null
(Anda dapat menyalahgunakan aturan ini jika Anda bisa ). Output menuju ke stdout. - Jangan gunakan fungsi yang menghasilkan hasil acak.
Tambahan:
- Berikan penjelasan jika memungkinkan
Skor adalah panjang dari yang terpendek (dapatkah Anda membuat program panjang dari yang pendek?). Harap tulis panjang semua program dan sorot jumlah terkecil. Mengejar baris baru tidak masuk hitungan. Skor terendah menang .
Jawaban:
Python 3 , 50 byte
Cobalah online!
Ekspresi terakhir pergi dari
1*2%7
ke2*2%7
ke4*2%7
kemudian kembali ke1*2%7
.sumber
1-2/_
membentuk 3 siklus dengan(1,-1,3)
, yang menyimpan byte dengan tidak perlu melarikan diri%
.n
,s='s=%r;print(s%%(s,-~%i%%3))';print(s%(s,-~1%3))
ganti3
dengann
RProgN 2 ,
128 byteDijelaskan
Karena sifat nyaman dari bagaimana output RProgN secara default, ini meninggalkan angka, yang loop antara 1, 2, dan 4, pada baris pertama, dan versi fungsi yang diketikkan pada baris kedua. Terinspirasi oleh @LeakyNun 's Python Jawaban
Cobalah online!
sumber
CJam , 17 byte
Cobalah online!
Mungkin tidak optimal, tetapi ini adalah modifikasi dari pendekatan saya terhadap tantangan sebelumnya .
Ide dasarnya adalah sama, tetapi kami melakukan dua swap, salah satunya selalu no-op. Indeks yang terpengaruh adalah
2
,3
dan6
:sumber
CJam , 14 byte
Cobalah online!
Program-program lain masing-masing sepanjang 26 dan 38 byte.
Penjelasan
Namun pendekatan lain!
sumber
Jelly , 11 byte
Ini menghasilkan program yang sama dengan 1 diganti dengan 2 , yang diganti 2 dengan 4 , yang menghasilkan program asli.
Cobalah online!
sumber
Python 3, 127, 127 dan 127 byte
cetakan
cetakan
Ini didasarkan pada jawaban saya untuk pertanyaan Interquine, yang didasarkan pada quine Python normal. Dan saya tahu persis apa yang harus dilakukan ketika kami mendapatkan pertanyaan quad-interquine;)
sumber
CJam , 14 byte
Cobalah online!
Penjelasan
sumber
Javascript (ES6),
6355 byteSolusi alternatif menggunakan
Function.prototype.toString
(cheaty, 30 byte)sumber
Lambda Calculus , 38 karakter, 44 byte
Solusi sederhana berdasarkan ibu dari semua quines: y-combinator :
Menggunakan reduksi beta kita melihat bahwa ini memang tri-interkuin:
sumber
Java 8, 118 byte
Hanya
int i=0;
perbedaan antara fungsi / output (baik itu0
,1
atau2
).Penjelasan:
Cobalah online.
Penjelasan tambahan:
quine -part :
String s
berisi kode sumber yang tidak diformat%s
digunakan untuk menempatkan String ini ke dalam dirinya dengans.format(...)
%c
,%2$c
dan34
digunakan untuk memformat tanda kutip ganda ("
)%%
digunakan untuk memformat tanda-modulo (%
)s.format(s,...,34,s)
menempatkan semuanya bersama-samaPerbedaan output / fungsi:
Pendekatan yang sama seperti kebanyakan jawaban lainnya:
int i
mulai dari0
,1
atau2
++i%3
mengubah ini ke depan (0→1
;1→2
;2→0
)sumber
> <> , 15 byte
Cobalah online!
Menggunakan bentuk umum yang sama dengan quine>> lain, tetapi memiliki karakter tambahan di depan yang digilir melalui 1, 2 dan 4.
sumber