You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
188 lines
6.3 KiB
188 lines
6.3 KiB
4 years ago
|
## 华容道布局
|
||
|
|
||
|
### 合法布局定义
|
||
|
|
||
|
+ 棋盘大小为4 x 5
|
||
|
|
||
|
+ 棋子为2 x 2,2 x 1(1 x 2),1 x 1三种
|
||
|
|
||
|
+ 棋子间不能重叠,且至少存在两个空格
|
||
|
|
||
|
+ 有且仅有一个2 x 2块,其他类型不限定
|
||
|
|
||
|
*(合法的布局必须满足以上四点)*
|
||
|
|
||
|
合法华容道布局共有29334498种
|
||
|
|
||
|
|
||
|
### 标准情况与非标准情况
|
||
|
|
||
|
标准布局:存在5个2 x 1(或1 x 2)和4个1 x 1棋子的合法华容道布局(363480种)
|
||
|
|
||
|
非标准布局:除标准布局外的全部合法华容道布局(28971018种)
|
||
|
|
||
|
|
||
|
### 合法布局举例:
|
||
|
|
||
|
<img src="/images/legal_1+2.png" alt="legal_1+2" style="zoom: 40%;" />
|
||
|
|
||
|
<img src="/images/legal_3+4.png" alt="legal_3+4" style="zoom: 40%;" />
|
||
|
|
||
|
|
||
|
### 非法布局举例:
|
||
|
|
||
|
<img src="/images/illegal_1+2.png" alt="illegal_1+2" style="zoom: 40%;" />
|
||
|
|
||
|
<img src="/images/illegal_3+4.png" alt="illegal_3+4" style="zoom: 40%;" />
|
||
|
|
||
|
**错误原因:**
|
||
|
|
||
|
+ 缺少2 x 2块
|
||
|
|
||
|
+ 仅有一个空格
|
||
|
|
||
|
+ 存在两个2 x 2块
|
||
|
|
||
|
+ 存在3 x 1块
|
||
|
|
||
|
|
||
|
|
||
|
## 布局间的关系
|
||
|
|
||
|
+ 移动原则:棋子只能平行移动,不能进行旋转;
|
||
|
|
||
|
+ **一步**:某一棋子做任意次移动的过程(或结果);
|
||
|
|
||
|
+ **子布局**:某一布局通过一步移动可以得到的布局称为子布局;
|
||
|
|
||
|
+ **相邻布局**:两布局互为对方子布局时,两者为相邻布局;
|
||
|
|
||
|
性质:若布局A是布局B的子布局,则同时必有布局B是布局A的子布局;
|
||
|
|
||
|
|
||
|
### 步的举例
|
||
|
<img src="/images/step_exp_1.png" alt="step_exp_1" style="zoom: 40%;" />
|
||
|
|
||
|
<img src="/images/step_exp_2.png" alt="step_exp_2" style="zoom:40%;" />
|
||
|
|
||
|
<img src="/images/step_exp_3.png" alt="step_exp_3" style="zoom:40%;" />
|
||
|
|
||
|
|
||
|
|
||
|
## 分类
|
||
|
|
||
|
### 布局id
|
||
|
|
||
|
合法布局共有29334498种,将它们从小到大排列,进而得到唯一的id(0 ~ 29334497);
|
||
|
|
||
|
|
||
|
### 摆列方式分类
|
||
|
|
||
|
**2 x 1 与 1 x 2的数量**
|
||
|
|
||
|
将2 x 1(1 x 2)的数量称为jiang_num;
|
||
|
|
||
|
由于至少存在两个空格,于是有`0 ≤ jiang_num ≤ 7`
|
||
|
|
||
|
可分为七种情况:
|
||
|
|
||
|
| jiang_num | COUNT |
|
||
|
| :-: | :-: |
|
||
|
| 0 | 786228 |
|
||
|
| 1 | 4190464 |
|
||
|
| 2 | 8729454 |
|
||
|
| 3 | 9090662 |
|
||
|
| 4 | 4995328 |
|
||
|
| 5 | 1381224 |
|
||
|
| 6 | 157630 |
|
||
|
| 7 | 3508 |
|
||
|
|
||
|
|
||
|
**1 x 1块的数量**
|
||
|
|
||
|
将1 x 1的数量称为bing_num,结合jiang_num进行分类;
|
||
|
|
||
|
由于至少存在两个空格,于是有`0 ≤ bing_num ≤ (14 - jiang_num * 2)`
|
||
|
|
||
|
据此可分为64种情况:
|
||
|
|
||
|
[64种分类的元素数量](./jiang_bing_count.md)
|
||
|
|
||
|
|
||
|
**2 x 1与1 x 2块的方向**
|
||
|
|
||
|
进而,将2 x 1块的数量称为style_num,则1 x 2块的数量为(jiang_num - style_num),于是有`0 ≤ style_num ≤ jiang_num`
|
||
|
|
||
|
此时可分出203种情况:
|
||
|
|
||
|
[203种分类的元素数量](./style_count.md)
|
||
|
|
||
|
(注意不存在 *jiang_num-bing_num-style_num = 7-0-0* ,即七竖将的情况)
|
||
|
|
||
|
|
||
|
### 群
|
||
|
|
||
|
定义:群是有限个不同布局的集合,该集合中全部布局都可以由其中任一布局经过有限次移动得到;
|
||
|
|
||
|
性质1:任意一个布局无论如何移动,其结果仍在该群内;
|
||
|
|
||
|
性质2:只需群中任意一个布局,即可复原出群中的所有元素;
|
||
|
|
||
|
性质3:群是封闭的,群中所有元素无序且互异,同时构成一个关系网;
|
||
|
|
||
|
统计:29334498种布局可拆分出25422个群,其中元素数量存在两极分化现象;一般情况下,布局的空格增加,其所在群的数量会急剧上升;
|
||
|
|
||
|
[群的数量统计](./group_num.md)
|
||
|
|
||
|
|
||
|
### 按群继续分类
|
||
|
|
||
|
对于一个特定的 *jiang_num-bing_num-style_num* 分组,可拆分出n个群;将分出的群按元素数量从大到小排列,若存在元素数量相同的群,则取其中的最小元素排序;对这些群进行编号得0 ~ (n - 1) 共n个群,编号记为group_num;
|
||
|
|
||
|
因而对于某一群,存在一个唯一编号 *jiang_num-bing_num-style_num-group_num* ;由于群中的元素个数是确定的,将其中的元素按编码从小到大排列,其中的元素可得唯一编号group_index;
|
||
|
|
||
|
所以,对于任意布局,可得唯一编号 *jiang_num-bing_num-style_num-group_num-group_index*;
|
||
|
|
||
|
[群包含的元素数量统计](./group_size.md)
|
||
|
|
||
|
|
||
|
|
||
|
## 层级关系
|
||
|
|
||
|
### 基本定义
|
||
|
|
||
|
**最少步数**:当布局A和布局B处于同一个群时,从布局A移动到B所需最少的步数,该数值存在且是确定的;
|
||
|
|
||
|
性质:布局A到B的最少步数与布局B到A的最少步数必定相同;
|
||
|
|
||
|
**最短路径**:从布局A到布局B,所有满足最少步数的路径(最少路径可能不止一条);
|
||
|
|
||
|
**最远步数**:布局A到它所在群中任一布局均存在一最少步数,其中最大的最少步数称为最远步数;
|
||
|
|
||
|
**最远布局**:布局A到布局B的最少步数为最远步数时,称布局B为布局A的最远布局(一般情况下不止一个);
|
||
|
|
||
|
(标准华容道中不存在最远布局退化的情况,即最远步数至少为1)
|
||
|
|
||
|
**最少步解**:布局A所在群中存在一布局S,满足2 x 2方块在棋盘的最下方中间(即2 x 2块所在位置编号为13,亦或编码以D开头),记A到S的最少步数为n,此时不存在其他任何满足以上条件的S‘使得最少步数小于n,则称S为布局A的最少步解,n为最少步解的步数(亦简称为最少步);
|
||
|
|
||
|
**解**:布局A所在群中存在一布局S满足2 x 2方块在棋盘的最下方中间,且有A到S的任意最短路径中均不存在符合2 x 2方块在棋盘的最下方中间的布局,此时称S为布局A的解;
|
||
|
|
||
|
性质:布局的解可能是空集;最少步解属于解的子集(特定条件下两者可以相同);
|
||
|
|
||
|
|
||
|
### 层模型
|
||
|
|
||
|
表述:存在一起始布局A,从它开始衍生出有限个布局,每个布局抽象为一个节点,同时称A为根节点;由于任一由A衍生出布局到根节点存在一个确定的最少步数,将其称之为到根节点的距离;将所有距离相同的布局称为一个层,层内元素无序且互异,根节点所在层称为第0层,之后依次排列可得有限个层;
|
||
|
|
||
|
记排列的最后一层为第n层,则共有n + 1个层(包括第0层);
|
||
|
|
||
|
性质1:所有层中的元素集合即为根节点所在的群;
|
||
|
|
||
|
性质2:某一节点所在层数为其到根节点的最少步数;
|
||
|
|
||
|
性质3:若最后一层为第n层,则最远步数为n,且第n层的所有元素均为最远布局;
|
||
|
|
||
|
|
||
|
### 网模型
|
||
|
|
||
|
未完待续...
|