gpt4 book ai didi

algorithm - 处理棋盘对称性

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:51:13 24 4
gpt4 key购买 nike

在一个8X8的棋盘中,我想知道如何实现棋盘的对称性。

很多位置只是镜子或彼此的旋转(没有棋子或易位能力,方向无法区分)。

通过组合使用棋盘的垂直、水平和对角线镜像,始终可以将棋子的位置固定在 a1-d1-d4 三角形内。

如何在棋盘上实现这些对称性?这是否取决于所选择的板表示形式的选择(位板、0x88、8x8 阵列等)?

编辑 1:目标是实现残局表的生成及其压缩。

最佳答案

如果您希望压缩板,则可以生成每个板的规范表示。一个older answer @DocBrown 很好地表达了这一点:

To make this more efficient, you can work with a "canonical representation" of each board, defined as follows. Generate all symmetric boards of a given one, pack each one of it into a byte array, and among those arrays keep the array which, interpreted as a big number, has the minimum value. This packed representation is a unique identifier of the symmetry class of each board and can be easily put in a dictionary / hash table, which makes testing if that symmetry class already appeared very efficient.

这个问题引用了N-queens problem由于每个皇后都无法区分,因此可以找到很多对称性。对于最终游戏板,情况(很少)是这样,所以我不确定您会节省多少。

关于algorithm - 处理棋盘对称性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21185210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com