Witam, ponieważ ostatnio zajmuję się konwersją liczb arabskich na rzymskie w języku C, pojawiło się pewne zapytanie, mianowicie interesuje mnie, dlaczego zakres tej konwersji jest tylko dla liczb do 3999? Dlaczego nie możemy rozszerzyć tego zakresu, np. do 10 000? W czym tkwi problem i gdzie jest blokada? Czy ktoś wie? :D
Liczby z takiego zakresu mają zapis wykorzystujący jedynie cyfry ze „zwykłego” alfabetu (I, V, L, C, D, M), od czterech tysięcy nie jest już tak fajnie: np. 4000 == Mↁ; 10000 == ↂ
.
Blokady żadnej nie ma, po prostu nie ma jednego ustandaryzowanego sposobu zapisywania liczb większych od tysiąca (kilku tysięcy) w systemie rzymskim.
W różnych okresach różnie je pisano. A nawet liczby < 1000 różnie pisano, szczegóły na Wikipedii — znajdziesz tam różne karkołomne standardy które wyszły z użycia, z ułamkami włącznie.
Szczególnie podoba mi się wariant z małymi literami i literą j zamiast ostatniego i:
j, ij, iij, iv, v, vj, vij, viij, ix, x, xj, xij
Cyfry rzymskie jednak słabo się nadają do zapisywania dowolnie wielkich liczb i do obliczeń, dlatego cyfry „arabskie” się spopularyzowały.
EDIT: właściwie jedyne miejsce, gdzie liczby większe od 1000 się współcześnie pojawiają w zapisie rzymskim, to końcowe lub początkowe napisy wielu filmów i programów telewizyjnych, gdzie zwyczajowo podaje się rok produkcji cyframi rzymskimi, np. MMXVII - 2017. W zeszłym stuleciu były to znacznie dłuższe wężowidła, np. MCMLXXXVIII - 1988. Jak widać, jeszcze dużo czasu minie, zanim nowy znaczek poza M będzie potrzebny...
Dzięki za wyjaśnienie. :D