Time complexity 棋类将死算法复杂度
我想知道用大O表示法确定国际象棋将死的图形搜索算法的复杂度是多少。。第一步有16种可能,仅兵一种,骑士一种有4种,第二部电影也有同样的可能。在这之后,可能性列表增长到一个无法计算的水平 世界上最好的象棋引擎使用“最可能”的图形搜索 这篇维基百科文章非常有用:Time complexity 棋类将死算法复杂度,time-complexity,graph-algorithm,Time Complexity,Graph Algorithm,我想知道用大O表示法确定国际象棋将死的图形搜索算法的复杂度是多少。。第一步有16种可能,仅兵一种,骑士一种有4种,第二部电影也有同样的可能。在这之后,可能性列表增长到一个无法计算的水平 世界上最好的象棋引擎使用“最可能”的图形搜索 这篇维基百科文章非常有用: “Allis还估计博弈树的复杂度至少为10123,”基于平均分支因子35和平均博弈长度80。作为比较,可观测宇宙中的原子数(经常与之比较)估计在4×1079和1081之间。”国王最多有八步。而且每次移动后都要花一定的时间来验证国王是否受到威
“Allis还估计博弈树的复杂度至少为10123,”基于平均分支因子35和平均博弈长度80。作为比较,可观测宇宙中的原子数(经常与之比较)估计在4×1079和1081之间。”国王最多有八步。而且每次移动后都要花一定的时间来验证国王是否受到威胁。再加上king原地不动(另一块移动)的情况。所以它是恒定时间。如果您只想检查给定的棋盘是否包含将死,那么您可以执行以下操作:
通过保持棋子在一个集合中的位置,并针对add()和contains()对其进行优化,您可以将其降到n中的线性(尽管棋盘的大小也会影响这一点),因此我认为线性复杂度是可行的。答案是该算法将解决剩余棋子(n)的所有可能移动。因为它只经过每一个片段一次,复杂性是O(N)(线性)。这是否意味着O(1)?它会不会因棋盘上还有多少棋子而有所不同?