本文纯属虚构,如有雷同,实属巧合。

最近我偶翻《红楼梦》,想到一个问题,大家都听说过女娲补天,可是补了多大呢?

《红楼梦》有一条线索,按《红楼梦》(脂砚斋重评石头记)第一回:

原来女娲氏炼石补天之时,于大荒山无稽崖练成高经十二丈、方经二十四丈顽石三万六千五百零一块。娲皇氏只用了三万六千五百块,只单单的剩了一块未用,便弃在此山青埂峰下。

就是说,要计算天上的窟窿有多大,只要知道每一块石头的面积,再乘以 36500 即可。

计算补天石面积之前,先谈谈为什么要补天。

为何补天

女娲补天是历史上最著名的神话故事之一。据《淮南子·览冥训》记载:

往古之时,四极废,九州裂,天不兼覆,地不周载……于是女娲炼五色石以补苍天,断鳌足以立四极……

因为「天不兼覆」,所以要打个补丁。

天怎么「不兼覆」了呢?

东汉王充《论衡》提到:

共工与颛顼争为天子不胜,怒而触不周之山,使天柱折,地维绝。女娲销炼五色石以补苍天,断鳌足以立四极。天不足西北,故日月移焉;地不足东南,故百川注焉。

按《论衡》的说法,共工和颛顼争夺天帝(颛顼为天帝,命令重、黎二神「绝地天通」的就是他。),不胜,怒触不周山。而不周山是西北方的天柱,也就是上文提到的「四极废」中的西北极。

古人的想象很有意思,天柱折断,不是天掉下来,而是大地翘起,大地好像个跷跷板,西北方翘起来,东南方自然塌下去,于是「地不足东南」。

《红楼梦》显然采用了这个说法,第一回写甄士隐出场:

当日地陷东南,这东南一隅有处曰姑苏……

「地陷东南」和「地不足东南」是一个意思。

共工撞不周山这句话,《淮南子·天文训》也提到了:

昔者共工与颛顼争为帝,怒而触不周之山。天柱折,地维绝。天倾西北,故日月星辰移焉;地不满东南,故水潦尘埃归焉。

但《淮南子》并没有说不周山和女娲补天这两件事有因果关系,王充把它们糅在一起了。其实仔细一想,仅一座不周山和「四极废」不可同日而语,除非有四个共工级别的大神一起,因此这到底是不是一件事,不能确定。

还有一种说法,说是和共工争斗的是祝融,而《山海经》又说共工是祝融生的(「祝融降处于江水,生共工。」),关系乱的一塌糊涂。中国上古神话看起来支离破碎,互相矛盾者很多。

半截不周山掉哪里去了呢?有人说被元始天尊拣去炼成法宝番天印,赠给广成子,封神一战砸死了不少人。拿天柱砸人,很有想象力,不过《封神演义》并没有提到番天印的来历,这是现代作家的想象。

不论如何,天是破了,于是「宇宙大祖母」女娲出场了,炼石补天。

计算补天石大小

要计算石头的面积,关键是搞清楚「高经十二丈、方经二十四丈」是什么意思。而高度与面积无关,因此只要考察「方经二十四丈」指什么,有三种可能。

面积

「方」可能是面积,比如「方圆十里」,指的是半径十里的圆。事实上,如果你看《红楼梦》程本,它写的很直白,就是「见方二十四丈」。因此,我们有了补天石面积的第一个说法:

1. 程本:补天石面积 = 24 丈2

边长

但是「见方二十四丈」也可以指边长二十四丈。例如「一米见方」,是指边长一米的正方形。还有人说,「方经」本来写作「方径」,而「径」是长度,例如「直径」。如果是这样,那有可能是说长二十四丈。

那么是边长二十四丈还是周长二十四丈呢?

如果按「一米见方」之说,指边长,就有了补天石面积的第二个说法:

2. 边长二十四丈:24 x 24 = 576 丈2

周长

《西游记》写猴子出世,是这么写的:

那座山正当顶上,有一块仙石。其石有三丈六尺五寸高,有二丈四尺围圆。三丈六尺五寸高,按周天三百六十五度;二丈四尺围圆,按政历二十四气。上有九窍八孔,按九宫八卦。

你看中国最著名的两块石头,连尺寸都这么相似。可见要强调天灵地杰,总不外乎二十四,三六五之类的。这里「二丈四尺围圆」显然是周长。因此,补天石周长二十四丈也说得过去。当然了,《西游记》不代表《红楼梦》。一个是野生的,一个是娲皇至尊亲手所炼。但为了结果全面,我们把周长也算在内。

