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ę zTS 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ę.