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