目录  首页  免费下载

智能解死活题

经过三年多的努力,玄玄围棋终于具有自己的人工智能可以解死活题了。玄玄围棋有可能是当今世界上解题最快、解题范围最广、识别结果最详细、界面最友好的解题软件,其中有许多功能可能是首次出现。如果您发现了比玄玄围棋更强的解题软件,烦请告诉我。

解题范围

玄玄围棋还不能解决天下所有死活题,这点比较遗憾。玄玄围棋能解决的是所谓的“区域固定的死活题”,所谓区域固定的死活题那就是死活题的范围固定在某个区域,不会波及整个盘面。这类死活题有一个特点,就是有外墙棋子,它们被认为是不会被吃掉的。死活问题就发生在这些外墙棋子所围住的区域内,被外墙围住的棋子也假定没有逃出的可能。题目可以位于棋盘的任意一角或边,也可以在中腹。外墙棋子可以只由一方棋子组成,称为单一外墙,也可以由双方棋子组成,称为复合外墙。玄玄围棋解决单一外墙的死活题的速度更快些,这类死活题如果由外墙一方先走的话,行动就是进攻,目标就是杀死墙内对方的棋子,如果是由墙内被围棋子先走,行动就是防守,目标就是做活。对于复合外墙的题目,最常见的就是对杀型死活题,另外还有一种,就是有借用的死活题,这点在后面还会详述。

符合“区域固定的死活题”这一限制的死活题大约占世界上所有死活题的90%,是不是玄玄围棋能解世界上90%的死活题呢?现在还不能。因为对于空点太多的死活题同样也解不了。这里牵涉到死活题难度的一个问题。对于人来说,变化多的死活题就难的,对于程序来讲,空点多的才是难题,变化有多少它根本不在乎。人对于死活题空点的增长不是很敏感,但对于电脑程序来说,随着空点的增加,其计算量却是以指数爆炸的方式在增长!这类死活题大约占所有死活题的15%,这样,玄玄围棋能解决的死活题就应该是所有题目的75%,但事实上恐怕还没有这么高。纵使是空点不是太多的“区域固定的死活题”,也有3%-5%的题目解不出,但这类题目很有可能在以后的版本中得到解决。因此玄玄围棋大约能解天下所有死活题的70%,我相信目前这可能是所有解题程序中最高的。下面是玄玄围棋解题范围的总结:

  1. 区域固定的死活题(这一条件还暗含两个方面:外墙棋子不会有危险,墙内被围棋子不可能逃出,但对有借用死活题除外)
  2. 空点不是太多,最好小于20个空点
  3. 玄玄围棋只能解一小部分盘渡连接和手筋类题目,这些题目中都有棋子面临被吃的危险
  4. 玄玄围棋不能解官子型的题目。玄玄围棋只关心死活,不懂得如何占便宜

解题结果识别

玄玄围棋对死活题结果的识别是很详细的,它能识别以下死活结果:

  1. 净活或净死
  2. 连环劫活或连环劫死
  3. 盘角曲四
  4. “打劫, 至少双活”/“先手劫, 但最多双活”
  5. 双活
  6. 长生
  7. 循环劫
  8. 先手劫/后手劫/万年劫

以上这些识别的结果除了净活或净死和先手劫与后手劫外,最为重要的就是双活与连环劫了。上面的结果依次也是解题时追求的结果的优先级。也就是,作为防守方,如果能净活,就会避免以连环劫的方式做活,作为进攻方,如果能净杀对方,就会避免以连环劫的方式杀死对方,以此类推。将结果这样细分是有代价的。如果将连环劫活、“打劫,但至少双活”、双活、长生、循环劫看成是净活,连环劫死、盘角曲四看成是净死,那解题速度至少要提高4倍以上,为了解题信息的准确性,玄玄围棋选择了牺牲速度而追求准确性。这样做的一个考虑是,或许以后有更好的解题算法来提高速度。

如果说智能解死活题是玄玄围棋的精华所在,那识别双活和连环劫就是精华中的精华。说到双活,人们往往想到的是只有2口公气的情况,其实有些情况远比此复杂。下面的两个例子玄玄围棋均可以判断出是双活,并且双方都不能提子或打吃。

玄玄棋经 争力势

 

解原态死活题

