นี่เป็นความท้าทายของตำรวจและโจร ด้ายโจรเป็นที่นี่
คำถามที่น่าสนใจที่ต้องคำนึงถึงมีดังนี้:
หากฉันมีลำดับตัวเลขฉันต้องระบุจำนวนเท่าไรก่อนที่จะชัดเจนว่าฉันกำลังพูดถึงลำดับใด
ตัวอย่างเช่นถ้าฉันต้องการพูดคุยเกี่ยวกับจำนวนเต็มบวกตามลำดับเริ่มต้นที่ฉันสามารถพูดได้แต่นั่นก็เพียงพอแล้วจริงหรือ1 , 2 , 3 , ...
ฉันมีวิธีหนึ่งในการตอบคำถามนี้และการเป็นนักกอล์ฟที่เกี่ยวข้องกับ code-golf คุณได้ให้เงื่อนไขของลำดับที่เพียงพอหากรหัสที่สั้นที่สุดที่สร้างคำเหล่านั้นสร้างเงื่อนไขทั้งหมดของลำดับ ถ้าเราคิดถึงเรื่องนี้ในเรื่องของ code-golf นี่ก็หมายความว่าคุณได้เตรียมเคสทดสอบไว้เพียงพอแล้วว่ารหัสสั้นที่สุดที่ผ่านการทดสอบจะเป็นงานที่ต้องการ
ท้าทาย
ความท้าทายนี้เป็นตำรวจและโจรท้าทาย ในกรณีที่ตำรวจจะนำเสนอกรณีทดสอบและโจรจะต้องหาวิธีที่สั้นกว่าในการหลอกกรณีทดสอบอื่น ๆ นอกเหนือจากลำดับที่ตั้งใจไว้ ตำรวจจะนำเสนอสิ่งต่อไปนี้:
ชิ้นส่วนของรหัสที่ใช้จำนวนเต็มไม่เป็นลบเป็นอินพุตและสร้างจำนวนเต็มเป็นผลลัพธ์ รหัสนี้จะกำหนดลำดับของคุณ รหัสของคุณไม่จำเป็นต้องรองรับ 0 เป็นอินพุตโดยเลือกใช้ 1 เป็นอินพุตที่เล็กที่สุดแทน ควรชัดเจนว่าเป็นกรณีนี้ในคำตอบของคุณ
ข้อกำหนดแพลตฟอร์มหรือภาษาที่เกี่ยวข้องใด ๆ ที่อาจมีผลต่อเอาต์พุตตัวอย่างเช่นขนาดของ longint
จำนวนพร้อมกับครั้งแรกแง่ของการลำดับตามที่คำนวณได้จากรหัส สิ่งเหล่านี้จะทำหน้าที่เป็น "กรณีทดสอบ"n
คุณได้รับการสนับสนุนให้อธิบายสิ่งที่ลำดับของคุณทำและเชื่อมโยง OEIS หากมีอยู่อย่างไรก็ตามเป็นรหัสของคุณที่กำหนดลำดับไม่ใช่คำอธิบาย
โจรจะค้นหาโปรแกรมในภาษาเดียวกันที่สั้นกว่าที่นำเสนอและผ่านกรณีทดสอบทั้งหมด (สร้างเอาต์พุตเดียวกันสำหรับอินพุตแรกเป็นรหัสของตำรวจ) รหัสโม่งก็ต้องแตกต่างกันในการส่งออกจากโปรแกรมของตำรวจสำหรับจำนวนบางส่วนมีขนาดใหญ่กว่าnn
ตำรวจต้องสามารถถอดรหัสคำตอบของตนเองก่อนส่งได้
หลังจากหนึ่งสัปดาห์ตำรวจอาจเปิดเผยรอยแตกและทำเครื่องหมายคำตอบว่าปลอดภัย คำตอบที่ทำเครื่องหมายว่าไม่สามารถถอดรหัสได้อีกต่อไป
เกณฑ์การให้คะแนน
คำตอบของตำรวจจะได้คะแนนตามจำนวนไบต์ที่มีจำนวนไบต์น้อยกว่าดีกว่า คำตอบที่แตกจะให้คะแนนเป็นอนันต์