แรงบันดาลใจจากHyperprogramming: N + N, N × N, N ^ N ทั้งหมดในที่เดียว
ขอบคุณ @MartinEnder และ @trichoplax สำหรับความช่วยเหลือในกล่องทราย
คำนิยาม
Hyperquines
กำหนดhyperquineของnคำสั่งเป็นโปรแกรมหรือฟังก์ชันPเหมือนเต็มquine ที่ตรงกับกฎทั้งหมดที่ใช้กับquines ที่เหมาะสมและนอกจากนี้มีโครงสร้างดังต่อไปนี้
Pคือการรวมกันของกลุ่มอักขระ‡ที่ประกอบด้วยสำเนาnตัวอักษรเดียวกัน เมื่อPจะถูกดำเนินการในการส่งออกคือการเรียงต่อกันในกลุ่มเดียวกันเติมโดยสำเนาอีกหนึ่งของตัวละคร
ตัวอย่าง
ในการเขียนโปรแกรมภาษาสมมุติที่รหัสที่มา
aabbcc
สร้างการส่งออกaaabbbccc
โปรแกรมนี้ถือว่า hyperquine สั่งซื้อ2คำจำกัดความไม่ต้องการให้อักขระของกลุ่มต่างกันจะแตกต่างกัน
ถ้าซอร์สโค้ด
aabbcc
สร้างเอาท์พุทaaaabbbbcccc
, โปรแกรมเป็น hyperquine ของการสั่งซื้อ1 ; ซอร์สโค้ดประกอบด้วยกลุ่มอักขระเดี่ยวหกกลุ่มเอาต์พุตของอักขระหกคู่ในGS2โปรแกรมที่ว่างเปล่าจะพิมพ์ออก
\n
มาและโปรแกรมจะ\n
พิมพ์\n\n
ออกมา แต่ไม่\n
ว่ามิได้\n\n
มี hyperquines เนื่องจากพวกเขาพวกเขาไม่ตอบสนองคุณสมบัติทั้งหมดของquines ที่เหมาะสม ; ไม่มีส่วนใดของรหัสที่มาเข้ารหัสส่วนต่าง ๆของผลลัพธ์
โซ่ไฮเปอร์วิน
นิยามhyperquine chain of length nเป็นลำดับที่แน่นอนของn full programs หรือn function
(P 1 , …, P n )ที่สอดคล้องกับข้อ จำกัด ดังต่อไปนี้
เอาต์พุตของP 1 , …, P n-1คือP 2 , …, P n , ตามลำดับ
P 1 , …, P nคือไฮเปอร์คิ
คำสั่งของP 1 , …, P nสร้างลำดับของจำนวนเต็มที่อยู่ติดกันอย่างเคร่งครัด
สุดท้ายกำหนดห่วงโซ่ hyperquine อนันต์เป็นลำดับอนันต์ของโปรแกรมเต็มหรือฟังก์ชั่น(P 1 , P 2 , ... )เช่นกันว่าช่วงเวลาเริ่มต้น(P 1 , ... , P n )ที่ถือว่าเป็นห่วงโซ่ hyperquine ของความยาวn
ตัวอย่าง
ในการเขียนโปรแกรมภาษาสมมุติที่รหัสที่มา
aabbcc
สร้างการส่งออกaaabbbccc
ซึ่งในที่สุดก็สร้างเอาท์พุทaaaabbbbcccc
คู่ (aabbcc
,aaabbbccc
) ที่ถือว่าเป็นห่วงโซ่ hyperquine ของความยาว2โปรดทราบว่า
aaaabbbbcccc
- ผลลัพธ์ของไฮเปอร์ควินล่าสุดในสายโซ่ - ไม่จำเป็นต้องสร้างเอาต์พุตเฉพาะ ไม่จำเป็นต้องเป็นซอร์สโค้ดที่ถูกต้องอย่างต่อเนื่องตัวอย่างก่อนหน้านี้ถ้า
aaaabbbbcccc
สร้างเอาท์พุทaaaaabbbbbccccc
, แฝด (aabbcc
,aaabbbccc
,aaaabbbbcccc
) ที่ถือว่าเป็นห่วงโซ่ hyperquine ของความยาว3หากรูปแบบนี้ยังคงอยู่ตลอดไปลำดับ (
aabbcc
,aaabbbccc
,aaaabbbbcccc
, ... ) ถือว่าเป็นห่วงโซ่ hyperquine อนันต์คู่ของโปรแกรม (
abc
,aabbcc
) ที่มีเอาต์พุต (aabbcc
,aaaabbbbcccc
) ไม่ได้เป็นไฮเปอร์วินซีนเนื่องจากคำสั่งของไฮเปอร์วินเป็นทั้ง1ดังนั้นพวกเขาจึงไม่ได้เรียงลำดับที่เพิ่มขึ้นอย่างเข้มงวดคู่ของโปรแกรม (
aabbcc
,aaaabbbbcccc
) ที่มีเอาท์พุต (aaaabbbbcccc
,aaaaabbbbbccccc
) ไม่ใช่สายไฮเปอร์ควินเนื่องจากคำสั่งของไฮควินเป็น1และ4ดังนั้นจึงไม่ได้สร้างลำดับของจำนวนเต็มที่อยู่ติดกัน
กฎระเบียบ
งาน
ในภาษาการเขียนโปรแกรมที่คุณเลือกให้เขียนไฮเปอร์ควิโนนที่ไม่สำคัญเช่นเชนที่ประกอบด้วยไฮเปอร์คินอย่างน้อย2ตัว
ตามปกติโปรแกรมของคุณจะไม่รับอินพุตหรือเข้าถึงซอร์สโค้ดของตัวเองในรูปแบบใด ๆ
หากล่ามของคุณพิมพ์บรรทัดใหม่โดยนัยไฮเปอร์ไลน์ของคุณจะต้องคำนึงถึงสิ่งนี้
มีช่องโหว่มาตรฐานทั้งหมดโดยเฉพาะที่เกี่ยวข้องกับควินิน
เกณฑ์การให้คะแนน
ห่วงโซ่ hyperquine ที่ยาวที่สุดชนะ หากมีการเชื่อมโยงการส่งสองครั้งขึ้นไปการส่งระหว่างสิ่งเหล่านี้ที่เริ่มต้นด้วย hyperquine ที่สั้นที่สุด (วัดเป็นอักขระ‡ ) จะชนะ ตามปกติเวลาการโพสต์คือ tiebreaker สุดท้าย
‡ คุณต้องใช้การเข้ารหัสอักขระเดียวกันสำหรับซอร์สโค้ดเอาต์พุตจำนวนตัวอักษรและการดำเนินการ ตัวอย่างเช่นโปรแกรม Python print 42
เป็นได้ 2 ตัว UTF-32 ส่งตั้งแต่ถือว่าล่ามแต่ละไบต์เป็นตัวเดียว หากภาษาที่คุณเลือกไม่ได้อิงกับตัวอักษรให้ถือว่าไบต์แต่ละตัวเป็นตัวอักษร