玄玄围棋在设计之初就将解原态死活题作为一个主要目标,所谓的原态死活题就是和书上完全一致的死活题,不用增减任何棋子,不用将死活区域彻底封闭起来,也不用标注某些棋子。现在网上有许多死活题棋谱,对于这类棋谱,在玄玄围棋中打开后什么都不用做,直接按下“解题”按钮就行了。

玄玄围棋对死活题的分类

玄玄围棋对于能够解答的题目在程序内部是分外四种形态的,下面所有的死活题玄玄围棋都可成功解答:
  1. 单一外墙型
  2. 玄玄棋经 通妙势 (黑先)

    玄玄棋经 飞鱼势 (白先)

    玄玄棋经 金柜势 (白先)

    玄玄棋经 赚关势 (白先)

    单一外墙型是玄玄围棋最擅长解决的一类问题,如果空点不是太多的话,玄玄围棋很少失手。例如,对于“金柜势”,玄玄围棋能够推演“金柜角”的各种变化。幸运的是,大多数死活题属于这种形态。

  3. 复合外墙——对杀型
  4. 玄玄棋经 五将争锋 (黑先)

    玄玄棋经 五子之歌 (黑先)

    玄玄棋经 八龙升天 (白先)

    玄玄棋经 决胜千里 (白先)

    复合外墙——对杀型的解题速度和成功率不如单一外墙型。这里“八龙升天”是由多组外墙棋子构成的复杂对杀。“决胜千里”是玄玄围棋最初设计死活算法时希望达到的目标,所幸最后可以解出来。

  5. 复合外墙——有借用型
  6. 玄玄棋经 五虎入山 (黑先)

    吴清源诘棋—自强不息 181题 (黑先)

    吴清源诘棋—上级编 46题 (白先)

    棋经众妙 盘渡之部57题 (黑先)

    复合外墙——有借用型。所谓的“借用”,其实是某一方的援军棋子。“五虎入山”除了对杀外,黑棋还有三个子的援军,因此黑棋有两条生路,一是对杀获胜,二是与外面援军棋子连上。这题可能是玄玄围棋作为计算机程序成功解答的题目中最复杂的,虽然对于人来说这不是一道很难的题目。吴清源诘棋集—自强不息181题中的两个黑子看似和受困棋子够不着,但正是由于这两个子的借用黑棋才得以劫活,非常巧妙。吴清源诘棋—上级编46题白方要防止黑棋角上三个子的借用。棋经众妙盘渡之部57题的借用则完全演变成联络问题。

  7. 二路开口——半开放型
  8. 玄玄棋经 王陵斫营 (黑先)

    玄玄棋经 猛虎驱羊 (黑先)

    吴清源诘棋—上级编 第1题 (白先)

    发阳论 第1题 (白先)

    二路开口——半开放型。这种题目的问题区域没有完全封死,而是在包围圈的二路开了一个口子,被围棋子存在从这个开口逃跑的可能性。这在很大程度上增加了编程的复杂度,玄玄围棋对此类问题有特别的处理,计算量也增加了一倍以上,这类题目解答成功率偏低。如果一个题目有两个这样的开口,解答成功率非常低。吴清源诘棋—上级编第1题既是对杀型又是半开放型,接近玄玄围棋解题能力的极限。

玄玄围棋的解题界面及操作

玄玄围棋解死活题的功能操作上非常简单。当完成死活题的输入或打开现有死活题的棋谱后,可以直接按下解题按钮,玄玄围棋会为下一步走子的一方(在程序窗口底部的状态栏可以看出,如果是新输入的死活题需要改变,请右单击棋盘)进行思考。如果问题不是太复杂(空点不是太多)通常在数秒甚至0.5秒之内就会得出下一步的解答。如果问题较复杂,解题持续的时间可能会比较长,这时会在状态栏上看到有进度条和当前步解题用时。由于解题是在后台进行的,这时你可以切换到其它棋谱进行打谱或求解其他问题,不过,同时解题的任务数最好不要超过计算机CPU处理器的个数,如果你的计算机是双核的,最多同时解两道题。解题时间有一个限定值,缺省是20分钟,如果超过这个时间没有解出来,就会报超时,这个时限可以在程序选项对话框中更改。

