รับจำนวนเต็มบวกk > 1
และไม่ใช่จำนวนเต็มลบi
สร้างk
-tuple (หรือk
-dimensional vector) ของจำนวนเต็มไม่เป็นลบ ทุกk
แผนที่จากℕเพื่อℕ k , ต้อง bijective นั่นคือทุกการป้อนข้อมูลi
ควรผลิต tuple ที่แตกต่างกันและทุก tuple i
เป็นไปได้ที่จะต้องมีการผลิตโดยการป้อนข้อมูลบางส่วน
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์
คุณสามารถใช้รูปแบบรายการแบบแบนที่สะดวกและไม่คลุมเครือสำหรับเอาท์พุท
วิธีการแก้ปัญหาของคุณควรกำหนดไม่มีการ จำกัด เทียมk
และi
แต่คุณอาจคิดว่าพวกเขาพอดีกับขนาดจำนวนเต็มภาษาพื้นเมือง อย่างน้อยที่สุดคุณต้องสนับสนุนค่าถึง255
แม้ว่าขนาดจำนวนเต็มดั้งเดิมของคุณจะเล็กกว่านั้น
สำหรับการใด ๆ1 < k < 32
, รหัสของคุณควรสร้างผลลัพธ์ในเรื่องของการวินาที (แน่นอนถ้าคำตอบของคุณไม่สนับสนุนว่าเนื่องจากขนาดใหญ่เพื่อการปกครองก่อนหน้านี้ จำกัด การปรับเปลี่ยนตาม) นี้ควรจะไม่มีปัญหา: มันเป็นไปได้ที่จะแก้ปัญหาความท้าทายเช่นนี้ว่ามันทำงานได้ถึง 2 128ในไม่กี่วินาที แต่วงเงินที่จะมีการหลีกเลี่ยงการตอบที่จริงสำทับจากการที่จะหาผลi < 231
i
0
i
โปรดระบุคำอธิบายเกี่ยวกับการทำแผนที่ที่คุณเลือกและคำตอบว่าทำไมมันถึงเป็น bijective (ไม่จำเป็นต้องพิสูจน์อย่างเป็นทางการ)
นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ
q~2bW%1$Te]/zWf%2fbp
(ตรงกันข้ามกับลำดับอินพุต)