Desafio
Dada uma representação ASCII de um número babilônico como entrada, imprima o número em algarismos arábicos ocidentais.
Sistema Numérico da Babilônia
Como os babilônios contavam? Curiosamente, eles usaram um sistema Base 60 com um elemento de um sistema Base 10. Vamos primeiro considerar a coluna da unidade do sistema:
Os babilônios tinham apenas três símbolos: T
(ou, se você pode renderizá-lo:), 𒐕
que representava 1, e <
(ou, se você pode renderizá-lo:), 𒌋
que representava 10, e \
(ou, se você renderizá-lo:), 𒑊
que representava zero.
Nota: Tecnicamente, \
(ou 𒑊
) não é zero (porque os babilônios não tinham a noção de 'zero'). 'Zero' foi inventado mais tarde, assim \
como um símbolo de espaço reservado adicionado mais tarde para evitar ambiguidade. No entanto, para os propósitos deste desafio, basta considerar \
como zero
Então, em cada coluna você apenas adiciona o valor dos símbolos, por exemplo:
<<< = 30
<<<<TTTTTT = 46
TTTTTTTTT = 9
\ = 0
Nunca haverá mais que cinco <
ou mais que nove T
em cada coluna. \
sempre aparecerá sozinho na coluna.
Agora, precisamos estender isso para adicionar mais colunas. Isso funciona exatamente como qualquer outra base sessenta, onde você multiplica o valor da coluna mais à direita por , o da esquerda por , o da esquerda por e assim por diante. Você então adiciona o valor de cada um para obter o valor do número.60 2
As colunas serão separadas por espaços para evitar ambiguidade.
Alguns exemplos:
<< <TT = 20*60 + 12*1 = 1212
<<<TT \ TTTT = 32*60^2 + 0*60 + 4*1 = 115204
Regras
- Você é livre para aceitar entrada ASCII (
T<\
) ou entrada Unicode (𒐕𒌋𒑊
) - O número inserido sempre estará abaixo de
- Os
<
sempre estarão à esquerda dosT
em cada coluna \
sempre aparecerá sozinho em uma coluna
Ganhando
O menor código em bytes vence.
<<<<TTTTTT <TTTTTTT <<<<TTTTTT <<<<
"How did the Babylonians count? Interestingly, they used a Base 60 system with an element of a Base 10 system."
Que ainda está em uso hoje; o sistema numérico da Babilônia é exatamente o que usamos para relógios. Dois dígitos decimais para segundos, minutos e horas, 60 segundos para o minuto, 60 minutos para a hora.