一旦第一步求解出后,在程序的状态栏上你可以看到求解当前步得出的结果和引擎所花的时间。这时解题引擎就处于激活状态,这是一种交互的状态,在这种状态下,用户如果在棋盘上走子,解题引擎就会自动找出下一步最好的走法进行响应,而且所花费的时间通常比第一步解出要少得多。解题引擎处于激活状态时,上一步提劫的子可以立即被提回。如果你觉得引擎刚走的一步不如你想象的好,或是你想试试其它走法,你可以往回退一步,然后走你想走的地方,引擎同样会自动作出反应并告诉你结果。如果你走一步后,程序发现不论下一步走哪里都是被净杀,程序会放弃一手,因为引擎发现任何努力都是徒劳的。同样的道理,如果某一死活题存在如“黑先黑死”或“黑先白活”之类的错误,当你按下解题按钮时,程序的第一步响应就是“放弃”,因为引擎认为无论走哪里都无力回天,无论走哪里都是最坏的结果。这时你可以往回退一步,然后走你认为是正解之处,看看程序是如何回应的。如果你走一步后,程序发现让你再走一手也是净死,程序也会放弃一手,这时你可以走下一手,相当于连走两手。打劫的时候,玄玄围棋会利用本身劫材以求获得先手劫,有时会用“放弃一手”作为劫材。如果你走死活区域外的任何地方,玄玄围棋会将之视为放弃一手而接着走下一手。

如果某一步求解得出的结论不是极端的结果(净活或净死),你可以反复按解题按钮,让引擎分别为双方找出它认为最好的走法。例如,当程序得出的结果是“双活”时,你可以反复按解题按钮,直到双方走到定型为止。对于打劫(包括连环劫、先手劫、后手劫等)、盘角曲四,长生等等,也可以这样。用这样的方法玄玄围棋常常会正确地走出每一步,直到最后正解的那一步。定型后,你可以往回退到任意一步再走其他地方,程序同样会作出响应。

让棋局的解题引擎处于激活状态会消耗大约200M的内存。除非你的计算机有相当多的内存,否则不要让太多棋局的解题引擎处于激活状态。要让已处于激活状态的棋局退出激活状态,可用终止按钮,引擎所占的内存就会被释放。用这个按钮也可以中断正在解题的任务。有些棋谱一局含有多个局面,每个局面就是一道死活题(玄玄围棋不赞成这样做,认为一局就应该是一道死活题),引擎激活后如要转到另一局面解题,也必须先让解题引擎退出激活状态。

打谱时分析棋谱中的死活问题

对于死活题棋谱,整个盘面就是一道死活题,这时只需按下解题按钮就行了。然而打谱时常常在棋局内有死活问题需要分析,我们当然可以新建一局,将问题涉及到的棋子一一摆上,但这样太费事了。玄玄围棋提供了一种方法,让你就在棋谱中分析其中局部的死活。请看下面的例子:

右边区域存在死活问题,为了分析它,我们只需用“选择”标记(黄色小方块)将区域标注出来后,按下解题按钮就行了。使用“选择”标记圈定区域时,可以拖动鼠标。由于玄玄围棋总是为下一步走子的一方进行思考,因此在圈定区域前先在程序的状态栏上确认下一手走子的颜色。之后解题引擎被激活,你可以在区域内尝试各种走法,引擎都会对你的走步作出它认为最强的回应。需要注意的一点是,这些标记必须构成一封闭区域,不能有任何缺口,如上图。解题引擎会将圈出区域外的所有棋子忽略掉。如果有借用(即某一方的援军)棋子,标记应将它们包含进去。分析完后,用中断按钮退出引擎激活状态。引擎分析的结果和消耗的时间可以保存到棋谱中,前提条件是棋谱不能处于“只读”状态。注意,由于玄玄围棋打开棋谱默认是只读的,这时添加标记的工具按钮不能用。有两种方法可以解决这个问题,一是进入“试走”模式,二是用“只读”工具按钮退出“只读”模式。前一种方法的好处是不会改变棋谱。后一种方法的好处是,如果需要的话,可以保存这些解题信息。

由于从玄玄围棋6.0开始新增了获取其他程序窗口中的盘面”的功能,玄玄围棋解死活题的实用性大大增强了,请到这里看玄玄围棋如何解决实战中的问题。

让解题引擎做死活练习

