Вызов
Учитывая ASCII представление вавилонского числа в качестве входных данных, выведите число западно-арабскими цифрами.
Вавилонская система счисления
Как рассчитывали вавилоняне? Интересно, что они использовали систему Base 60 с элементом системы Base 10. Давайте сначала рассмотрим единичный столбец системы:
Вавилоняне имели только три символа: T
(или, если вы можете сделать это :), 𒐕
которые представляли 1, и <
(или, если вы можете сделать это:), 𒌋
которые представляли 10, и \
(или, если вы делаете это:), 𒑊
которые представляли ноль.
Примечание: Технически, \
(или 𒑊
) не ноль (потому что вавилоняне не имели понятия «ноль»). «Ноль» был изобретен позже, поэтому позже \
был добавлен символ-заполнитель, чтобы предотвратить двусмысленность. Однако для целей этой задачи достаточно считать \
ноль
Итак, в каждом столбце вы просто складываете значение символов, например:
<<< = 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 (𒐕𒌋𒑊
) - Введенное число всегда будет меньше
<
S всегда будет слева от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 минут до часа.