Reto
Dada una representación ASCII de un número babilónico como entrada, genera el número en números arábigos occidentales.
Sistema de numeración babilónico
¿Cómo contaban los babilonios? Curiosamente, utilizaron un sistema Base 60 con un elemento de un sistema Base 10. Consideremos primero la columna de unidad del sistema:
Los babilonios tenían solo tres símbolos: T
(o, si puede representarlo:) 𒐕
que representaba 1, y <
(o, si puede representarlo:) 𒌋
que representaba 10, y \
(o, si 𒑊
lo representaba:) que representaba cero.
Nota: Técnicamente, \
(o 𒑊
) no es cero (porque los babilonios no tenían la noción de 'cero'). 'Cero' se inventó más tarde, por lo que \
se agregó un símbolo de marcador de posición más tarde para evitar la ambigüedad. Sin embargo, para los propósitos de este desafío, es suficiente considerar \
como cero
Entonces, en cada columna solo sumas el valor de los símbolos, por ejemplo:
<<< = 30
<<<<TTTTTT = 46
TTTTTTTTT = 9
\ = 0
Nunca habrá más de cinco <
o más de nueve T
en cada columna. \
siempre aparecerá solo en la columna.
Ahora, necesitamos extender esto para agregar más columnas. Esto funciona exactamente igual que cualquier otra base sesenta, donde multiplica el valor de la columna más a la derecha por , el de la izquierda por , el de la izquierda por y así sucesivamente. Luego sumas el valor de cada uno para obtener el valor del número.60 2
Las columnas estarán separadas por espacios para evitar la ambigüedad.
Algunos ejemplos:
<< <TT = 20*60 + 12*1 = 1212
<<<TT \ TTTT = 32*60^2 + 0*60 + 4*1 = 115204
Reglas
- Usted es libre de aceptar la entrada ASCII (
T<\
) o la entrada Unicode (𒐕𒌋𒑊
) - El número ingresado siempre será inferior a
- Los
<
s siempre estarán a la izquierda de losT
s en cada columna \
siempre aparecerá solo en una columna
Victorioso
El código más corto en bytes gana.
<<<<TTTTTT <TTTTTTT <<<<TTTTTT <<<<
"How did the Babylonians count? Interestingly, they used a Base 60 system with an element of a Base 10 system."
Que todavía está en uso hoy; El sistema de números babilónico es exactamente lo que usamos para los relojes. Dos dígitos decimales cada uno para segundos, minutos y horas, 60 segundos para el minuto, 60 minutos para la hora.