魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
查看: 632571|回复: 4
打印 上一主题 下一主题

二阶魔方状态转移图与应用 2010.4.15更新 [复制链接]

Rank: 4

积分
1843
帖子
1468
精华
1
UID
79281
性别

四年元老

跳转到指定楼层
1#
发表于 2010-4-11 03:12:43 |显示全部楼层 |倒序浏览
首先建立了所有二阶魔方状态与集合{0,1,...,3674159}的一一对应从而实现了状态转移图的线性存储,达到快速访问的目的。

采用BFS,计算所有节点的距离(最少步还原的步数)。
状态转移图有很多用途,这里只实现了两种:
计算各距离下的的状态数(函数ana)最少步还原(函数solve)
时间关系,程序还有许多不足。
有错误请指出,谢谢。
Archive.zip (36.39 KB)

/**************************************************/
2010.4.15更新MiniCube.zip
代码进行了优化,占用内存减少。
第一次运行时将距离表写入磁盘,以后运行非常快。
添加180°转算两步的求解。
多重解,每个状态求出所有最少步解。
MiniCube.zip (9.28 KB)

[ 本帖最后由 yq_118 于 2010-4-15 09:34 编辑 ]

Archive.zip

36.39 KB, 下载次数: 51

MiniCube.zip

9.28 KB, 下载次数: 42

已有 1 人评分经验 收起 理由
noski + 15 加分鼓励~

总评分: 经验 + 15   查看全部评分

Rank: 4

积分
1843
帖子
1468
精华
1
UID
79281
性别

四年元老

2#
发表于 2010-4-11 03:15:24 |显示全部楼层
占楼备用......

使用道具 举报

Rank: 4

积分
1843
帖子
1468
精华
1
UID
79281
性别

四年元老

3#
发表于 2010-4-11 10:29:11 |显示全部楼层
原帖由 铯_猪哥恐鸣 于 2010-4-11 10:07 发表 那个,180度算两步的其实只要改一行,原来是尝试18种转动,现在把那行改成尝试12种90度转动即可。。。另外其实我寒假做了和楼主同样的事情,可以参考我那个二阶求解程序。。。
改一行不行,改几行还可以。
可以把图写入磁盘,以后就会快很多了。
可惜还缺一个GUI。

期待用循环变换的理论写的程序,不知道效率上有多大提高。

使用道具 举报

Rank: 4

积分
1843
帖子
1468
精华
1
UID
79281
性别

四年元老

4#
发表于 2010-4-11 11:00:28 |显示全部楼层
看来二阶魔方这种简单的东西没必要用“循环变换”,但要证明“循环变换”是正确的总要给点东西出来啊。

使用道具 举报

Rank: 4

积分
1843
帖子
1468
精华
1
UID
79281
性别

四年元老

5#
发表于 2010-4-15 02:21:38 |显示全部楼层
原帖由 aubell 于 2010-4-14 19:09 发表 你知道用了多少内存吗?粗略看了一下,初始化完成后144632k。 大概内存泄露了?还是本来就要这么多?已经很不错了,加油啊。

这个本来就要这么多,更新后的只有第一次运行需要怎么多,以后运行只用不到4M的内存。

使用道具 举报

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

Archiver|手机版|魔方吧·中文魔方俱乐部

GMT+8, 2024-5-13 16:18

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部