从玄玄围棋的第一版开始就提供了死活练习的功能。这一功能是将死活题所有可能的走法都输入到棋谱中,然后由人走奇数步,计算机随机从已有的偶数步中选下一步来应对。如果人走的那一步计算机找不到相对应的下一步,就报错。这一过程其实和人工智能毫无关系。然而,如果题目属于玄玄围棋能解的范围(区域固定且空点不太多),可以试试让解题引擎来做死活练习。当打开死活题库后,计算机等待人走第一步,这时候只要按下解题按钮,由引擎来走第一步就行了。第一步走对后,死活练习的模块会找到下一步进行应对,这时你再按解题按钮,如此反复就可以让引擎将题目解完。你也可以用工具按钮退出死活练习模式进入棋谱编辑模式,再用引擎去解,这样偶数步就可以由你控制。

玄玄围棋智能解题的运用场合

  1. 解决实战中遇到的死活问题
  2. 分析现有的死活题。有些书上的死活题的变化很少,可能只有正解,有些可能连正解都没有。在解题范围内,玄玄围棋这时可以看作是一位可靠的死活裁判,用它你可以尝试各种走法,验证其正解的正确性。
  3. 打谱时分析棋谱中的死活问题

玄玄围棋解题引擎不足之处

玄玄围棋除解题存在一定范围,还有其他一些不足之处,下面依次说明:
  1. 走步没有优化。比如,两种走法同样可以做活,一种走法可以活得更大些,玄玄围棋不一定走那个活得更大的。两种走法同样可以成先手劫,一种走法有更多的本身劫材,玄玄围棋不一定走那个最好的。虽然引擎懂得什么时候要“遇劫先提”,什么时候要“遇劫后提”,但有时候这点做的并不正确,会浪费劫材。有时会走一些无谓的先手,什么是“无谓的先手”,请看下面:
  2. 黑先

    正解第一步走C,可玄玄围棋第一步却是走A,白肯定不会甘心白给,等白B交换后黑才走C,后面的走法都正确。虽然最终黑棋连出去了,但前面的两手交换却显得没有必要。

  3. 一旦某些棋子被认为是外墙棋子后,就不再顾其死活,也不担心外墙被冲破。
  4. 这类问题其实要解决似乎并不是太难,只要引擎准备一个“非正常走步应对表”,当检测到了这种非正常走步时,只要查表来应对就行了。或许以后的版本会解决这个问题。
    《玄玄棋经》玉匣藏珠,白先

    如果按常规走的话,玄玄围棋用了0.06秒就解出来了。问题是,白如果走A或B,黑不会走C或D去应。之所以会这样是因为解题引擎认为最上面三个子构成的外墙是没有问题的,白走A或B会被当成放弃一手。

    黑先。这其实是一道二路开口的死活题,玄玄围棋用了不到0.4秒就解出来了。由于正解是先手劫,因此可以反复按解题按钮,让引擎为双方走棋,最后一步不差地到了正解的最后一步。似乎很完美,其实不然。如果在这个过程中白走A,黑不会走B。为什么会这样呢,因为解题引擎对三个黑子的评估得出的结论是这三个黑子没有安全问题(可渡过且气数大于4),所以把它们当成了外墙棋子,并不再考虑白会走A这样的无聊的地方。
  5. 正如前面所提到的,玄玄围棋能解原态死活题,这里牵涉到一个对题目外墙棋子的确定的问题,这一功能在程序的实现上其实包含了许多围棋的具体知识,是容易出问题的一个地方。比如,把不是外墙的棋子当作外墙而不考虑它的死活,肯定得不到正确结果,而把本应算作外墙的棋子当非外墙棋子对待,而考虑其死活,势必明显影响解题速度。有时引擎对棋子是否为外墙棋子的评估不正确,把一些本可以算作外墙的棋子看成有死活问题,例如,与外墙以“双”的方式连接的棋子通常也可以看成是外墙棋子而不必考虑其被吃。有时却又把本来不该算作外墙的棋子当成了外墙,请看下面的实例。
    白先

    这是由多组外墙构成的对杀问题。由于黑A、B两子间隔大于1,因此玄玄围棋把中间参与对杀的四个白子当成了外墙棋子,结果可想而知。如果在C或D加上一个黑子,题目的性质丝毫没有改变,题目的解答就正确了,但这不符合玄玄围棋的解原态死活题的构想。

    这种问题有可能在以后的版本中会被解决。

    白先

    由于两个白子有四口气,解题引擎认为它们没有安全问题,因而将他们当成外墙棋子。虽然大多数情况下二线上有四口气的子是比较安全的,但这时将它们当成外墙棋子是不当的。最后当气紧完后还是有被A位断吃的可能。虽然在A、B两处分别添加一个黑子和一个白子题目的性质没有很大变化,解答也正确了,但这不符合玄玄围棋的解原态死活题的初衷。

    黑先

    三个黑子是没有安全问题的,但解题引擎没有将三个黑子看成外墙棋子而考虑了它的安全性,解题过程非常慢。其实只要在A或B添加一个黑子,只要1秒多就解出来了。将绝对安全的棋子与最外面的棋子连起来就成了外墙棋子,解题速度会飞速提高

