機能の説明
整数(1〜3,999,999)をローマ数字に変換し、また戻します。3,999 を超える値は vinculum(上線)記法を使います。記号の上の横線はその値を 1,000 倍するため、範囲が千倍に広がります。すべての入力は正規形に対して検証されるので、IIII、VV、IC、そして単なる MMMM は明確なメッセージ付きで拒否されます。内訳パネルには、各結果がどのように構築されたかをステップごとに正確に示します。
使い方
- 方向を選びます: Number → Roman または Roman → Number。有効な値は切り替えをまたいで持ち越されるため、打ち直さずに逆変換できます。
- 値を入力または貼り付けます。例チップをタップしても構いません。
- 結果が大きな文字で表示されます。その下の Breakdown パネルに、値付きの各貪欲ステップがリストされます。結果、内訳、または入力をそのまま含む共有リンクをコピーします。
例
| 数 | ローマ数字 | 備考 |
|---|---|---|
| 44 | XLIV | 40 + 4 |
| 1994 | MCMXCIV | 1,000 + 900 + 90 + 4 |
| 3,999 | MMMCMXCIX | 上線なしで最大のローマ数字 |
| 4,000 | I̅V̅ | 最初の vinculum 値: IV × 1,000 |
| 1,234,567 | M̅C̅C̅X̅X̅X̅I̅V̅DLXVII | 上線付き 1,234 + 上線なしの 567 |
| 3,999,999 | M̅M̅M̅C̅M̅X̅C̅I̅X̅CMXCIX | ツールが受け付ける最大値 |
ローマ数字の仕組み
ローマ数字は 7 文字を使います。それがシステムのすべてです:
| 記号 | I | V | X | L | C | D | M |
|---|---|---|---|---|---|---|---|
| 値 | 1 | 5 | 10 | 50 | 100 | 500 | 1,000 |
2 つの規則がすべての正規形の数字を生み出します:
- 加法規則。 左から右に読んで加算します。
VIIIは 5 + 1 + 1 + 1 = 8。大きい文字が先に来ます。 - 減法規則。 大きい文字の前に置かれた小さい文字は減算します。
IVは 5 - 1 = 4、CMは 1,000 - 100 = 900。正当なペアはちょうど 6 つ:IV(4)、IX(9)、XL(40)、XC(90)、CD(400)、CM(900)。この規則は数字を短く保ち、各値の綴りを一意に保つために存在します。4 はIVであって、決してIIIIではありません。
変換アルゴリズムは 10 行です。 13 個の値(7 文字 + 6 つの減法ペア)を大きい順に並べた 1 つのテーブルを用意し、それを貪欲にウォークします:
VALUES = [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]
to_roman(n):
result = ""
for (value, symbol) in VALUES: # largest first
while n >= value:
result += symbol
n -= value
return result
1994 では、このウォークは M(1,000)、続いて CM(900)、XC(90)、IV(4)を順に出力します。これがまさに内訳パネルの内容です。パースは同じロジックを逆方向に実行します。左から右にスキャンし、小さい文字が大きい文字に先行するときに減算し、合計を再描画して比較します。往復を生き延びた綴りはすべて正規形です。こうして IIII と IC は 1 回のチェックで拒否されます。
3,999 より上: vinculum。 文字は M = 1,000 で終わるため、古典的な用法は 3,999 が上限でした。中世の vinculum がシステムを拡張します。上線は記号を 1,000 倍します(V̅ = 5,000、M̅ = 1,000,000)。正規形は千の位の部分を同じ貪欲テーブルで描画し、すべてのグリフに線を付けます。4,000 は I̅V̅(4 × 1,000)で、3,999,999 は上線付きの MMMCMXCIX に上線なしの残り CMXCIX が続きます。ツールはこの線を結合文字(U+0305)として運ぶため、数字は通常のテキストとしてコピーもパースもできます。貼り付けられた macron(U+0304、見た目はほぼ同一)は受け付けられ、正規化されます。
補足事項
- 正規形のみ。 1 つの値に対して受理される綴りは 1 つ。非正規形の入力は推測されず、拒否されます。
- 厳密な範囲。 1〜3,999,999。その上では、中世の書き手は 2 本目の線を重ねていました(× 1,000,000)。ツールは 1 本で止まります。
- プライベート: すべての変換はブラウザー内でローカルに実行されます。何もどこにも送信されません。
- 関連ツール: Number Base Converter、Bitwise Calculator。