书城文学中国古典文学荟萃(梦溪笔谈)
6984400000098

第98章 棋局部数

“原文”

小说:唐僧一行曾算棋局都数,凡若干局尽之。予尝思之,此固易耳,但数多,非世间名数可能言之,今略举大数。凡方二路,用四子,可变八十一局;方三路,用九子,可变一万九千六百八十三局。方四路,用十六子,可变四千三百四万六千七百二十一局;方五路,用二十五子,可变八千四百七十二亿八千八百六十万九千四百四十三局(古法:十万为亿,十亿为兆,万兆为秭。算家以万万为亿,万万亿为兆,万万兆为垓。今且以算家数计之。);方六路,用三十六子,可变十五兆九十四万六千三百五十二亿八千二百三万一千九百二十六局;方七路以上,数多无名可记。尽三百六十一路,大约连书“万”字四十三,即是局之大数(万字四十三,最下万字是万局,第二是万万局,第三是万亿局,第四是一兆局,第五是万兆局,第六是万万兆,谓之一垓,第七是万垓局,第八是万万垓,第九是万亿垓。此外无名可记。但四十三次万倍乘之,即是都大数,零中数不与。)。其法:初一路可变三局,一黑、一白、一空。自后不以横直,但增一子,即三因之。凡三百六十一增,皆三因之,即是都局数。又法:先计循边一行为“法”,凡十九路,得一十亿六千二百二十六万一千四百六十七局。凡加一行,即以“法”累乘之,乘终十九行,亦得上数。又法:以自“法”相乘(得一百三十五兆八百五十一万七千一百七十四亿四千八百二十八万七千三百三十四局,此是两行,凡三十八路变得此数也)。下位副置之,以下乘上,又以下乘下,置为上位;又副置之,以下乘上,以下乘下;加一“法”,亦得上数。有数法可求,唯此法最径捷(只五次乘,便尽三百六十一路)。千变万化,不出此数,棋之局尽矣。

“译文”

据小说记载:唐朝僧人一行曾计算过下围棋时可能下出种种不同局面的总教。一共有多少局,他都算出来了。我也曾经考虑过,这当然容易,但棋局数目太大,不是用现在的大数名称可以表达出来的。现在我大略说一下,如果棋盘是两路见方,就有四个用子位置,可以变化出八十一种棋局(因为每个位置上都有可能出现黑子、白子、或者是空着的三种情况,因而四个位置就有3×3×3×3=81局)。如果棋盘是三路见方,就有九个用子位置,可以变化出39=19683局;棋盘是四路见方,就有十六个用子位置,可以变化出316=43406721局;棋盘是五路见方,就有二十五个用子位置,可以变化出:325=847288609443局(根据古法,十万为亿,十亿为兆,万兆为秭。而算家以万万为一亿,万万亿为一兆,万万兆为核。我们现在只是用算家的计算方法来计数);棋盘是六路见方,就有三十六个用子位置,可以变化出:336=1594635282301926局。七路见方以上布局的,棋局数多到没有相应的数名可以计下来。如果将棋盘三百六十一路的变局全记下的话,大概要连写五十二个“万”字才是局的大致数字(连写五十二个万字,那么最后一个万字,表示万局;最后第二个万字,表示万万(即亿)局,第三个万字,表示万亿局;第四个万字,表示万万亿(即兆)局;第五个万字,表示万兆局;第六个万字,表示万万兆(即垓)局;第七个万字,表示万垓局;第八个万字,表示万万垓局;第九个万字,表示万倍万万垓局。因为以万万进位,垓以上又没有数名,所以再往上就没有大数名词好用了。只要连乘五十二个一万,就大概是所求的棋局总数了。这里只给出第一位的数字。其余的数字都略而不讲)。上述计算棋局总教的方法是:先考虑一个点,它可能出现黑、白、或空着三种情况。从它出发,往后不论横线还是直线,每增加一个用点位置,局数就是前面局数的三倍(多乘一个三)。一直增加到全盘的三百六十一个点,每次都多乘一个三。就得到棋局的总数了。计算棋局总数的另一种算法是:先算出棋盘沿边一行十九个位置上的棋局总数,这个数称为基本数,共得一十亿六千二百二十六万一千四百六十七局。每加算一行,就用这个基本数乘一次,乘完十九行,也得到上段所讲的棋局总数。计算棋局总教还有一种算法是:先把基本数相乘(得一百三十五兆八百五十一万七千一百七十四亿四千八百二十八万七千三百三十四局,这是两行共三十八点变化出来的局数),把这个数布列在筹算盘的上位。下位也列这个数,用下位数乘上位数,再乘以下位数;把结果布列在上位,下位也布列它,用下位数乘上位数,再乘以下位数;再用基本数乘一次。也得到前段所讲的总数。计算棋局总数有许多种方法,只有这种方法最快捷(只须五次运算,就得出三百六十一个点所变化出的棋局总数)。棋盘上可能布置出的局面是千变万化的,但无论如何其变化的总数都不会超过这个数目,它已经包括尽所有可能的局面了。