所以我正在为Haskell(https://www.jaapsch.net/puzzles/rings.htm)中的匈牙利环难题求解器 我的语言不太好,仍然有很多盲点。我正在努力找出用于表示难题的数据结构,并希望为此提供任何提示,技巧或答案! (顺便说一下,我目前的想法是如何用彩色数字表示彩球的,这些数字在解决难题时将是有序的)
答案 0 :(得分:0)
与how to represent a Rubik's cube in a data structure类似,朴素模型包含冗余信息,而最紧凑的模型取决于对象的algebraic analysis。因此,一方面,对具有冗余信息的模型进行的操作可能效率低下,而对紧凑型模型(例如置换组)的操作在转换为物理操作时可能非常抽象。
因此,您可能会发现高阶排列组更容易描述它;这是维基百科上Rubik's Cube Group的文章:
魔方多维数据集组是对称组S₄₈的子组,对称组 S << / em>由与六个顺时针多维数据集移动相对应的六个排列生成。
只要您考虑到一个队列的一个轮换操作会影响其他队列,这很可能对应于luqui建议的一组双端队列。