พื้นหลัง
bijective ฐานขเลขที่ขเป็นจำนวนเต็มบวกเป็นสัญกรณ์ตำแหน่ง bijective ที่ทำให้การใช้ขสัญลักษณ์ที่เกี่ยวข้องกับค่านิยมของ1ที่จะข
ซึ่งแตกต่างจากคู่ไม่ใช่ bijective ของสัญลักษณ์ไม่มีมีค่าเป็น0 วิธีนี้แต่ละจำนวนเต็มไม่เป็นลบnมีที่ไม่ซ้ำกันเป็นตัวแทนใน bijective ฐานข
ตัวเลข bijective ที่เป็นที่นิยม ได้แก่ unary, bijective base 2 (ใช้ในการเข้ารหัสแบบ run-length ของ bzip2 ) และ bijective base 26 (เคยเป็นคอลัมน์จำนวนในสเปรดชีต)
คำนิยาม
ในความท้าทายนี้เราได้กำหนดสัญลักษณ์ชุดMเป็น
123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<=>
และฟังก์ชั่นฉันจากMไปยังหมายเลขธรรมชาติเช่นว่าฉัน ( '1') = 1, ... , I ( '>') = 64
ได้รับฐานขระหว่าง1และ64 (ทั้งรวม) เรากำหนดว่าแต่ละจำนวนเต็มไม่เป็นลบnสอดคล้องกับสตริงkที่ ... 0ประกอบด้วยสัญลักษณ์ของMเช่นว่าn = b kฉัน (กk ) + ... + B 0ฉัน (เป็น0 )
จดหมายนี้มีการกำหนดที่ดีและมีความ bijective เนื่องจากผลรวมที่ว่างเปล่าถูกกำหนดเป็น0จำนวนเต็ม0จึงสามารถเข้ารหัสเป็นสตริงที่ว่างเปล่า
งาน
ยอมรับสามสายเป็นอินพุต:
อินพุตฐานbระหว่าง1ถึง64เข้ารหัสเป็นสตริงฐาน64 bijective
จำนวนเต็มไม่เป็นลบnซึ่งเข้ารหัสเป็นสตริงฐานทางชีวภาพb
เอาต์พุตฐานBระหว่าง1ถึง64ซึ่งเข้ารหัสเป็นสตริงฐาน bijective 64
รับอินพุตทั้งสามนี้ให้เข้ารหัสnเป็นสตริงฐานB ของ Bijective
กรณีทดสอบ
กรณีทดสอบทั้งหมดระบุการป้อนข้อมูลในการสั่งซื้อข , n , B
Input: "4" "" "8"
Output: ""
Input: "A" "16" "2"
Output: "1112"
Input: "2" "122" "A"
Output: "A"
Input: "3" "31" "1"
Output: "1111111111"
Input: ">" "Fe" "a"
Output: "RS"
กฎระเบียบ
คุณสามารถอ่านสามสตริงในลำดับที่สะดวกเช่นอาร์เรย์ของสตริงการแทนสตริงการต่อกันหรือคั่นด้วยตัวคั่นอักขระเดี่ยวที่คุณเลือก
หากคุณเลือกที่จะพิมพ์ผลลัพธ์ไปที่ STDOUT คุณสามารถพิมพ์สัญลักษณ์และขึ้นบรรทัดใหม่ (หรือเป็นทางเลือก)
อนุญาตการแปลงฐานบิวด์อินทุกชนิด
ใช้กฎมาตรฐานของกอล์ฟ