2 releases
0.1.1 | 2024年2月26日 |
---|---|
0.1.0 | 2024年2月22日 |
#414 in 算法
67KB
1.5K SLoC
three-style
three-style是一个程序,用于搜索在3-style中使用的3x3交换子,3-style是一种高级盲解魔方的方法,一次交换3个部件而不影响魔方的其余部分。
内容
安装
您可以通过从发布下载适用于您的系统的预构建二进制文件或使用cargo安装来使用three-style。
cargo install three-style
用法
three-style使用层来描述部件或更确切地说,是贴纸目标。示例:UF
(棱),UBL
(角)。目前,它只公开了一个主要命令search
,并按以下方式使用
# corners
three-style search --gen RUD --corners UFR UBL RFD --depth 4
# edges
three-style search --gen RUE --edges UF UB LF --depth 5
# shorter versions
three-style search -g RUD -c UFR UBL RFD -d 4
three-style search -g RUE -e UF UB LF -d 5
[!NOTE] 深度相对于交换子的表示形式中的长度。
概念
交换子是以下形式的算法:A B A' B'
,它允许我们一次交换3个部件而不影响魔方的其余部分。它通常以下列方式描述:[A, B]
。
它由两个基本可交换的部分组成
- 交换是单次移动,交换两个部件而不影响第三个部件
- 插入是三次移动,将第三个部件插入到两个部件中的一个空位中,而不影响另一个部件。
但并非所有情况都可以仅使用纯交换子解决,有些情况需要使用设置移动。一个 设置移动 是一系列移动,将情况转换为可以仅使用纯交换子解决的问题。使用设置移动的交换子形式为 S A B A' B' S'
,并且更常见地写作 [S: [A, B]]
[!NOTE] 边缘有一个称为 4 movers 的特殊情况,它不使用正常的3次移动插入。例如:
[M', U2]
该程序基本上执行迭代深度优先搜索,并应用这些规则来查找换位。因为这些规则允许高效地剪枝,所以搜索速度相当快。
参考
贡献
欢迎提交错误报告、拉取请求和功能请求!
依赖项
~1.3–1.9MB
~36K SLoC