ท้าทาย
ให้การแทน ASCII ของหมายเลข Babylonian เป็น input, ส่งออกตัวเลขในเลขอารบิคตะวันตก
ระบบตัวเลขของบาบิโลน
ชาวบาบิโลนนับอย่างไร ที่น่าสนใจคือพวกเขาใช้ระบบฐาน 60 พร้อมองค์ประกอบของระบบฐาน 10 ก่อนอื่นให้พิจารณาคอลัมน์หน่วยของระบบ:
ชาวบาบิโลนมีเพียงสามสัญลักษณ์: T(หรือถ้าคุณสามารถทำให้มัน:) 𒐕ซึ่งเป็นตัวแทน 1 และ<(หรือถ้าคุณสามารถทำให้มัน:) 𒌋ซึ่งเป็นตัวแทน 10 และ\(หรือถ้าคุณทำให้มัน:) 𒑊ซึ่งเป็นศูนย์
หมายเหตุ: ในทางเทคนิคแล้ว\(หรือ𒑊) ไม่ใช่ศูนย์ (เพราะชาวบาบิโลนไม่ได้มีความคิดเป็น 'ศูนย์') 'Zero' ถูกประดิษฐ์ขึ้นในภายหลังดังนั้นจึง\มีการเพิ่มสัญลักษณ์ตัวยึดตำแหน่งในภายหลังเพื่อป้องกันความกำกวม อย่างไรก็ตามสำหรับวัตถุประสงค์ของการท้าทายนี้ก็ถือว่าเพียงพอแล้วที่จะ\เป็นศูนย์
ดังนั้นในแต่ละคอลัมน์คุณเพียงเพิ่มมูลค่าของสัญลักษณ์เช่น:
<<< = 30
<<<<TTTTTT = 46
TTTTTTTTT = 9
\ = 0
จะไม่มีมากกว่าห้า<หรือมากกว่าเก้าTในแต่ละคอลัมน์ \จะปรากฏอยู่คนเดียวในคอลัมน์เสมอ
ตอนนี้เราจำเป็นต้องขยายเพื่อเพิ่มคอลัมน์เพิ่มเติม วิธีนี้ทำงานเหมือนกับฐานหกสิบอื่น ๆ ทุกประการที่คุณคูณค่าของคอลัมน์ขวาสุดด้วย , หนึ่งทางซ้าย , หนึ่งทางซ้ายเป็นต้น จากนั้นคุณจะเพิ่มมูลค่าของแต่ละรายการเพื่อรับค่าของตัวเลข
คอลัมน์จะถูกคั่นด้วยช่องว่างเพื่อป้องกันความกำกวม
ตัวอย่างบางส่วน:
<< <TT = 20*60 + 12*1 = 1212
<<<TT \ TTTT = 32*60^2 + 0*60 + 4*1 = 115204
กฎระเบียบ
- คุณมีอิสระที่จะรับอินพุต ASCII (
T<\) หรืออินพุต Unicode (𒐕𒌋𒑊) - จำนวนที่ป้อนจะต่ำกว่า
<เสมอจะไปทางซ้ายของTในแต่ละคอลัมน์\จะปรากฏอยู่คนเดียวในคอลัมน์เสมอ
การชนะ
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
<<<<TTTTTT <TTTTTTT <<<<TTTTTT <<<<
"How did the Babylonians count? Interestingly, they used a Base 60 system with an element of a Base 10 system."ซึ่งยังคงใช้อยู่ในปัจจุบัน ระบบหมายเลขบาบิโลนเป็นสิ่งที่เราใช้สำหรับนาฬิกา ทศนิยมสองหลักแต่ละหน่วยเป็นวินาทีนาทีและชั่วโมง 60 วินาทีถึงนาที 60 นาทีถึงชั่วโมง