การฉายรังสีทำให้เป็นวั


10

ท้าทาย

เขียนสองโปรแกรมที่:

  • รันในสองภาษาโปรแกรมที่แตกต่างกัน
    • ภาษาเหล่านี้อาจไม่ใช่สองภาษา
  • เมื่อมีการเรียกใช้โปรแกรมหนึ่งมันจะส่งออกโปรแกรมที่สองและในทางกลับกัน
  • โปรแกรมทั้งสองจะต้องแตกต่างกัน (ไม่มีรูปหลายภาษา)

นี่คือสิ่งที่จับได้ว่า:

  • โปรแกรมจะต้องผ่านการชุบแข็งด้วยรังสี
    • ซึ่งหมายความว่าเมื่อลบชุดอักขระn (กำหนดไว้ด้านล่าง) ออกจากโปรแกรมใดโปรแกรมหนึ่งจากสองโปรแกรมการทำงานของมันจะไม่ได้รับผลกระทบ
    • nถูกกำหนดให้เป็นจำนวนอักขระที่อาจตัดออกจากการทำงานของโปรแกรมของคุณโดยไม่ได้รับผลกระทบ
    • nต้องมีอย่างน้อย11

กฎระเบียบ

  • ช่องโหว่มาตรฐานไม่ได้รับอนุญาต
  • โปรแกรมของคุณจะต้องเป็นวงจรที่เหมาะสม พวกเขาอาจไม่อ่านซอร์สโค้ดของตัวเอง
  • การให้คะแนนจะดำเนินการดังนี้:
    • S1+S2n
    • S1S2
    • n
  • นี่คือคะแนนต่ำสุดชนะ

รางวัล

เนื่องจากความท้าทายนี้ยากที่จะตอบฉันจะให้รางวัลแก่คนแรกที่จะตอบ


โปรแกรมจะต้องเป็น quines ที่เหมาะสมหรือไม่
Mego

@ Mego อ๊ะ - ลืมพูดถึงว่า ใช่.
dkudriavtsev

เอาละ "ควิน quine" ไม่ใช่คำศัพท์ที่ถูกต้องเพราะมันไม่ใช่ quines แต่ดูเหมือนว่าคุณเข้าใจสิ่งที่ฉันหมายถึง
Mego

10
โดยส่วนตัวแล้วฉันไม่คิดว่าสิ่งนี้จะช่วยเพิ่มความท้าทายอย่างมากในเรื่องความยากลำบากของควันหลงแบบกึ่งแข็งและการฉายรังสี ทั้งสองหมวดได้ถูกรวมเข้าด้วยกันในชุดค่าผสมจำนวนมากจนยากที่จะเกิดขึ้นกับชุดค่าผสมดั้งเดิมอย่างแท้จริง
ETHproductions

2
คุณน่าจะเพิ่มรางวัลบางอย่างเพื่อตอบคำถามนี้ ฉันรู้สึกว่ามันยากเกินไปสำหรับหลาย ๆ คนที่อยากลอง ฉันเห็นสิ่งนี้ไม่มีคำตอบและฉันคิดว่า "โอ้ความท้าทายอันยิ่งใหญ่ฉันรักสิ่งนั้น!" แต่แล้วฉันก็อ่านกฎทั้งหมดและมันขัดขวางฉันอย่างสมบูรณ์
MD XF

คำตอบ:


3

Gol> <>และ> <> , (117 bytes + 117 bytes) / 1 = 234

Gol> <>

\\<<'3d*}}}}~}:r0<}!o::! ?>~~a<o>Hr~Kl a}}:?%2l}}}ss2"<<\\
\\<<'3d*}}}}~}:r0<}!o::! ?>~~a<o>Hr~Kl a}}:?%2l}}}ss2"<<\\

ลองออนไลน์!

> <>

\\<<"2ss}}}l2%?:}}a lK~rH>o<a~~>? !::o!}<0r:}~}}}}*d3'<<\\
\\<<"2ss}}}l2%?:}}a lK~rH>o<a~~>? !::o!}<0r:}~}}}}*d3'<<\\

ลองออนไลน์!

ตรวจสอบ!

สองโปรแกรมนี้เหมือนกันเพิ่งกลับรายการ พวกเขาทั้งสองตามโครงสร้างรหัสทั่วไปเดียวกัน

คำอธิบาย (Gol> <> ด้านบน,> <> ที่ด้านล่าง)

\\<<                           <<\\  Transition to the copy of the code that is not radiated
\\<<                           <<\\

                              "    Wrapping string literal over the rest of the code
                              '

                           ss2     Push the string character
                           *3d

                        }}}        Rotate the "<<\" to the correct end of the stack
                        }}}

                 }}:?%2l           Use the extra \ to replace a possible irradiated copy
                    }~}:

       ~     lK                    Duplicate the code
        ~~>? !::o!}<0r             Print a copy of the code in reverse

                a                  Push a newline
       a
    Hr                             Reverse, print the rest of stack and terminate
    >o<                            Print the rest of the stack and terminate
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.