从这些存在的问题其实可以看出,要做一个较好的解题程序是很不容易的。死活题真是千姿百态,要让所有的问题都得到解决几乎是不可能的。在开发的过程中,经常遇到这样的情况:解决了某一道题的问题后过了一段时间发现又引起了其他问题,而且要在调试的过程中找到问题的原因也不是一件容易的事,和去除程序的其他错误不一样,解题引擎工作起来是相当复杂的。

玄玄围棋的解题能力实测

玄玄围棋对50多本死活题书上的题目进行了实测,以下是测试结果。计算机用的是Dell D630,双核笔记本,1.8GZ。这里的棋谱全部来自网上,在下载页面都有,但那是没有解题信息的原始版,包含玄玄围棋没有成功解答的题目。下面可下载的棋谱只包含玄玄围棋能解的题目。棋谱中的解题信息是这样得来的:打开死活题棋谱后,直接按下解题按钮,如果当前的结果不是“净活”或“净死”,就反复按解题按钮,直到定型,解题引擎会为双方走出它认为最好的走法,然后往回退再尝试其他走法。如果当前的结果是“净活”或“净死”,下一步必须由人手动走出,否则再按解题按钮程序会放弃一手。在含解题信息的棋谱中,凡是由人走的棋步都会标为“人走”。在某一盘面,下一步中 最多只有一步是由解题引擎走的。解题信息还包括引擎思考某一步所花的时间。点击这里下载。这些棋谱必须用玄玄围棋5.0以上的版本才能打开。

序号 书名 总题数 正确解答题数 成功率 说明
1 吴清源诘棋集—初级编 98 71 72%  
2 吴清源诘棋集—上级编 100 63 63%  
3 吴清源诘棋集—自强不息 200 134 67%  
4 吴清源诘棋集—寿石不老 200 128 64%  
5 吴清源诘棋—玄妙 122 87 71%  
6 吴清源诘棋道场(上) 99 73 73%  
7 吴清源诘棋道场(下) 99 72 72%  
8 吴清源100万人的诘棋 142 100 70%  
9 前田陈尔实用围棋死活100题 100 74 74%  
10 前田陈尔实用围棋死活100题(续) 100 78 78%  
11 前田陈尔杰作集—诘棋の神样1 100 86 86%  
12 前田陈尔杰作集—诘棋の神样2 110 75 68%  
13 前田初级诘棋 225 193 86%  
14 前田中级诘棋 210 177 84%  
15 前田上级诘棋 150 107 71%  
16 前田陈尔100万人诘棋 144 112 78%  
17 前田陈尔死活100题 100 42 42%  
18 前田の诘棋—痛快 160 119 74%  
19 桥本宇太郎—诘棋五十三次 118 61 52% 桥本的题目大多数空点较多,解起来吃力。
20 桥本宇太郎死活妙手179 179 110 61%  
21 桥本宇太郎名作三百选 300 170 57%  
22 桥本宇太郎风和刻(上) 271 211 78%  
23 桥本宇太郎风和刻(中) 271 215 79%  
24 桥本宇太郎风和刻(下) 273 186 68%  
25 加田诘棋教室 48 41 85%  
26 加田克司杰作诘棋(第1册) 58 42 72%  
27 加田克司杰作诘棋(第2册) 54 47 87%  
28 加田克司杰作诘棋(第3册) 54 39 72%  
29 加田克司众妙诘棋(第1册) 54 49 91%  
30 加田克司众妙诘棋(第2册) 54 40 74%  
31 加田克司众妙诘棋(第3册) 54 45 83%  
32 加田克司众妙诘棋(第4册) 54 45 83%  
33 石田章诘棋杰作选 120 118 98%  
34 石田章诘棋快乐读本4(上级编 增补版) 55 54 98%  
35 石榑郁郎基本诘棋123题 123 111 90%  
36 石榑郁郎—六段挑战的诘棋 105 85 81%  
37 石榑郁郎诘棋杰作选 150 126 84%  
38 佐藤直男柔和-诘棋 134 75 56% 佐藤的死活题解起来好吃力啊。
39 佐藤直男爽快-诘棋 134 82 61%  
40 山田的诘棋1—基本的诘棋 101 98 97%  
41 山田的诘棋2—高速攻击的诘棋 111 108 97%  
42 山田的诘棋3—三段突破的诘棋 108 105 97%  
43 规三生的有趣诘棋道场 87 72 83%  
44 秀行死活题杰作集 163 158 97%  
45 棋经众妙 520 213 41% 后面有大约120道盘渡征子的题目没解。
46 发阳论 183 10 5% 《发阳论》中大部分都是开放型死活题
47 权甲龙忍耐的算路1、2、3 135 114 84%  
48 李昌镐精讲围棋死活1 123 120 98%  
49 李昌镐精讲围棋死活2 123 123 100% 唯一100%解决的一本书
50 李昌镐精讲围棋死活3 123 120 98%  
51 李昌镐精讲围棋死活4 123 92 75%  
52 李昌镐精讲围棋死活5 123 85 69%  
53 李昌镐精讲围棋死活6 123 78 63%  
           
  汇总 7268 5239 72.1%  

