魔方吧·中文魔方俱乐部

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

编了一个计算魔方的程序 [复制链接]

Rank: 2

积分
244
帖子
2
精华
0
UID
13
性别
跳转到指定楼层
1#
发表于 2004-3-13 08:47:07 |只看该作者 |正序浏览
编了一个计算魔方的程序
可以手工求解,将魔方拆散拼装,计算机搜索,自动求解。
系统需求:如果用计算机搜索功能,需128M以上内存,其它功能对计算机要求较低,相信目前大部分计算机都能满足。操作系统:在WIN98上测试通过,其它未测试。
★可以用程序中的“随机转动”的功能将魔方打乱,然后手工还原。
★可以将魔方拆散拼装,根据网上查找到的资料,如果任意地组装魔方,只有1/12的机会可以再通过转动来还原它。我想到一个简单的办法,可以立即排除5/6的无法还原的状态,但余下还有1/2的可能无法通过转动来还原。我的大致结论如下:仅考虑八个角上的角积木,仅有1/3可以还原;仅考虑十二条棱上的棱积木,仅有1/2可以还原,这两方面程序都可以判断出来,余下的是角和棱无法同时还原的,还没想出什么准则来排除。
★程序提供了自动搜索的功能,几经改进算法,目前可以做到在赛扬800计算机上在数分钟内计算10~14次旋转的魔方还原,如果内存>192M,可以计算12~14次旋转(同一方向的转动属一次,每多一次转动可能状态就多15倍)。大约相当于遍历了10的14次方种状态。不过由于魔方的状态太多,色彩组合理论上有2^12 * 3^8 /12 ~= 4.32 * 10^19 种,离能求解所有类型的魔方相差还太远。看来用程序搜索解法的方法还必须想想其它方法。
★程序提供了用口诀自动求解的功能,道理上可以求解所有可以通过转动来还原的魔方。如果有无法还原的,可能是因为:1、确实就无法还原,2、程序中有BUG。
使用方法:
拆散拼装,按“拼装”按钮,显示出两个魔方,上面的魔方是已还原的,点击要移动的小积木,在下面的图上点击要移动到的新位置。上图中用阴影表示已有新位置的小积木,下图中用灰色表示尚空缺的位置。
按“求解”按钮搜索还原步骤,按“Option”设计搜索选项。
按“用口诀求解”按钮用口诀自动求解。
求解的转动步骤用“查看结果”依次显示,或用“<<”“>>”单步显示。

程序中记录移动的方法,根据网上通常的表示方法,说明如下。魔方上有六个面,分别用首字母表示:
上面 Upper, or top face = U
下面 Down, or bottom face = D
左面 Left face = L
右面 Right face = R
前面 Front face = F
后面 Back face = B
旋转时,以右手转动该面来确定是顺时针还是逆时针。
旋转的方向表示如下:
逆时针旋转90度用该面的代表字母表示,如U表示上面逆时针旋转90度,U1表示同样的意思。
顺时针旋转90度(等同于顺时针旋转270度)用在该面的代表字母后加撇号或加3表示,如U'或U3表示上面顺时针旋转90度。
旋转180度用在该面的代表字母后加2表示,如U2表示上面旋转180度。
参考了 http://rubik.yeah.net , 感谢rubik提供了这么多资料。
谁要程序,我发给他。

Rank: 3Rank: 3

积分
681
帖子
589
精华
0
UID
31287
性别
保密
11#
发表于 2008-6-1 08:56:19 |只看该作者
源程序可以发上来吗?我需要

使用道具 举报

积分
2
帖子
2
精华
0
UID
28485
性别
保密
10#
发表于 2008-4-14 06:33:55 |只看该作者
kissss1987@163.com我也要源程序,谢谢啦

使用道具 举报

积分
1
帖子
1
精华
0
UID
23715
性别
9#
发表于 2008-3-2 13:27:43 |只看该作者
<P>师傅我是刚学会玩的,就是对不出来啊!给我发个魔方的程序吧,谢谢了</P>

