Tantangan
Diberikan representasi ASCII dari nomor Babel sebagai input, output angka dalam angka Arab Barat.
Sistem Angka Babilonia
Bagaimana orang Babilonia menghitung? Menariknya, mereka menggunakan sistem Base 60 dengan elemen sistem Base 10. Pertama mari kita perhatikan kolom unit sistem:
Bangsa Babilonia hanya memiliki tiga simbol: T
(atau, jika Anda dapat menerjemahkannya:) 𒐕
yang mewakili 1, dan <
(atau, jika Anda dapat menerjemahkannya:) 𒌋
yang mewakili 10, dan \
(atau, jika Anda menerjemahkannya:) 𒑊
yang mewakili nol.
Catatan: Secara teknis, \
(atau 𒑊
) bukan nol (karena orang Babel tidak memiliki gagasan 'nol'). 'Nol' ditemukan kemudian, demikian \
juga simbol placeholder ditambahkan kemudian untuk mencegah ambiguitas. Namun, untuk keperluan tantangan ini, cukup untuk dianggap \
sebagai nol
Jadi, di setiap kolom Anda hanya menambahkan nilai simbol, misalnya:
<<< = 30
<<<<TTTTTT = 46
TTTTTTTTT = 9
\ = 0
Tidak akan ada lebih dari lima <
atau lebih dari sembilan T
di setiap kolom. \
akan selalu muncul sendiri di kolom.
Sekarang, kita perlu memperluas ini untuk menambahkan lebih banyak kolom. Ini bekerja persis sama dengan basis enam puluh lainnya, di mana Anda mengalikan nilai kolom paling kanan dengan , yang ke kiri dengan 60 1 , yang ke kiri dengan 60 2 dan seterusnya. Anda kemudian menjumlahkan nilai masing-masing untuk mendapatkan nilai angka.
Kolom akan dipisahkan oleh spasi untuk mencegah ambiguitas.
Beberapa contoh:
<< <TT = 20*60 + 12*1 = 1212
<<<TT \ TTTT = 32*60^2 + 0*60 + 4*1 = 115204
Aturan
- Anda bebas menerima input ASCII (
T<\
) atau input Unicode (𒐕𒌋𒑊
) - Nomor yang dimasukkan akan selalu di bawah
- The
<
s akan selalu ke kiriT
s di setiap kolom \
akan selalu muncul sendiri di kolom
Kemenangan
Kode terpendek dalam byte menang.
<<<<TTTTTT <TTTTTTT <<<<TTTTTT <<<<
"How did the Babylonians count? Interestingly, they used a Base 60 system with an element of a Base 10 system."
Yang masih digunakan sampai sekarang; sistem angka Babel persis seperti yang kita gunakan untuk jam. Dua digit desimal masing-masing selama detik, menit, dan jam, 60 detik ke menit, 60 menit ke jam.