🧰 UtlKit

ローマ数字変換方法: 1994 は MCMXCIV, 2026 は MMXXVI, 3999 がこのシステムで書ける最後の数

入力欄は 1 つ, 方向は 2 つ: 1,994 は MCMXCIV になり, MCMXCIV は 1994 に戻ります. 厳しいパターンは IL, IC, XXXXII を拒否し, それでも MMMM は通ります.

ローマ数字変換ツールは入力欄が 1 つだけで, 同時に両方向に働きます. 1994 と入力すると MCMXCIV と返します. MCMXCIV と入力すると 1994 を返します. 小文字でも, 文字間にスペースがあっても問題ありません. 結果カードはアラビア数字とローマ数字を並べて表示し, どちらにもコピーボタンがあります. 下の参考表は 7 つの基本記号を列挙します: I が 1, V が 5, X が 10, L が 50, C が 100, D が 500, M が 1,000.

数字はどのように分解されるか

変換は大きい順の 13 段の表をたどります: M (1,000), CM (900), D (500), CD (400), C (100), XC (90), L (50), XL (40), X (10), IX (9), V (5), IV (4), I (1). 収まるだけ各記号を結果に追加していきます. 1,994 は M が 1,000, CM が 900, XC が 90, IV が 4 になります: MCMXCIV. 年号 2,026 は MM, XX, VI の順で MMXXVI. プレースホルダの例 42 は XL に II: XLII.

減算の 6 組

合法的な減算は 6 組だけです: IV (4), IX (9), XL (40), XC (90), CD (400), CM (900). 検証は正格な順序に対する厳しいパターンなので, 49 は IL ではなく XLIX, 99 は IC ではなく XCIX, 44 は XXXXII のような X の 4 連続は認められず (同じ記号は最大 3 回まで) XLIV になります. VV, IIII, XM も同じ経路で拒否されます. パターンは M ブロック, C か D ブロック, X か L ブロック, I か V ブロックが降順でしか出現しないことを確認します.

範囲, とその 1 つの抜け穴

アラビア数字は 1 から 3,999 の間の整数でなければなりません. 0 と 4,000 はどちらも範囲エラーになります. 3,999 は正格なローマ数字の最大値で, MMMCMXCIX と書きます: M が 3 つ, その次 CM, XC, IX. 抜け穴: ローマ数字入力の上端はありません. パターンは M の連続を任意の長さ認めるため, MMMM は 4,000 として, MMMMM は 5,000 として解析されます. アラビア数字入力から両方の文字列が作れることはないのに.

入力欄が実際に受け入れるもの

入力欄はまずテキストを整数として読み, テキストがその整数と完全に一致する時のみ変換します. 前後に余分なスペースのある 42 は動きます. テキストは先にトリムされるためです. 一方 42.0 は失敗します. 42 に解析されますが, 2 つの文字列が一致しないため, テキストはローマ数字として扱われ, 拒否されます. カンマ付きの 1,994 も同じ挙動です. ローマ側では, 大文字小文字と内部のスペースは無視されます: mcmxciv でも m c m x c i v でも 1994 が返ります.

その数字はどこで働くか

ローマ数字は年号板, 章の番号, 時計の面の上に生き続けます. 2,026 は学位証書やタイトルの幕で MMXXVI になります. MCMXCIV は 7 文字, 1994 は 4 文字です. 文字数カウンターはその長さ差を具体的に見せます. テキスト逆さ変換で文字を反転すると VICXMCM になり, 変換ツールはこれを拒否します. 順序規則がどれほど厳しいかの最速デモです. 基数変換ツールは数字システムのもう一方を扱います: 1994 は 2 進で 11111001010, 16 進で 7CA. モールス符号ツールは最も近い親戚です: 小さい固定アルファベットで値を綴る別の方式.

関連記事

シーザー rot13ツールはローマ時代のもう一つの古典です. 記号から数字を組み立てる代わりに, 各文字を固定量だけずらします. もう一篇の比率系のチュートリアルはアスペクト比の計算方法を, テキスト側の掃除手順はエスケープツールの使い方を見てください.

関連ツール

よくある質問

アラビア数字の入力はなぜ 3,999 で止まるのですか

3,999 は正格なローマ数字システムで書ける最大値です. M が 3 つで 3,000, その次 CM, XC, IX を継いで MMMCMXCIX と綴ります. 4,000 桁は基本記号を持たないので, ツールは範囲エラーを返します. 一方, ローマ側は M の連長に上限がないため, どのアラビア数字入力からも作れないのに MMMM は 4,000 として読み取られます.

なぜ 49 は XLIX と書かれて IL にはならないのですか

合法的な減算は 6 組だけです: IV, IX, XL, XC, CD, CM. I は上の V と X に対してだけ減算でき, L の前の I は認識されるパターンではありません. XLIX は XL (40) に IX (9) を足したもので, 厳しい検証は IL を拒否します. ブロックは降順を保たなければならないからです: 先に X から L, その次 I から V.

変換は両方向に動作するのですか

はい. 1 つの入力欄が自動判定します: テキストが整数と完全に一致すればアラビア数字パス, それ以外はローマ数字パス. 1994 を入れると結果カードは MCMXCIV を示し, MCMXCIV を入れると大文字小文字は自由, スペースの有無も問わず, 結果カードは 1994 を示します. 両方向ともきれいに往復します: MCMXCIV をもう一度変換すれば 1994 に戻ります.

0, 4,000, 42.0 を入れるとどうなるのですか

0 と 4,000 はどちらも範囲エラーに落ちます. アラビア数字側は 1 から 3,999 の整数のみ受け付けるためです. 42.0 が微妙なやつです: 数字 42 としては解析されますが, テキスト 42.0 は 42 という文字列と一致しないので, 入力欄はそれを数字として扱わず, 代わりにローマ数字の検証に渡します. ローマ側はそれを無効なローマ数字として拒否します. 出るエラーは範囲エラーではなく無効入力エラーです.

ローマ数字の文字を反転したらどうなるのですか

検証が通らない文字列が得られます. MCMXCIV を反転すると VICXMCM になります. パターンは先に M ブロック, その次 C か D ブロック, その次 X か L ブロック, 最後に I か V ブロックという降順を要求します. VICXMCM は V で始まりますが, V は最も小さいブロックに属するため, 文字列全体がパターンに適合せず, 変換ツールは数字ではなく無効なローマ数字エラーを返します.

関連記事