Terinspirasi oleh Hyperprogramming: N + N, N × N, N ^ N semuanya dalam satu .
Terima kasih kepada @MartinEnder dan @trichoplax untuk bantuan mereka di kotak pasir.
Definisi
Hyperquine
Tetapkan hyperquine of order n sebagai program penuh seperti-quine atau fungsi P yang memenuhi semua aturan yang berlaku untuk quine yang tepat dan, di samping itu, memiliki struktur berikut.
P adalah gabungan dari karakter ‡ grup yang terdiri dari n salinan dari karakter yang sama. Ketika P dieksekusi, outputnya adalah gabungan dari grup yang sama, ditambah oleh satu salinan karakter.
Contohnya
Dalam bahasa pemrograman hipotetis di mana kode sumber
aabbcc
menghasilkan outputaaabbbccc
, program ini merupakan hyperquine of order 2 .Definisi ini tidak memerlukan karakter dari kelompok yang berbeda untuk berbeda.
Jika kode sumber
aabbcc
menghasilkan outputaaaabbbbcccc
, program adalah hyperquine pesanan 1 ; kode sumber terdiri dari enam kelompok karakter tunggal, output dari enam pasangan karakter.Di GS2 , program yang kosong dicetak
\n
, dan program yang\n
dicetak\n\n
. Namun, tidak\n
juga\n\n
hyperquine, karena mereka tidak memenuhi semua sifat quines yang tepat ; tidak ada bagian dari kode sumber yang mengkodekan bagian berbeda dari output.
Rantai hyperquine
Tentukan rantai panjang hyperquine n sebagai urutan terbatas dari n program penuh atau fungsi n
(P 1 , ..., P n ) yang memenuhi batasan berikut.
Output dari P 1 , ..., P n-1 adalah P 2 , ..., P n , masing-masing.
P 1 ,…, P n adalah hyperquine.
Perintah P 1 , ..., P n membentuk urutan peningkatan ketat dari bilangan bulat yang berdekatan .
Akhirnya, tentukan rantai hyperquine tak terbatas sebagai urutan tak terbatas dari program atau fungsi penuh (P 1 , P 2 , ...) sedemikian rupa sehingga setiap interval awal (P 1 , ..., P n ) merupakan rantai panjang hyperquine n .
Contohnya
Dalam bahasa pemrograman hipotetis di mana kode sumber
aabbcc
menghasilkan outputaaabbbccc
, yang, pada gilirannya, menghasilkan outputaaaabbbbcccc
, pasangan (aabbcc
,aaabbbccc
) membentuk rantai hyperquine dengan panjang 2 .Perhatikan bahwa
aaaabbbbcccc
- output dari hyperquine terakhir dalam rantai - tidak harus menghasilkan output spesifik; bahkan tidak harus menjadi kode sumber yang valid.Melanjutkan contoh sebelumnya, jika
aaaabbbbcccc
menghasilkan outputaaaaabbbbbccccc
, triplet (aabbcc
,aaabbbccc
,aaaabbbbcccc
) merupakan rantai hyperquine panjang 3 .Jika pola ini terus selamanya, urutan (
aabbcc
,aaabbbccc
,aaaabbbbcccc
, ...) merupakan rantai hyperquine tak terbatas.Pasangan program (
abc
,aabbcc
) dengan output (aabbcc
,aaaabbbbcccc
) bukan rantai hyperquine, karena urutan hyperquine keduanya 1 , sehingga mereka tidak membentuk urutan peningkatan yang ketat.Pasangan program (
aabbcc
,aaaabbbbcccc
) dengan output (aaaabbbbcccc
,aaaaabbbbbccccc
) bukan rantai hyperquine, karena urutan hyperquine adalah 1 dan 4 , sehingga mereka tidak membentuk urutan bilangan bulat yang berdekatan.
Aturan
Tugas
Dalam bahasa pemrograman pilihan Anda, tulis rantai hyperquine non-trivial, yaitu rantai yang terdiri dari setidaknya 2 hyperquine.
Seperti biasa, program Anda mungkin tidak mengambil input apa pun atau mengakses kode sumbernya sendiri dalam bentuk apa pun.
Jika penerjemah Anda mencetak baris baru yang tersirat, hyperquine Anda harus menjelaskan hal ini.
Semua celah standar - terutama yang terkait dengan quines - berlaku.
Mencetak gol
Rantai hyperquine terpanjang menang. Jika dua atau lebih kiriman diikat, kiriman di antara ini yang dimulai dengan hyperquine terpendek (diukur dalam karakter ‡ ) menang. Seperti biasa, waktu posting adalah tiebreak terakhir.
‡ Anda harus menggunakan pengkodean karakter yang sama untuk kode sumber, output, jumlah karakter, dan eksekusi. Sebagai contoh, program Python print 42
adalah tidak 2 karakter UTF-32 pengajuan, karena penafsir memperlakukan setiap byte sebagai karakter tunggal. Jika bahasa pilihan Anda tidak berbasis karakter, perlakukan semua byte sebagai karakter.