チャレンジ
入力としてバビロニア番号のASCII表現が与えられた場合、西アラビア数字で番号を出力します。
バビロニア数字システム
バビロニア人はどのように数えましたか?興味深いことに、彼らはBase 10システムの要素を持つBase 60システムを使用しました。まず、システムの単位列について考えてみましょう。
バビロニア人には3つしかシンボルがありませんでした:(T
または、レンダリングできる場合:𒐕
)1を表す<
(または、レンダリングできる場合:𒌋
)10を表す\
(またはレンダリングする場合:)𒑊
ゼロを表します。
注:技術的には、\
(または𒑊
)はゼロではありません(バビロニア人には「ゼロ」という概念がなかったため)。「ゼロ」は後で考案されたので\
、あいまいさを防ぐために後で追加されたプレースホルダーシンボルでした。ただし、この課題の目的のためには\
、ゼロと見なすだけで十分です。
そのため、各列では、シンボルの値を加算するだけです。例:
<<< = 30
<<<<TTTTTT = 46
TTTTTTTTT = 9
\ = 0
各列に5 <
つ以上または9 つ以上あることはありませんT
。\
列に常に単独で表示されます。
次に、列を追加するためにこれを拡張する必要があります。これはまさに、他のベース60と同じ働きどこを乗算することにより右端の列の値が、左に1、左に1のように。次に、それぞれの値を合計して、数値の値を取得します。60 1 60 2
列は、あいまいさを防ぐためにスペースで区切られます。
いくつかの例:
<< <TT = 20*60 + 12*1 = 1212
<<<TT \ TTTT = 32*60^2 + 0*60 + 4*1 = 115204
ルール
- ASCII入力(
T<\
)またはUnicode入力(𒐕𒌋𒑊
)を自由に受け入れることができます - 入力した数値は常に未満です
<
sがいつもの左になりT
、各列にS\
常に列に単独で表示されます
勝ち
バイト単位の最短コードが優先されます。
<<<<TTTTTT <TTTTTTT <<<<TTTTTT <<<<
"How did the Babylonians count? Interestingly, they used a Base 60 system with an element of a Base 10 system."
現在も使用されています。バビロニアの数値システムは、まさに時計に使用するものです。秒、分、および時間のそれぞれに2桁の10進数、60秒から60分、60分から1時間。