周长二十四丈,相当于边长 6 丈。这就有了补天石面积的第三个说法:

3. 周长二十四丈:6 x 6 = 36 丈2

综上,根据《红楼梦》,补天石的面积有三种可能:

1. 程本: 24 丈2
2. 边长二十四丈: 576 丈2
3. 周长二十四丈: 36 丈2

对应的补天面积分别为:

1. 程本:24 * 36500 = 876000 丈2
2. 边长二十四丈:576 * 36500 = 21024000 丈2
3. 周长二十四丈:36 * 36500 = 1314000 丈2

至于到底哪个结果符合原文,我只能严谨地说—-留给专家吧。

1 丈 = ?米

古人管男子叫「丈夫」,因此一丈差不多一个人那么高(现在中国成年男性平均身高 170cm 左右)。而且古代身高一丈算是大个儿了。据《三国演义》,关羽「身长九尺,髯长二尺」,关羽还不到一丈呢。

实际上,丈的长度远比身高要长,且随时代变化(单位的确定都很难,需要近代科学手段。例如,米的定义是「光在真空中 1/299792458 秒前进的距离」,古人不可能也没必要定义这么精确)。

下表是历代「丈」的长度1,单位是厘米。

丈-米

可见,丈的长度是递增的。三国时期一丈 = 242cm(因此关羽身高 2.18 米),而到了《红楼梦》时代的清朝,一丈 = 320cm(营造尺)。

现在可以把补天面积换成平方米了。

计算比较麻烦,我写了一段程序,想要哪个朝代的结果只要找到对应的转换倍数即可,例如三国时期,就输入 2.42:

// 三国
threeKingdoms = areaCal(2.42); 

清代就输入 3.2:

// 清
qing = areaCal(3.2);

《红楼梦》是清代的书,就以清代结果为例:

清代( 1 丈 = 3.2 米):
1. 程本:876000 丈2 = 8970240 米2 = 8.97 公里2
2. 边长二十四丈:21024000 丈2 = 215285760 米2 = 215.29 公里2
3. 周长二十四丈:1314000 丈2 = 13455360 米2 = 13.46 公里2

「程本」的结果最小,8.97 平方公里,相当于 12 个半故宫。最大值 215.29 平方公里,相当于三百个故宫,也正好等于北京海淀区的一半(海淀区面积是 430 平方公里)。

最后,让我们再回顾一遍这几个数字:

高经十二丈、方经二十四丈……娲皇氏只用了三万六千五百块……

看起来很眼熟,对,这不整个儿一「年月日」么?

为什么这么巧,只有「天知道」了。

JavaScript Code 把「丈」转换为「米」

/*
1. 程本:24 * 36500 = 876000 丈^2
2. 边长二十四丈:576 * 36500 = 21024000 丈^2
3. 周长二十四丈:36 * 36500 = 1314000 丈^2
*/

/*
「丈」和「米」转换
三国:1 丈 = 2.42 米
清:1 丈 = 3.2 米
https://zh.wikipedia.org/wiki/中國度量衡
*/

/*
// 三国
let threeKingdoms = areaCal(2.42); 
console.log("三国( 1 丈 = 2.42 米):");
printArea(threeKingdoms);

console.log("\n");
*/

// 清
let qing = areaCal(3.2);
console.log("清代( 1 丈 = 3.2 米):");
printArea(qing);


function areaCal(x) {
	let a1 = 24 * 36500 * x * x;
	a1 = Math.round(a1);
	
	let a2 = 576 * 36500 * x * x;
	a2 = Math.round(a2);
	
	let a3 = 36 * 36500 * x * x;
	a3 = Math.round(a3);
	
	return [a1, a2, a3];
}

function printArea(x) {
	let num0 = x[0]/1e6;
	let num1 = x[1]/1e6;
	let num2 = x[2]/1e6;
	
	let str1 = `1. 程本:876000 丈<sup>2</sup> = ` + x[0] + ` 米<sup>2</sup> = ` + num0.toFixed(2) + ` 公里<sup>2</sup>。`;
	console.log(str1);

	let str2 = `2. 边长二十四丈:21024000 丈<sup>2</sup> = ` + x[1] + ` 米<sup>2</sup> = ` + num1.toFixed(2) + ` 公里<sup>2</sup>。`;
	console.log(str2);

	let str3 = `3. 周长二十四丈:1314000 丈<sup>2</sup> = ` + x[2] + ` 米<sup>2</sup> = ` + num2.toFixed(2) + ` 公里<sup>2</sup>。`;
	console.log(str3);	
}
  1. https://zh.wikipedia.org/wiki/中國度量衡