Что такое конвертер римских цифр?
Этот инструмент переводит привычные десятичные числа в римские цифры и выполняет обратное преобразование — из римских цифр в обычные числа. В основе лежит стандартная субтрактивная запись (та самая, что встречается на циферблатах часов, в нумерации глав книг, в титрах фильмов и на памятниках). Конвертер работает с любым целым числом от 1 до 3999 — это привычный диапазон, который можно записать без надчёркиваний и специальных символов.
Как пользоваться
Сначала выберите направление перевода. Для режима Число → Римские цифры введите целое число от 1 до 3999. Для режима Римские цифры → Число введите римскую запись, например MCMXCIV (регистр букв не имеет значения). Конвертер покажет и римскую запись, и её десятичное значение — так вы сможете сразу проверить результат.
Как это работает
Римские цифры складываются из семи символов: \(I=1\), \(V=5\), \(X=10\), \(L=50\), \(C=100\), \(D=500\) и \(M=1000\). Для перевода числа используется жадный алгоритм: начиная с наибольшего значения, мы раз за разом вычитаем самый крупный символ, который ещё «помещается» в число, и дописываем его к записи. Чтобы корректно обрабатывать субтрактивные пары, в список добавлены \(CM=900\), \(CD=400\), \(XC=90\), \(XL=40\), \(IX=9\) и \(IV=4\). Благодаря этому всегда получается каноническая, самая короткая запись — например, 4 превращается в IV, а не в IIII.
$$\text{Roman} = \operatorname{greedy}\!\left(\text{Number}\right) = \sum_{k}\; \text{sym}_k \times \left\lfloor \frac{\text{remainder}}{\text{val}_k} \right\rfloor$$
$$\text{Roman} = \operatorname{greedy}\!\left(\text{Number}\right),\qquad 1 \le \text{Number} \le 3999$$
$$\text{Number} = \sum_{\text{token} \,\in\, \text{Roman Numeral}} \text{value}(\text{token})$$
Разбор примера
Переведём число 2024: \(2024 - 1000 = 1024\) (M), затем \(-\,1000 = 24\) (MM), далее \(24 - 10 = 14\) (X), \(-\,10 = 4\) (XX), а оставшаяся 4 соответствует IV. Итог: MMXXIV.
Частые вопросы
Почему только до 3999? Стандартные римские цифры заканчиваются на MMMCMXCIX (3999). Для бóльших чисел традиционно нужна черта (винкулюм) над символами, которая умножает их на 1000, — но это уже выходит за рамки базовой системы.
Есть ли римская цифра для нуля? Нет. У римлян не было символа для нуля, и в этой системе для него просто нет места.
Бывает ли IIII правильным написанием? Запись IIII встречается на некоторых циферблатах ради зрительной симметрии, однако математически верной формой четырёх считается IV — именно её выдаёт этот конвертер.