使用道具 举报

Rank: 3Rank: 3

积分
637
帖子
79
精华
2
UID
81
性别
8#
发表于 2004-5-23 10:18:20 |只看该作者

鉴于昨天已有两位“魔方大帝”解出最少步,先将它们连接起来让大家欣赏!

还是再把HTML 的这段代码拷贝粘贴到论坛上吧!再请高手为我修改好图象!

<APPLET codebase=http://haiwu.nease.net/haiwu/mf/tan code=lrubik.class height=145 width=125 > <ARAM NAME="pos" VALUE="fffffffffbbbbbbbbbaaaaaaaaacccccccccdddddddddeeeeeeeee"> <ARAM NAME="move" VALUE="R1B3R3F3R1B1R3B3U3B3U1F1U3B1U1B1"> </APPLET>

上面的十六步变换被称为“循环变换”,之所以这样称它,是因为

不但 R1B3R3F3R1B1R3B3U3B3U1F1U3B1U1B1 实现了六面循环还原

而且 B3R3F3R1B1R3B3U3B3U1F1U3B1U1B1R1

R3F3R1B1R3B3U3B3U1F1U3B1U1B1R1B3

F3R1B1R3B3U3B3U1F1U3B1U1B1R1B3R3

......................................................

都能实现了六面循环还原,很有意思吧!!

[此贴子已经被cube_master于2004-11-12 0:26:55编辑过]

使用道具 举报

Rank: 3Rank: 3

积分
637
帖子
79
精华
2
UID
81
性别
7#
发表于 2004-5-22 18:37:05 |只看该作者
不知为何显示不出我所作的结果,还是把 HTML 的这段代码拷贝粘贴到论坛上 让高手为我解决吧!

<APPLET codebase=http://haiwu.nease.net/haiwu/mf/tan code=lrubik.class height=145 width=125 > <ARAM NAME="pos" VALUE="fffffffffbbbbbbbbbaaaaaaaaacccccccccdddddddddeeeeeeeee"> <ARAM NAME="move" VALUE="R1B3R3F3R1B1R3B3U3B3"> </APPLET>

现给出十步转动为: R1B3R3F3R1B1R3B3U3B3 它是由已还原的六面魔方开始转动的!

问题:不知各位高手能否在十步内将这个魔方还原?三天为限,三天后本人将给出答案!

计算机算出的结果也有效!就算人机大赛也行。看看谁将获得最少步冠军!快跟贴夺冠吧!

[em04][em02][em04]

[此贴子已经被cube_master于2004-11-12 0:25:26编辑过]

使用道具 举报

Rank: 2

积分
221
帖子
1
精华
0
UID
70
性别
6#
发表于 2004-5-21 20:08:38 |只看该作者

我也要

yxhokay@yaoo.com

谢谢

呵呵

使用道具 举报

Rank: 3Rank: 3

积分
637
帖子
79
精华
2
UID
81
性别
5#
发表于 2004-5-20 19:14:33 |只看该作者

使用道具 举报

Rank: 2

积分
241
帖子
1
精华
0
UID
23
性别
4#
发表于 2004-3-30 04:48:36 |只看该作者
可以给我一份吗?reinhardvl_lg7@163.com

使用道具 举报

Rank: 10Rank: 10Rank: 10

积分
25039
帖子
4868
精华
33
UID
3
性别
兴趣爱好
结构
3#
发表于 2004-3-29 02:26:37 |只看该作者

我收藏的4阶( 4×4×4 )魔方。

好啊,能否把源程序贴上?
-,'''╭⌒╮⌒╮.',''',,',.'',,','',.,,'
.╱◥██◣''o┈ 魔方吧 ┄o.'',,',.
︱田︱田田︱ '',,',.o┈ 欢迎您光临 ┄o
╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬

使用道具 举报

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

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

GMT+8, 2024-11-28 07:56

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部