Что такое калькулятор римских цифр?
Этот инструмент выполняет арифметические действия с римскими цифрами. Введите два значения — каждое может быть римским числом (из символов I, V, X, L, C, D, M) или обычным целым числом, — выберите действие, и калькулятор покажет ответ сразу в двух форматах: римскими цифрами и привычным арабским (десятичным) числом, а также приведёт краткий разбор по шагам. Это удобно школьникам и студентам, учителям, на уроках истории и латыни, любителям головоломок, а также всем, кто расшифровывает циферблаты часов, даты копирайта или надписи на закладных камнях зданий.
Как пользоваться калькулятором
Введите первое число (например, DCCXXVI или просто 726), выберите действие — сложение, вычитание, умножение или деление, — затем введите второе число (например, XLVIII или 48). Регистр не имеет значения: ввод автоматически приводится к заглавным буквам. Если результат получается нулевым или отрицательным, а также при делении на ноль, калькулятор выдаёт предупреждение — ведь в римской системе нет символа для нуля, отрицательных чисел и дробей.
Как это работает
Сначала каждое введённое значение разбирается в целое число по классическому правилу вычитания: символы просматриваются слева направо, и если символ меньше стоящего справа от него, он вычитается, иначе — прибавляется. Этот разбор можно записать так:
$$\text{value} = \sum_i \begin{cases} -v_i & v_i < v_{i+1} \\ +v_i & \text{otherwise} \end{cases}$$Затем к двум полученным числам применяется выбранное действие (\(a + b\), \(a - b\), \(a \times b\) или \(a / b\)):
$$\text{result} = \text{Roman}\big(a \;\square\; b\big)$$В общем виде вычисление выглядит так:
$$\text{result} = \text{value}(N_1) \; \square \; \text{value}(N_2) \;\rightarrow\; \text{Roman}$$Наконец, целый результат переводится обратно в римскую запись «жадным» алгоритмом по упорядоченным значениям: 1000 = M, 900 = CM, 500 = D, 400 = CD, 100 = C, 90 = XC, 50 = L, 40 = XL, 10 = X, 9 = IX, 5 = V, 4 = IV, 1 = I. При делении берётся целая часть (округление вниз), поскольку римские цифры не могут выражать дроби.
Разбор примера
DCCXXVI (726) + XLVIII (48) = 774. Переводим 774:
$$\text{DCC}(700) + \text{L}(50) + \text{XX}(20) + \text{IV}(4) = \textbf{DCCLXXIV}$$Итог — DCCLXXIV, или 774 в арабской записи. Ещё пример:
$$\text{XII}(12) \times \text{IV}(4) = 48 = \text{XLVIII}$$
Частые вопросы
Можно ли смешивать римский и арабский ввод? Да — в любое поле можно вписать как строку римских цифр, так и обычное целое число, в любых сочетаниях.
А если при вычитании получается ноль или отрицательное число? В римской системе нет обозначения для нуля и отрицательных чисел, поэтому вместо результата калькулятор покажет пояснение.
Как обрабатывается деление? В ответе выводится целая часть от деления (остаток, если он есть, указывается и отбрасывается), так как дробей в римских цифрах не существует.