罗马数字转换器是什么?
这个工具可以把日常使用的十进制数字转换成罗马数字,也能把罗马数字还原成普通的阿拉伯数字。它采用标准的减法记数法(也就是钟表盘、书籍章节、电影片尾字幕以及纪念碑上常见的写法),适用于 1 到 3999 之间的任意整数——这正是不借助横线(上划线)或特殊符号时罗马数字所能表示的常规范围。
使用方法
先选择转换方向。选择数字 → 罗马数字时,输入一个 1 到 3999 之间的整数;选择罗马数字 → 数字时,输入像 MCMXCIV 这样的罗马数字(不区分大小写)。转换器会同时显示罗马数字和它对应的十进制数值,方便你核对结果。
转换原理详解
罗马数字由七个基本符号组成:I=1、V=5、X=10、L=50、C=100、D=500、M=1000。转换数字时,我们采用一种贪心算法:从最大的数值开始,不断减去当前还能容纳的最大数值并写上对应符号。为了处理减法组合,列表中还加入了 CM=900、CD=400、XC=90、XL=40、IX=9 和 IV=4。这样就能保证得到规范且最短的写法——例如 4 会写成 IV,而不是 IIII。
$$\text{Roman} = \operatorname{greedy}\!\left(\text{Number}\right) = \sum_{k}\; \text{sym}_k \times \left\lfloor \frac{\text{remainder}}{\text{val}_k} \right\rfloor$$
$$1 \le \text{Number} \le 3999$$
$$\text{Number} = \sum_{\text{token} \,\in\, \text{Roman Numeral}} \text{value}(\text{token})$$
实例演算
以 2024 为例:\(2024 - 1000 = 1024\)(M),再 \(- 1000 = 24\)(MM),接着 \(24 - 10 = 14\)(X),再 \(- 10 = 4\)(XX),最后 4 正好对应 IV。结果为:MMXXIV。
常见问题
为什么只能算到 3999? 标准罗马数字的上限是 MMMCMXCIX(3999)。更大的数字传统上需要在符号上方加一条横线(vinculum)表示乘以 1000,而这并不属于基础记数系统的一部分。
罗马数字有表示零的写法吗? 没有。古罗马人没有表示零的符号,这套系统里也没有零的位置。
IIII 这种写法对吗? 出于美观和视觉平衡,IIII 会出现在某些钟表盘上,但 4 在数学上的标准写法是 IV,本工具输出的也正是 IV。