로마 숫자 계산기란?
이 도구는 로마 숫자로 사칙연산을 해 줍니다. 두 개의 값을 입력하면 되는데, 각 값은 로마 숫자(I, V, X, L, C, D, M 사용)일 수도 있고 일반 정수일 수도 있습니다. 연산자를 고르면 계산기가 결과를 로마 숫자와 일반 아라비아 숫자(십진수)로 함께 보여 주고, 간단한 풀이 과정도 표시합니다. 학생과 교사, 라틴어나 역사 수업, 퍼즐을 즐기는 분은 물론 시계 문자판이나 저작권 표기, 건물 머릿돌의 연도를 해독하려는 누구에게나 안성맞춤입니다.
사용 방법
먼저 숫자 1을 입력하세요(예: DCCXXVI 또는 그냥 726). 그다음 연산자(덧셈·뺄셈·곱셈·나눗셈)를 선택하고 숫자 2를 입력합니다(예: XLVIII 또는 48). 대소문자는 구분하지 않으며 입력값은 대문자로 표시됩니다. 결과가 0이거나 음수일 때, 또는 0으로 나눌 때는 별도로 안내가 표시됩니다. 로마 숫자에는 0, 음수, 분수를 나타내는 기호가 없기 때문입니다.
계산 원리
먼저 각 입력값을 표준 '빼기 규칙'에 따라 정수로 변환합니다. 왼쪽에서 오른쪽으로 읽으면서, 어떤 기호가 바로 오른쪽에 있는 기호보다 작으면 빼고, 그렇지 않으면 더합니다.
$$\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 \div b\))을 두 정수에 적용합니다.
$$\text{result} = \text{Roman}\big(a \;\square\; b\big)$$
마지막으로 그 정수 결과를 다시 로마 숫자로 변환하는데, 큰 값부터 차례로 채우는 그리디(greedy) 방식을 사용합니다. 사용하는 값은 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}\)가 됩니다.
$$\text{DCCXXVI}(726) + \text{XLVIII}(48) = 774 \rightarrow \text{DCCLXXIV}$$
따라서 결과는 DCCLXXIV, 아라비아 숫자로는 774입니다. 또 다른 예로 \(\text{XII}(12) \times \text{IV}(4) = 48 = \text{XLVIII}\)입니다.
자주 묻는 질문
로마 숫자와 아라비아 숫자를 섞어서 입력할 수 있나요? 네, 두 칸 모두 로마 숫자 문자열이나 일반 정수를 받을 수 있으며 어떤 조합이든 가능합니다.
뺄셈 결과가 0이거나 음수면 어떻게 되나요? 로마 숫자에는 0이나 음수를 표현하는 방법이 없으므로 숫자 대신 안내 메시지가 표시됩니다.
나눗셈은 어떻게 처리되나요? 로마 숫자에는 분수가 없으므로 결과는 정수 몫으로 나옵니다(나머지가 있으면 함께 알려 주되 결과에서는 버립니다).