ローマ数字変換ツールとは?
このツールは、普段使っている整数(アラビア数字)をローマ数字の表記に変換します。ローマ数字は古代ローマ帝国で広く使われ、現在でも時計の文字盤、書籍の章番号、映画の著作権表示年、歴代の王や教皇の名前などで目にします。古典的なローマ数字の表記法では、7種類の基本記号を使って1から3999までの数を表すことができます。
ローマ数字の記号一覧
基本となる7つの記号は次のとおりです。I=1、V=5、X=10、L=50、C=100、D=500、M=1000。同じ記号が4つ続くのを避けるため、減算(引き算)のペアが使われます。たとえば IV(4)、IX(9)、XL(40)、XC(90)、CD(400)、CM(900)です。
変換の仕組み
このツールは、1000=M から 1=I まで大きい順に並べた13組の「数値と記号のペア」に対して、貪欲法(グリーディアルゴリズム)を使って変換します。元の数からスタートし、その時点で当てはまる最大のペアの値を引きながら、その記号を順に書き足していき、残りが0になるまで繰り返します。ペアには減算形(CM・CD・XC・XL・IX・IV)も含まれているため、出力は常に正しい標準的な表記になります。
$$\text{Roman} = \bigoplus_{i}\; \text{sym}_i \times \left\lfloor \frac{R_i}{v_i} \right\rfloor, \quad R_0 = \text{Number}$$
具体例で見てみよう
例として 2024 を考えます。まず 1000(M)を引くと 1024、もう一度 1000(M)を引くと 24 となり、ここまでで「MM」が確定します。次に 24 から 10(X)を2回引くと残りは4となり、「XX」を追加します。最後に 4 は IV です。これらをつなげると、結果は MMXXIV になります。
$$2024 - 1000 = 1024,\quad 1024 - 1000 = 24,\quad 24 - 10 - 10 = 4$$
$$\text{MM} + \text{XX} + \text{IV} = \text{MMXXIV}$$
よくある質問
なぜ3999までなのですか? 標準的なローマ数字には M より大きい記号が存在しません。そのため M だけできれいに書ける最大の値が 3999(MMMCMXCIX)になります。それより大きい数を表すには、記号の上に横線を引く「ヴィンキュルム(vinculum)」という方法が必要ですが、これは基本的な表記法には含まれていません。
ゼロを表すローマ数字はありますか? ありません。古代ローマには「0」を表す記号がなく、この表記法は正の整数だけを表します。
なぜ IIII ではなく IV と書くのですか? 減算ルールを使うことで表記が短くなり、同じ記号が3つを超えて連続するのを避けられるからです。ただし時計の文字盤では、見た目のバランスを取るために IIII が使われていることもあります。