问题

为什么下象棋有认输,没有认赢?

回答
这个问题很有意思,也触及了我们对游戏规则和文化内涵的理解。下象棋时,我们常听到“我认输”,但很少有人会说“我认赢”。这背后其实有着挺多值得说道的道理。

首先,咱们得从“认输”本身说起。象棋里,认输通常发生在一方觉得自己的局面已经无法挽回,继续下去只是浪费时间和精力,而且大概率会输掉的时候。这时候,说一声“认输”,表示承认自己技不如人,愿意接受失败。这是一种非常坦诚和礼貌的表现,也包含了对对手棋艺的尊重。就像在很多竞技场合,当一方明显处于劣势,裁判会询问是否继续,或者一方主动示意放弃一样,这是一种对规则的遵守,也是一种对公平的尊重。

那么,为什么没有“认赢”呢?这其实是因为在象棋的规则和文化里,游戏的终点是“将死”对方的将(帅)。将死,意味着对手的将(帅)已经无路可逃,被我的棋子包围并威胁,无法躲避。这是一个客观的、无可辩驳的胜利局面。

所以,当你觉得自己占有绝对优势,但还没有真正形成将死局面时,你并不能直接宣告“我赢了”。你还需要继续走棋,将你的优势转化为最终的胜利。即便你确信自己能赢,也要把这一步棋下完,直到对手的将(帅)被“将死”。这个过程本身就是对棋局完整性的尊重,也是对对手给予其应有反击机会的公平。

你想想看,如果允许“认赢”,那是不是有点……怎么说呢,就像在足球比赛中,你还没进球,但你觉得你实力强,就说“我认赢了,你们输了”,这显然不符合竞技体育的精神。象棋也是一样,即使你领先很多子,也可能因为一步大意而输棋,这种可能性始终存在,直到最后一刻。

另外,从心理和文化层面来看,“认输”更像是一种主动的姿态,一种对现实的接受。而“赢”往往是被动获得的,是对方“输”的结果。没有人会主动去“承认”自己是胜利者,除非是在某种特殊的语境下,比如比赛结束后,裁判或组委会宣布了胜利者。但在对弈过程中,胜利是通过双方的博弈、一方的失误和另一方的精妙布局才产生的。

再打个比方,就像学生考试一样,你可以说“我这次考试考砸了,我认输了”,但你不会说“我认我这次考得最好,我认赢了”。成绩的评定是老师给的,是客观的。象棋的胜利也是如此,它需要通过棋盘上的“将死”来体现,这是对手无法辩驳的“判决”。

所以,象棋中的“认输”是一种游戏规则内的合理行为,它为那些已经处于无法挽回劣势的棋手提供了一个体面的退出方式。而“认赢”则违背了游戏的逻辑和文化,因为胜利必须是对方被将死这一客观事实的体现,而不是你单方面的宣称。

总而言之,象棋的规则就是为了一个明确的终点——将死对方的将(帅)。“认输”是承认自己无法达到这个终点,而“认赢”则像是跳过了棋局本身,直接宣告了结果,这在象棋的世界里是不被允许的,也失去了下棋本身的乐趣和挑战。

网友意见

user avatar

为什么战争有投降,没有自行宣布胜利?

哦不对好像有

user avatar

不只是下象棋呀,哪里都是只有认输,没有认赢。

我最佩服一直认赢的人,他们能体验到什么叫“赢麻了”。

user avatar

这个是对 @Richard Xu 的回答的补充:

中国象棋棋至少比NP难.

NP是所有可以在多项式时间内被验证的语言. 也就是说如果要查一个input 是否属于某个NP的语言 , 存在一个多项式长度的证明 可以连着 丢进一个多项式时间的verifier , 然后 输出YES当且仅当 . 考虑象棋的语言 Chess={ 'pos' |如果棋局处于 'pos' 我方赢}. 这个时候我们能不能找到多项式长度证明呢? 为了方便, 我们考虑双方都只下一步棋的情况. 令 为一个验证我方是否已经赢的图灵机, 棋局的转移函数为 , 我方的move为 , 敌方的move为 那我们的算法就要evaluate

若熟悉polynomial hierarchy, 可看出 .

更推广到双方各走n步

这个就更难了. 但是一个NP 的oracle只能做 , i.e., .

P.S. 认输问题是认赢问题的dual

也不能在P或NP时间内确定.

中国象棋具体是什么复杂度?

更难处理的是 nchess 的 n 也不知道是不是poly-length的. 从这个表里面看来, 中国象棋具体复杂度还是open的, 不过看到chess, checkers 还有go 都是EXPTIME-complete的. 那很可能中国象棋也是EXPTIME-complete. 如果事实如此, 那中国象棋认输认赢不能在 NP 里面, 即使P=NP. 这个是因为根据 time hierarchy theorem , 我们有

user avatar

因为认输是P,认赢是NP的。

当一方认输时,裁判无需验证当前局面是否必输,可以直接判负,时间复杂度为常数。