如果刨去《棋经众妙》中的盘渡120题,成功率大约是73.3%。《发阳论》是所有死活题书中解题成功率最低的一本。里面很多题目几乎不象是死活题,更象中盘战术的推演,它们的范围不固定,往往波及整个盘面。如果某一天有程序可以解《发阳论》中所有的题目,那离计算机对弈战胜职业九段棋手的日子就不远了。以上所有解出的题目都是原态的——原棋谱打开后直接按解题按钮,没有增减任何棋子。有些题其实稍微改一下就可解,但没有算。在编辑上面列表的时候我发现,这些死活题绝大部分是由日本棋手创作的。中国除了古代的《玄玄棋经》和《官子谱》外,几乎没有什么像样的死活题著作,非常遗憾。

职业棋手犯的错误

在对以上死活题书的测试过程中,发现了不少失题和不当之处,犯这些错误的人包括了象吴清源、前田陈尔、本因坊秀哉、桥本宇太郎等死活名家。李昌镐的死活题不是很多,但他犯的错误却是最多的。这些错误中有些只是某一变化的小错误,有些则是如“黑先黑死”、“黑先白活”这样的严重错误。对于这种严重错误,玄玄围棋的第一步反应就是“放弃”,因为它觉得走哪儿也没用。上面的这些死活题我不是全部都有原书,因此有些错误不排除是棋谱录入者造成的。以下是部分有问题题目的图示,你也可以点击这里下载这些错误的汇总棋谱,40多局,用玄玄围棋5.0以上的版本打开。玄玄围棋免费下载

题目 原书正解 玄玄围棋的发现
黑先 图1 图2
《棋经众妙》追杀之部,第12题。这是一道对杀题,黑棋其实无法救出被困的棋子,因此是一道黑先黑死的失题。正解图中白4是大恶手。如果按图2的走法,白棋可做成一眼,黑棋无法被救出。

玄玄围棋解此题用时:1.23秒

这里看更多错误图示

玄玄围棋解题能力的自我评估

玄玄围棋和人各有所长,玄玄围棋所擅长的是“区域固定”且“空点不太多”的死活题,在这个范围内,说它有专业十段也不为过,否则它不可能指出上述职业围棋大师的错误,也不可能只用几分钟就解决了《秀行死活题杰作集》的最后一题,秀行对此题的描述是“我认为是我的死活题中是最出色的一例。如果不经提示,专业的高段选手解题也需要几小时。”与人类不同的是,计算机在解题的过程中几乎没有盲点,可以说是算无遗策,这其实也正是计算机相对于人的优势所在。因此玄玄围棋解题的棋力是“一定范围内的职业十段”,并能解天下所有死活题的70%以上。

下一页