<載自:Dive Into Python>
你可能經常看到羅馬數字,即使你沒有意識到他們。你可能曾經在老電影或者電視中看到他們(“版權所有 MCMXLVI” 而不是 “版權所有1946”),或者在某圖書館或某大學的貢獻墻上看到他們(“成立于 MDCCCLXXXVIII”而不是“成立于1888”)。你也可能在某些文獻的大綱或者目錄上看到他們。這是一個表示數字的系統,他能夠真正回溯到遠古的羅馬帝國(因此而得名)。
在羅馬數字中,利用7個不同字母進行重復或者組合來表達各式各樣的數字。
-
I = 1
-
V = 5
-
X = 10
-
L = 50
-
C = 100
-
D = 500
-
M = 1000
下面是關于構造羅馬數字的一些通用的規則的介紹:
- 字符是疊加的。 I表示1, II表示2, 而III表示3. VI 表示 6 (字面上為逐字符相加, “5 加 1”), VII 表示 7, VIII 表示 8.
- 能夠被10整除的字符(I, X, C, 和 M)至多可以重復三次. 對于4, 你則需要利用下一個最大的能夠被5整除的字符進行減操作得到,你不能把4 表示成 IIII; 而應表示為 IV (比“5小 1”)。數字40寫成XL (比50小10), 41 寫成 XLI, 42 寫成 XLII, 43 寫成 XLIII, 而 44 寫成 XLIV (比50 小10, 然后比5小1).
- 類似的,對于數字 9,你必須利用下一個能夠被10整除的字符進行減操作得到: 8 表示為 VIII, 而 9 則表示為 IX (比10 小1), 而不是 VIIII (因為字符I 不能連續重復四次)。數字90 表示為 XC, 900 表示為 CM.
- 被5整除的字符不能重復。數字10 常表示為X, 而從來不用VV來表示。數字100常表示為C, 也從來不表示為 LL.
- 羅馬數字經常從高位到低位書寫,從左到右閱讀,因此不同順序的字符意義大不相同。DC 表示 600; 而CD 是一個完全不同的數字(為400, 也就是比500 小100). CI 表示 101; 而IC 甚至不是一個合法的羅馬字母(因為你不能直接從數字100減去1; 比需要寫成XCIX, 意思是 比100 小10, 然后加上數字9,也就是比 10小1的數字).
|
本章譯者注:“被5整除的數”這個譯法并不嚴謹,因為所有被10整除的數也能夠被5整除,此處表達的含義是:那些包含有5的含義的羅馬數字字符。 |