首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >相位滑动拼图随机排序问题

相位滑动拼图随机排序问题
EN

Stack Overflow用户
提问于 2018-02-04 10:43:58
回答 1查看 108关注 0票数 0

我使用的是相位滑动拼图算法,但我注意到随机排序有时会对无法解决的拼图进行排序。

下面有人解释说

Difficult to solve the phaser sliding puzzle as some parts of the original image is missing

但我不明白5,3,4,2,6,1,8,7,9是怎么

5-3、5-4、5-2、5-1、3-2 3-1、4-2 4-1、2-1、6-1、8-7

我注意到,如果我有这个组合,3x3就是8,6,0,2,3,5,4,7,1。

EN

回答 1

Stack Overflow用户

发布于 2018-02-06 20:32:56

又是我;)我指的是较高值的瓦片在较低值瓦片之前(在数组中;在左边)出现的次数。因此,计算所有在较大数字之前出现较小数字的配对。

但是,为了使该算法有效,重要的是根据拼图的目标解决方案来计算间隙瓦片(空瓦片)。因此,如果间隙/孔瓷砖应该在末端(右下角),那么它应该是最大的数字。我怀疑您对这个空磁贴使用了错误的编号,您是否使用了0而不是9?这取决于目标布局是什么。

代码语言:javascript
运行
复制
Goal layout:
Correct   Incorrect
0 1 2     1 2 3
3 4 5     4 5 6
6 7 8     7 8 0

如果空的瓷砖必须在最后才能解开谜题,那么你应该将它算作最高数字的瓷砖,例如9。从你的例子中,我将假设0是必须放在末尾的瓦片,所以是数组中的最后一个位置。那么你的例子应该是这样的:

代码语言:javascript
运行
复制
array = [8,6,9,2,3,5,4,7,1]

Count all pairs=
1: 8 is before 6
2: 8 is before 2
3: 8 is before 3
4: 8 is before 5
5: 8 is before 4
6: 8 is before 7
7: 8 is before 1
8: 6 is before 2
9: 6 is before 3
10: 6 is before 5
11: 6 is before 4
12: 6 is before 1
13: 9 is before 2
14: 9 is before 3
15: 9 is before 5
16: 9 is before 4
17: 9 is before 7
18: 9 is before 1
19: 2 is before 1
20: 3 is before 1
21: 5 is before 4
22: 5 is before 1
23: 4 is before 1
24: 7 is before 1

所以总共需要24次反演,24次是均匀的,所以它是可解的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48604171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档