มันเป็นไปได้เล็กน้อยที่จะสร้างฟังก์ชัน bijectiveจาก (ชุดของจำนวนเต็มทั้งหมด) ถึง (เช่นฟังก์ชันตัวตน)
นอกจากนี้ยังสามารถสร้างฟังก์ชัน bijective จากถึง (ชุดของจำนวนเต็ม 2 คู่ทั้งหมด; ผลิตภัณฑ์คาร์ทีเซียนของและ ) ตัวอย่างเช่นเราสามารถใช้ lattice แทนคะแนนจำนวนเต็มบนระนาบ 2D วาดเกลียวจาก 0 ออกมาแล้วเข้ารหัสจำนวนเต็มคู่เป็นระยะทางตามแนวเกลียวเมื่อมันตัดกับจุดนั้น
(ฟังก์ชั่นที่ทำสิ่งนี้กับตัวเลขธรรมชาติเป็นที่รู้จักกันในชื่อฟังก์ชั่นการจับคู่ )
ในความเป็นจริงมีตระกูลของฟังก์ชัน bijective เหล่านี้:
ความท้าทาย
กำหนดตระกูลของฟังก์ชัน (โดยที่เป็นจำนวนเต็มบวก) กับคุณสมบัติที่ทำแผนที่เชิงเส้นจำนวนเต็มกับ -tuples ของจำนวนเต็ม
การส่งของคุณควรจะได้รับปัจจัยการผลิตและกลับ(x)
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง (วัดเป็นไบต์) ชนะ
ข้อมูลจำเพาะ
- ครอบครัวใด ๆ สามารถใช้ได้ตราบใดที่มันเป็นไปตามเกณฑ์ข้างต้น
- คุณได้รับการสนับสนุนให้เพิ่มคำอธิบายวิธีการทำงานของตระกูลฟังก์ชั่นของคุณรวมถึงตัวอย่างเพื่อคำนวณค่าผกผันของฟังก์ชัน (ซึ่งไม่รวมอยู่ในจำนวนไบต์ของคุณ)
- เป็นเรื่องปกติถ้าฟังก์ชันผกผันไม่สามารถคำนวณได้ตราบใดที่คุณสามารถพิสูจน์ได้ว่าฟังก์ชันนั้นเป็น bijective
- คุณสามารถใช้การแทนค่าที่เหมาะสมสำหรับจำนวนเต็มที่ลงนามและรายการจำนวนเต็มที่ลงนามแล้วสำหรับภาษาของคุณ แต่คุณต้องอนุญาตให้อินพุตจากฟังก์ชันของคุณถูก จำกัด ขอบเขต
- คุณจะต้องรองรับค่าได้มากถึง 127 เท่านั้น
k
และx
แทนที่จะเป็นจำนวนเต็มหรือไม่?