Wyzwanie
Biorąc pod uwagę reprezentację ASCII liczby babilońskiej jako danych wejściowych, wypisz liczbę cyframi zachodnioafrykańskimi.
Babiloński system liczbowy
Jak liczą się Babilończycy? Co ciekawe, zastosowali system Base 60 z elementem systemu Base 10. Rozważmy najpierw kolumnę jednostki w systemie:
Babilończycy mieli tylko trzy symbole: T
(lub, jeśli potrafisz to wyrenderować:), 𒐕
które reprezentowały 1, i <
(lub, jeśli możesz to renderować:), 𒌋
które reprezentowały 10, i \
(lub, jeśli renderujesz:), 𒑊
które reprezentowały zero.
Uwaga: Technicznie \
(lub 𒑊
) nie jest zerowy (ponieważ Babilończycy nie mieli pojęcia „zero”). „Zero” zostało wynalezione później, podobnie \
jak symbol zastępczy dodano później, aby zapobiec dwuznaczności. Jednak do celów tego wyzwania wystarczy uznać \
za zero
Tak więc w każdej kolumnie dodajesz tylko wartość symboli, np .:
<<< = 30
<<<<TTTTTT = 46
TTTTTTTTT = 9
\ = 0
W każdej kolumnie nigdy nie będzie więcej niż pięć <
lub więcej niż dziewięć T
. \
zawsze pojawi się sam w kolumnie.
Teraz musimy rozszerzyć to na dodawanie kolejnych kolumn. Działa to dokładnie tak samo, jak każda inna podstawa sześćdziesiąt, gdzie mnożymy wartość skrajnej prawej kolumny przez , tej po lewej przez , tej po lewej przez i tak dalej. Następnie dodajesz wartość każdego z nich, aby uzyskać wartość liczby.60 1 60 2
Kolumny zostaną oddzielone spacjami, aby zapobiec dwuznaczności.
Kilka przykładów:
<< <TT = 20*60 + 12*1 = 1212
<<<TT \ TTTT = 32*60^2 + 0*60 + 4*1 = 115204
Zasady
- Możesz zaakceptować wejście ASCII (
T<\
) lub wejście Unicode (𒐕𒌋𒑊
) - Wprowadzona liczba zawsze będzie mniejsza niż
<
Y zawsze będzie w lewą stronę zT
S w każdej kolumnie\
zawsze pojawi się sam w kolumnie
Zwycięski
Najkrótszy kod w bajtach wygrywa.
<<<<TTTTTT <TTTTTTT <<<<TTTTTT <<<<
"How did the Babylonians count? Interestingly, they used a Base 60 system with an element of a Base 10 system."
Który jest nadal w użyciu; babiloński system liczbowy jest dokładnie tym, czego używamy do zegarów. Dwie cyfry dziesiętne każda na sekundę, minutę i godzinę, 60 sekund na minutę, 60 minut na godzinę.