ท้าทาย
ให้การแทน 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 นาทีถึงชั่วโมง