在數字文明不斷發展的過程中,「零」的出現是人類計數史上的重要里程碑,它既可以表示「無」,也是位值制計數體系的核心,能大幅簡化複雜計算的步驟。
不過很少有人知道,輝煌的古羅馬文明在數百年的發展中從來沒有「零」的概念,也沒有建立位值制計數方式,他們靠著一套特別的數字符號、計算工具和思考方法,不僅順利做好了日常交易中的簡單算帳工作,還能完成帝國範圍內商業往來、工程建設、軍事後勤等各種複雜的計算任務,充分展現了古代人類的智慧。
無「零」的根基:羅馬數字的計數邏輯
羅馬人沒有「零」的概念,最主要的原因是他們的計數系統設計邏輯和這一概念不匹配,他們的數字體系來自日常生活中的計數需要,以七個基本符號為基礎,通過合理組合就能表示正整數,完全不用「零」來占位或者表示「沒沒有」——要是想表達「沒有」,羅馬人要麼直接省略數字,要麼用拉丁文「nulla」(意思是「無」)來描述,不用專門設計一個符號。
羅馬數字的七個基本符號分別是I(1)、V(5)、X(10)、L(50)、C(100)、D(500)、M(1000),計數時要遵循三大核心規則,這也是沒沒有「零」也能計算的基礎:一是「右加左減」,較小的符號在較大符號右邊就表示兩者相加,比如VIII就是5加1加1加1等於8,要是在左邊就表示相減,比如IV是5減1等於4、IX是10減1等於9,這個規則能減少符號的重複使用,讓數字書寫更簡單;二是「重複累加」,相同符號最多重複3次,比如III是3、XX是20,而V、L、D這三個代表中間數值的符號不能重複使用;三是「高位優先」,組合數字時要從大到小排列,比如14寫成XIV(10加4)、19寫成XIX(10加9),不用靠「零」來區分不同的數位。
這套計數系統的不足很明顯,它既不能表示負數和零,也很難直接進行複雜的手寫計算,但它有容易看懂、方便刻寫記錄的好處,不管是石碑上的紀年、建築上的編號,還是商業契約上的數量標註,羅馬數字都能清楚顯示,這也意味著羅馬人的計算工作必須依靠「輔助工具」,而不能只靠手寫計算。
核心工具:支撐複雜計算的「古代計算器」
因為沒沒有「零」的占位作用,羅馬人沒法像現在這樣靠手寫完成多位數的加減乘除,所以他們發明了兩類常用的計算工具並廣泛使用,把抽象的數字運算變成了直觀的動手操作,這也是他們能完成複雜計算的關鍵。
(一)羅馬算盤:口袋裡的「精密計算儀」
羅馬算盤是古羅馬人最常用的便攜式計算工具,相當於那個時代的「掌上計算機」,它的設計剛好契合羅馬數字的計數邏輯,能很好地解決「零」缺失帶來的麻煩,這種工具通常用青銅或木頭做底板,大小和手掌差不多,能輕鬆放進衣服口袋裡攜帶;底板上刻著幾道平行凹槽,槽裡放著小石珠或金屬珠(拉丁語叫「calculi」,這也是英語「calculate」的詞源),每一道凹槽對應一個數位(個、十、百、千等),凹槽被橫梁分成上下兩部分,形成「一和五」的計數方式——下方長槽裡有4顆算珠,每顆代表1,上方短槽裡有1顆算珠,代表5,和羅馬數字中I、V的組合邏輯很貼合。
使用時,羅馬人靠撥動算珠完成加減運算,要表示數字7,只要把上方代表5的算珠撥到橫梁處,再撥下下方2顆代表1的算珠(5加2等於7);計算CXXIII(123)和XLVII(47)的和時,不用寫複雜的算式,只要在對應數位上撥動算珠,加完之後就能快速得出結果。對於乘除運算,羅馬人會把它們變成重複的加減,乘法其實就是把同一個數字加很多次,除法就是把一個數字減很多次,熟練使用的人運算速度甚至不比現在的手寫計算慢。
目前已知的羅馬算盤原件只有3件,剩下的大多是複製品,因為大多數算盤是木頭做的,不容易長期保存。除了手持的小算盤,羅馬人還用過大型計算板,用來做更複雜的工程計算和土地測量,它其實就是放大版的算盤,靠在刻線上移動石子完成運算,借鑒了古希臘薩拉米斯計算板的核心思路,還在這個基礎上做了改進。
(二)石子與計數板:最樸素的「輔助計算器」
在羅馬算盤普及之前,石子和計數板是羅馬人最基礎的計算工具,很適合基層交易和簡單的算帳工作,計數板通常是一塊光滑的木板或大理石板,表面刻著橫線,每道橫線對應一個數位(比如從上到下依次是千位、百位、十位、個位),石子作為計數的單位,每顆石子對應它所在數位上的「1」,和羅馬數字「高位優先」的規則保持一致。
比如計算38加25時,羅馬人會在計數板的十位橫線上放3顆石子(代表30),個位橫線上放8顆石子(代表8),接著在十位橫線加2顆石子(增加20)、個位橫線加5顆石子(增加5),然後統計十位石子的總數(5顆,也就是50)和個位石子的總數(13顆,要改成1個十位石子和3個個位石子),最後得出63的結果。這種計算方法不用「零」占位,靠石子的數量和位置就能直接對應數字大小,簡單清楚,就算沒經過專業訓練的人也能很快學會,是羅馬民間最常用的計算方式。
計算方法:無「零」狀態下的運算技巧
除了使用各種計算工具,羅馬人還總結出了一套適合羅馬數字的運算技巧,通過簡化運算步驟、改變運算思路,解決了沒沒有「零」時手寫計算的難題,很適合不用工具輔助的快速算帳和記錄工作。
(一)加減運算:符號拆解與累加抵消
羅馬數字加減運算的關鍵是「符號拆解」,就是把複雜的數字拆成基本符號,再通過累加或抵消得出最終結果,完全不用考慮「零」的占位問題。比如計算MCMXCIV(1994)加DCLXVI(666)時,先把兩個數字拆成基本符號:M(1000)、CM(900)、XC(90)、IV(4)和D(500)、C(100)、L(50)、X(10)、V(5)、I(1),再把同類符號加起來,M(1000)、CM(900)加D(500)加C(100)等於1500、XC(90)加L(50)加X(10)等於150、IV(4)加V(5)加I(1)等於10,最後把這些加起來的結果組合起來,就是MMDCLX(2660),整個過程不用任何占位符號,只要遵循羅馬數字的組合規則就可以。
做減法時,羅馬人用「抵消法」,把被減數和減數的符號一一對應,相同的符號相互抵消,剩下的符號組合起來就是結果。比如計算DXL(540)減XXV(25),拆開來就是D(500)、XL(40)和XX(20)、V(5),其中XL(40)減XX(20)等於XX(20),剩下D(500)、XX(20)和V(5),最後得出DXXV(525),能很好地避開「零」在減法中可能出現的占位問題。
(二)乘除運算:轉化為加減的簡化邏輯
因為羅馬數字沒有採用位值制,乘除運算沒法像現在這樣用豎式計算,所以羅馬人把它們變成重複的加減運算,再結合羅馬數字的組合規則簡化步驟。乘法的關鍵是「倍數累加」,比如計算XII(12)乘V(5),可以變成把12加5次(12加12加12加12加12),加完之後得到LX(60);計算較大數字的乘法時,羅馬人會用「拆分倍數」的方法,比如計算XXV(25)乘XVI(16),把16拆成10加5加1,分別計算25乘10等於CCL(250)、25乘5等於CLXXV(125)、25乘1等於XXV(25),再把這三個結果加起來,得到CDL(450),能大大減少累加的次數,提高運算速度。
除法是乘法的反向運算,關鍵是「重複減法」,用被除數連續減去除數,直到剩下的數比除數小,減的次數就是商,剩下的數就是餘數。比如計算LXXV(75)除以XV(15),連續減15五次後沒有剩餘,所以商是V(5);要是計算LXXX(80)除以XV(15),減五次後還剩V(5),那麼商就是V(5),餘數是V(5)。這種方法雖然有點麻煩,但適合羅馬數字的特點,不用「零」也能完成複雜的除法核算,滿足商業交易和工程建設中的分配需求。
(三)大數與分數:特殊場景的計算適配
羅馬數字的計數規則限制了它能表示的最大數字(一般情況下最大是MMMCMXCIX,也就是3999),但羅馬人用「劃線增值」的方法解決了大數計算的問題:在數字上方畫一條橫線,就表示這個數字擴大1000倍,畫兩條橫線就表示擴大1000000倍,比如在V上方劃線表示5000,在XL上方劃線表示40000,用這種方式就能表示和計算大數,不用「零」來佔高位。
計算分數時,羅馬人也有自己的辦法,他們把1/12作為基本分數單位,用一個點「•」表示1/12,字母S(Semis的縮寫)表示1/2,通過點的數量和S的組合表示不同的分數,比如••表示2/12(也就是1/6)、S•表示7/12。這種分數體系選擇1/12作為基本單位,主要是因為12能被更多數字整除,適合商業交易中的分配需求,比如分割糧食、貨幣等場景,不用「零」也能完成分數的加減和換算。
無「零」計算的興衰
羅馬人沒沒有「零」時的計算體系,是為了適應他們文明發展的需要而產生的,它有效地支撐了古羅馬帝國的商業興旺、工程建設和軍事擴張,商人用這套體系算貨物總價和貨幣兌換比例,軍需官用它算士兵的糧食供應、武器裝備和薪餉發放,工程師用它算建築材料用量和工程負載,正是這套完善的計算體系,保證了羅馬帝國這個龐大的「機器」高效運轉。
但這套計算體系的不足也很明顯,因為沒有「零」占位,羅馬數字不能表示更大範圍的數字,運算過程也比較麻煩,尤其是多位數的乘除和複雜的小數運算,速度比後來傳入的阿拉伯數字體系慢很多。隨著西羅馬帝國的衰落,包含「零」的位值制阿拉伯數字和印刷術慢慢传到歐洲,羅馬數字的計算作用逐漸被取代,到15世紀,阿拉伯數字成為歐洲最常用的計數和計算工具,羅馬數字只在紀年、鐘錶、建築編號等特殊場景中保留下來。