数学家沈括?《梦溪笔谈》中关于围棋的讨论
的有关信息介绍如下:《梦溪笔谈》是沈括的一本笔记体著作,成书于北宋年间,收录了沈括一生的所见所闻和见解。其中记载了沈括见到的一些先进技术(如“活字印刷术”、“指南针”),以及一些涉及天文、地理、物理的知识与自然事物,其中,第十八章“技艺”中,记述了沈括对于数学的思考。其中“隙积术”提出了二阶等差级数求和的公式;“会圆术”讨论了已知圆弧的高度与弦长,求圆弧长度的问题。此章还讨论了很多有趣的问题,其中一个就是围棋状态数的问题。
(主要是最近被 Leela-zero 虐得有点惨,算一下围棋的复杂度,自我麻醉一下)
小说:唐僧一行曾算棋局都数,凡若干局尽之。余尝思之,此固易耳,但数多,非世间名数可能言之,今略举大数。凡方二路,用四子,可变八十一局,方三路,用九子,可变一万九千六百八十三局。方四路,用十六子,可变四千三百四万六千七百二十一局。方五路,用二十五子,可变八千四百七十二亿八千八百六十万九千四百四十三局;方六路,用三十六子,可变十五兆九十四万六千三百五十二亿八千二百三万一千九百二十六【注一】局。方七路以上,数多无名可纪。尽三百六十一路,大约连书“万”字五十二【注二】,即是局之大数。
其法:初一路可变三局,自后不以横直,但增一子,即三因之。凡三百六十一增,皆三因之,即是都局数。又法:先计循边一行为“法”,凡加一行,即以“法”累乘之,乘终十九行,亦得上数。又法:以自“法”相乘,下位副置之,以下乘上,又以下乘下,置为上位;又副置之,以下乘上,以下乘下;加一“法”,亦得上数。有数法可求,唯此法最径捷。只五次乘,便尽三百六十一路。千变万化,不出此数,棋之局尽矣。 【注一】应为“十五兆九十四万六千三百五十二亿九千六百九十九万九千一百二十一”
【注二】应为“四十三”
沈括说,唐代的一行法师曾思考过一个问题:围棋有多少字状态?沈括计算后认为:
2 路围棋,最多可以放 4 枚棋子,有 81 种下法
3 路围棋,最多可以放 9 枚棋子,有 19683 种下法
4 路围棋,最多可以放 16 枚棋子,有 43046721 种下法
5 路围棋,最多可以放 25 枚棋子,有 847288609443 种下法
6 路围棋,最多可以放 36 枚棋子,有150094635282031926种下法(沈括算错了*)
...
19 路围棋,最多可以放 361 枚棋子,大约有 种下法**。
怎么得出的呢?
围棋上每一个点都有三种状态:黑子●、白子○、空着,这样每一目都有三种情况,一路围棋(就是一个点)有三种状态,二路围棋有 种状态,三路围棋到六路围棋就依次为19683、43046721、847288609443、 150094635296999121 ,而完整的19路棋盘的数字则是 17408965065903192790718823807056436794660272495026354119482811870680105167618464984116279288988714938612096988816320780613754987181355093129514803369660572893075468180597603,约等于 ,当然,这个极简化的状态,完全不考虑围棋的规则。如果考虑围棋的状态,则只有大约1%能留在棋盘上,大约是 数量级。
可是围棋是要“下”的呀,不同的下棋过程又有多少种呢?或者说,存在多少张理论上的棋谱。
同样 不考虑规则 的话,其实很简单,361! ***:第一步有361种下法,第二步为剩下的360种,以此类推,直到填满。
361! = 1437923258884890654832362511499863354754907538644755876127282765299227795534389618856841908003141196071413794434890585968383968233304321607713808837056557879669192486182709780035899021100579450107333050792627771722750412268086775281368850575265418120435021506234663026434426736326270927646433025577722695595343233942204301825548143785112222186834487969871267194205609533306413935710635197200721473378733826980308535104317420365367377988721756551345004129106165050615449626558110282424142840662705458556231015637528928999248573883166476871652120015362189137337137682618614562954409007743375894907714439917299937133680728459000034496420337066440853337001284286412654394495050773954560000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
当然,考虑规则后情况变得复杂的多。
最后:
* 六路围棋那沈括错得很奇怪,3的次幂个位数只能是 3,9,7,1 ,它来个 6 ,应该检查一下就知道错了呀
** 即万字四十三,沈括原文为万字五十二,错得有些离谱了,现在网络上的文字版一般改做“万字四十三”。
***AlphaGo:狗老师心里苦,但是狗老师不说。(划掉)主要是没安装自然语言处理模块(划掉)
(题图:明 汲古阁刊本 《梦溪笔谈》)