hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 1271|回复: 9

跳蚱蜢

[复制链接]

557

主题

557

帖子

1898

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1898
发表于 2023-10-2 16:22:01 | 显示全部楼层 |阅读模式
题目如图。除了用BFS求解,还有没有其他数学分析方法?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

195

帖子

38

积分

新手上路

Rank: 1

积分
38
发表于 2023-10-2 16:22:55 | 显示全部楼层
根据对称性,初步感觉先以最少步数达到6、5、4、3,此时上半圆就固定不变,后续就以最少步数调整下半圆,最终达到目标状态。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

194

帖子

171

积分

关内侯

Rank: 2

积分
171
发表于 2023-10-2 16:23:35 | 显示全部楼层
最后状态记为{2,1,7,8,0}, 要到达{7,8,0,1,2}, 计算搜索需要11步。
{{2, 1, 7, 8, 0}, {2, 1, 7, 0, 8}, {2, 1, 0, 7, 8}, {2, 0, 1, 7, 8}, {2, 7, 1, 0, 8}, {2, 7, 1, 8, 0}, {2, 7, 0, 8, 1}, {0, 7, 2, 8, 1}, {7, 0, 2, 8, 1}, {7, 8, 2, 0, 1}, {7, 8, 2, 1, 0}, {7, 8, 0, 1, 2}}
计算搜索,从{3,4,5,6,0}到{6,5,4,3,0}确实需要上图所示的10步。

所以,现在得到了最少步数的一个上界:22步。
回复

使用道具 举报

0

主题

172

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:23:45 | 显示全部楼层
但是,网上用BFS求的结果是20次(没有具体过程)。除非6、5、4、3还有更少步数达到。
回复

使用道具 举报

0

主题

195

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:24:37 | 显示全部楼层
的确是20,有444种不同的解法
比如:
{ 0 1 2 3 4 5 6 7 8 }=>
{ 7 1 2 3 4 5 6 0 8 }=>
{ 7 1 2 3 4 0 6 5 8 }=>
{ 7 1 2 3 4 6 0 5 8 }=>
{ 7 1 2 3 0 6 4 5 8 }=>
{ 7 1 0 3 2 6 4 5 8 }=>
{ 0 1 7 3 2 6 4 5 8 }=>
{ 1 0 7 3 2 6 4 5 8 }=>
{ 1 8 7 3 2 6 4 5 0 }=>
{ 1 8 7 3 2 6 0 5 4 }=>
{ 1 8 7 3 0 6 2 5 4 }=>
{ 1 8 7 0 3 6 2 5 4 }=>
{ 1 8 7 6 3 0 2 5 4 }=>
{ 1 8 7 6 3 5 2 0 4 }=>
{ 1 8 7 6 3 5 2 4 0 }=>
{ 1 8 7 6 3 5 0 4 2 }=>
{ 1 8 7 6 0 5 3 4 2 }=>
{ 1 8 7 6 5 0 3 4 2 }=>
{ 1 8 7 6 5 4 3 0 2 }=>
{ 1 8 7 6 5 4 3 2 0 }=>
{ 0 8 7 6 5 4 3 2 1 }
另外计算结果表明最多20步可以到达任意状态。
回复

使用道具 举报

0

主题

185

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:25:35 | 显示全部楼层
魔方数?
回复

使用道具 举报

0

主题

178

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:26:02 | 显示全部楼层
但是,改变一下策略,搜索到了更少步数的路径。
在2#的第1步到达第2图之后,保持{1,7,8}不动,将{2,3,4,5,6,0}调序为{0,6,5,4,3,2},搜索到最短路径为15步:
{{2, 3, 4, 5, 6, 0},
{2, 3, 4, 5, 0, 6},
{2, 3, 0, 5, 4, 6},
{0, 3, 2, 5, 4, 6},
{3, 0, 2, 5, 4, 6},
{3, 5, 2, 0, 4, 6},
{3, 5, 2, 6, 4, 0},
{3, 5, 2, 6, 0, 4},
{3, 5, 0, 6, 2, 4},
{0, 5, 3, 6, 2, 4},
{5, 0, 3, 6, 2, 4},
{5, 6, 3, 0, 2, 4},
{5, 6, 3, 4, 2, 0},
{5, 6, 3, 4, 0, 2},
{5, 6, 0, 4, 3, 2},
{0, 6, 5, 4, 3, 2}}
剩下部分,保持{2,3,4,5,6}不动,将{0,1,7,8}调序为{7,8,0,1},搜索最短路径为4步:
{{0, 1, 7, 8},
{7, 1, 0, 8},
{7, 0, 1, 8},
{7, 8, 1, 0},
{7, 8, 0, 1}}
最后,合起来为1+15+4=20步。
回复

使用道具 举报

0

主题

171

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2023-10-2 16:26:15 | 显示全部楼层
貌似 M12 的 FindShortestPath[] 函数只给找一条路径。

上面的策略虽然达到20步了,但不足以证明最短。然而不分区段地搜索,我的程序怕是不行。
回复

使用道具 举报

0

主题

189

帖子

163

积分

关内侯

Rank: 2

积分
163
发表于 2023-10-2 16:26:54 | 显示全部楼层
若是将8增加到20呢?BFS还能跑动吗?有没有类似魔方公式,大大减少步数?
回复

使用道具 举报

0

主题

179

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-2 16:26:59 | 显示全部楼层
蚱蜢只数:2,3,4,5, 6,  7, 8
跳跃次数:3,3,6,6,11,15,20
9,10,...,再来几个?

我们对空盘子的移动作个记录, 形成状态关联图(每个状态当一个点)
2只蚱蜢时,一共3!=6个状态,空盘子的移动有2个变换,故关联图为一个六边形。这是基本圈。
3只蚱蜢时,一共4!=24个状态,空盘子的移动有3个变换:
A:前进1步
B:后退1步
C:前进2步(后退2步)
开环跳跃的关联图为一个六棱柱,2度点和3度点各12个。
闭环跳跃的关联图在六棱柱的基础上2度变3度点,多了6条边,已不是平面图了。
闭环关联图显然可以嵌入到一个轮胎面上,要是能画出来就有点意思了。
开环关联图
闭环关联图


4只蚱蜢时,一共5!=120个状态,空盘子的移动有4个变换:
A:前进1步
B:后退1步
C:前进2步
D:后退2步
关联图就很复杂,不便展示了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-11-22 15:52 , Processed in 0.064311 second(s), 23 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

快速回复 返回顶部 返回列表