紅樓夢中的年齡校正
紅樓夢在人物年齡的敘述上是有些矛盾,例如寶玉挨打時,王夫人說:「我如今已五十歲的人」,可是沒過幾年,王夫人的長女元妃薨時卻「存年四十三歲」,王夫人如何能有這麼大的女兒;又如劉姥姥逛大觀園時,自稱「我今年75歲」,老太太說「比我大好幾歲呢」,但是兩年後,賈母卻做起「八旬大壽」,又過兩年,賈母去世時「享年八十三歲」;這些年齡的敘述也有好幾歲的誤差,如此等等,還有不少。雖然年齡敘述上的偏差不影響紅樓夢的偉大深刻,但這終歸是一個小小的遺憾,大家不忍心看著這些小小的瑕玼影響紅樓夢的光彩,於是一些學者通過對紅樓夢的系統分析提出了對紅樓夢人物年齡的修正,其中不乏精闢的見解。但各位學者的修正儘管很有道理,但結論卻不盡相同,例如有的學者認為元妃薨時存年三十一歲,有的認為是三十四歲,賈母去世時,有的人認為七十三歲,有的人認為是八十一歲,等等不一而足,很難統一。
對於紅樓夢中的年齡校正,筆者這裡想借助於自然科學中的「數據校正」方法,作一點探索,以期用「旁門左道」的方法來得到一點有意思的啟發,也算是學科的交叉。我們在工程實際中常有數據測量不准的時候,這時這些數據會有互相矛盾,不符合物質、能量平衡關係的情況出現,於是,人們提出「數據校正」的方法,其基本原則是以對數據的最小的修正,使滿足各平衡關係的等式成立。把數據校正方法應用在這裡,就是以最小的年齡數據修正得到最滿意的自圓其說的結果。
紅樓夢中的人物很多,涉及人物之間年齡的敘述也不少。這裡我們只選取幾個主要人物,年齡敘述矛盾較大的幾處加以修正,看看能不能得出更滿意的結果。我們選擇以下幾段有關寶玉,王夫人,元妃,賈母,劉姥姥的年齡敘述來試著加以校正:
紅樓夢第33回寶玉挨打時,王夫人道:「我如今已五十歲的人,只有這個孽障。」
第39回,劉姥姥說自己「我今年七十五了」,賈母向眾人道:「這麼大年紀了,還這麼硬朗,比我大好幾歲呢!「
第95回,元妃薨日……存年四十三歲。
第110回,賈母坐起說道:「我到你們家已經六十多年了……」,享年八十三歲。
第120回,豈知寶玉是下凡歷劫的,竟哄了老太太十九年!
為了對這些有矛盾的敘述中的年齡加以修正,需建立數學模型,以求解得到符合人物年齡關係的最小的修正。
在數學模型中,設定若干變量x(i)代表人物的年齡或人物間的年齡差距,設:
x(1)為寶玉挨打時的年齡(也即劉姥姥進大觀園時寶玉的年齡)
x(2)為王夫人比寶玉大多少歲
x(3)為元妃比寶玉大多少歲
x(4)為賈母比寶玉大多少歲
x(5)為劉姥姥比賈母大幾歲
x(6)為寶玉挨打後過幾年元妃薨
x(7)為元妃薨後過幾年賈母逝。
按照以上幾段文字的年齡敘述,這些變量應滿足如下關係式:
x(1)+x(2)=50
x(1)+x(3)+x(6)=43
x(1)+x(4)+x(5)=75
x(1)+x(4)+x(6)+x(7)=83
x(1)+x(6)+x(7)=19
但由於年齡敘述有誤,這些等式不可能同時滿足,是互相矛盾的,必須加以修正,設修正後差值為:
y(1)=x(1)+x(2)-50
y(2)=x(1)+x(3)+x(6)-43
y(3)=x(1)+x(4)+x(5)-75
y(4)=x(1)+x(4)+x(6)+x(7)-83
y(5)=x(1)+x(6)+x(7)-19
數據校正中的目標函數就是使數據修正後的方差和最小,即:y(1)至y(5)的平方和最小。
模型中的各年齡變量的取值不是任意的,有一定範圍,稱之為不等式約束,模型的解應在這個不等式約束範圍內。
根據紅樓夢文中的敘述可認為:
寶玉挨打時年齡x(1)在14歲-16歲之間
王夫人比寶玉年齡大 x(2)在33-38歲之間
元春比寶玉大x(3)在12-15歲之間
賈母比寶玉大x(4)在55-63歲之間
劉姥姥比賈母年齡大 x(5)在2-4歲之間
寶玉挨打時,經過x(6)約為2-4年後元妃薨
元妃薨後經過x(7)為1-2年後賈母逝
即:模型中的不等式約束為:
14≤x(1)≤16
33≤x(2)≤38
12≤x(3)≤15
55≤x(4)≤63
2≤x(5)≤4
2≤x(6)≤4
1≤x(7)≤2
求解上述包括目標函數,等式約束和不等式約束的數學模型可以得到數據最小修正的解。這是一個優化問題,各變量為整型變量,由於問題比較簡單,我們可用窮舉法求得最優解為:
x(1)=16,x(2)=34,x(3)=15,x(4)=59
x(5)=2,x(6)=4,x(7)=1
即:寶玉挨打時為16歲,王夫人屆時50歲;王夫人19歲時生元春,元妃薨時為35歲;劉姥姥進大觀園時為77歲比賈母大2歲;賈母去世時為80歲,寶玉前後哄了老太太21歲。
按照這個結果,紅樓夢中可以這樣改動,第39回,劉姥姥說「我今年七十七歲」,第95回。元妃薨日,…存年三十五歲,第110回,賈母逝,享年八十歲,第120回,寶玉竟哄了老太太二十一年。這樣,各人物年齡的敘述就沒有矛盾了,可以自圓其說。這是一個差值最小的修正結果。