当一方“认赢”时,裁判可以在常数时间复杂度内验证任意局面是否已经有一方赢或者输(即NP中要求的“可以在多项式时间复杂度内验证一个解”)但通常无法在多项式时间复杂度内验证当前局面是否必赢(“无法在多项式时间复杂度内找出一个解”)


作为对比,大多数棋类在进入残局后都可以变相“认赢”,因为此时可以直接根据当前局面以及一些简单的经验规则(比如“单车胜双士”,或者围棋中空地已经较为明确,且目数差距远超过剩余官子数量的情形)判断是否已经有一方必赢或必输(而无需讨论后续的可能着法)。这里面其实有一点Obvious Dominance的意味。

user avatar

别说下象棋,就是翻现代汉语词典,他也找不到“认赢”啊!

user avatar

我认为 @Richard Xu@王希 的回答有一些道理。Richard 说裁判认定“认赢”成立是NP问题,但还应该考虑问题的规模,在规模足够小的情况下,NP问题也是可以求解的,但即便如此,也不应该存在“认赢”规则,因为要杜绝第二类错误。

总结起来,象棋中不存在“认赢”的原因是:问题大规模情形下(局面不清楚)裁判无法判定“认赢”是否是成立的;小规模下(按经验必胜的局面)即便可能推演出一方是必胜的,但无法保证裁判推演不出错,也无法保证选手执行不出错,因此应杜绝第二类错误;极小规模下(几步内的定式杀招)存在“认赢”的合理性,但没有必要性,而且不能因此剥夺对方的行棋权力,因为规则上,在必胜局面(除困毙外)也可以通过对方选手放弃将杀而形成翻盘或者和棋。

用一句话总结原因的话,就是人的理性和认知是有限的。而如果不是这样的话,象棋也就没有意义了。

-------------以下为原答案-------------

简而言之,因为人类的理性有限,目前无法知道或完美实施象棋的最优应对,所以要杜绝第二类错误。

这个问题首先要把什么是“认赢”定义清楚。假设定义“认赢”是在某个局面下,一方证明对方不论怎么走,自己都能有必胜的应对策略而直接判自己获胜。

那么这个证明过程在局面复杂的情况下(均势、大优、胜势)几乎无法实现(NP问题),在特别简化的局面(一两步就将死了)中又没有必要证明。

争议点在一般简化的局面中(如象棋界总结出来的必胜局面)。这里虽然由经验甚至严谨的推导能够得到一方必胜的结论,但对弈双方以及裁判都是人,就有可能犯错误。假如在某个局面下,裁判错误地认为一方已经赢了,就犯了第二类错误即取伪,责任应当规则方裁判负。这里的第二类错误的危害是比第一类错误大的,如果存在“认赢”,那么规则上将不再完美。而本该赢却“认输”属于第一类错误,责任是选手自负。

同时,选手也不一定明确地知道最优策略,选手在执行策略的时候也是会犯错误的,下棋并不单单是理论上的较量,还要看犯不犯糊涂,棋子有没有摆错,看没看走眼等等。

对弈双方在一开始都以自己赢为假设,通过零和博弈去证明自己是对的,象棋之所以存在它的意义,就是因为人的理性和认知是有限的,并不知道象棋中蕴含的最优策略,所以理论上一开始就有的胜负,却需要到最后一刻通过实践的方式来“认赢”。

user avatar

我个人认为 @Richard Xu 的回答讲的内容都是符合事实的,但并不能作为这个问题的回答。

下棋有认输而没有认赢,唯一的原因是双方的战略目的都是赢,和P还是NP没有关系。我们可以做一个假设:有一台谕示机(Oracle)可以在可忽略的常数时间给出一个局面哪方有必胜方法,它是全知的。现在让裁判可以随意访问这台谕示机,那么P和NP没有任何区别,裁判总是可以迅速判断双方谁有必胜策略。甚至根据策梅洛定理,裁判一开始就知道先手或者后手有必胜策略。

我们假设中国象棋先手有必胜策略。那么两个人下棋时,先手能不能直接认赢?反正裁判根据谕示机可以知道,先手有必胜策略。但是下棋所竞争的,就是双方的智力能不能达到那个必胜策略,根据谕示机的结果相当于消灭了下棋的意义。

而他所说的“变相认赢”,其本质还是认输:只有双方和裁判同时认可双方的棋力在一个定值以上。反过来说,如果两个新手,即使下到了单车对双象,也不一定有人认输。只有双方都有一定水平,才会认为“以他的水平,我输定了”从而认输(这也就是变相认赢)。如果一方坚持,另一方也必须下完。

user avatar

这就一基本逻辑问题啊!

你认输,对方显然不会反对,OK,双方达成共识。

你认赢,对方说凭啥?当然如果对方同意了,那这盘棋按对方认输处理,还是属于认输。对方不同意,那你这个认赢显然无效。

user avatar

“白方宣布已经将黑方去军事化”

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有