魔方吧·中文魔方俱乐部

 找回密码
 注册
搜索
热搜: 魔方
楼主: haohmaru
打印 上一主题 下一主题

【原创】东方说:列出2阶全部态只需要几十MB! [复制链接]

透魔

有空了学学4D二阶

Rank: 6Rank: 6

积分
5924
帖子
3936
精华
0
UID
1290
兴趣爱好
结构
理论

魔方破解达人 八年元老

11#
发表于 2009-11-5 23:30:19 |只看该作者
记得以前G老师发过一个程序的,可以列出所有的最远态。

隐约记得是11或者12步吧~

使用道具 举报

Rank: 2

积分
315
帖子
256
精华
0
UID
39709
性别
保密
12#
发表于 2009-11-6 00:34:54 |只看该作者
不太明白你想做什么,是想用一种格式存储二阶魔方的所有状态,然后通过一个程序来读取这种格式的数据,最终列出所有状态吗?
这样的话,存储可以不需要任何状态,只要写个程序把所有状态列举出来就行了啊。

原帖由 haohmaru 于 2009-11-5 17:06 发表
考虑这些的起因是想列出二阶全部的态
那就必然会用到计算机
用程序计算的话肯定要给二阶的状态编码
包括状态编码和转动编码
这样不但方便计算、储存,而且便于校验重复态和统计数据

二阶没有中心和棱,只有8个 ...

使用道具 举报

银魔

【東方】

Rank: 7Rank: 7Rank: 7

积分
3076
帖子
1699
精华
5
UID
13085
性别
WCA ID
2007FUBO01
兴趣爱好
其它

八年元老

13#
发表于 2009-11-6 08:51:08 |只看该作者
原帖由 conwood 于 2009-11-6 00:34 发表
不太明白你想做什么,是想用一种格式存储二阶魔方的所有状态,然后通过一个程序来读取这种格式的数据,最终列出所有状态吗?
这样的话,存储可以不需要任何状态,只要写个程序把所有状态列举出来就行了啊。

计算机只认识两个数:0和1

使用道具 举报

Rank: 8Rank: 8

积分
4825
帖子
2795
精华
7
UID
383
性别

魔方理论探索者 八年元老

14#
发表于 2009-11-6 10:10:08 |只看该作者
对二阶来说,应说明每一个块的身份,位置,色向:

8个块的位置最少 要:3个位
8个块的身份最少 要:3个位
每个块的色向最少要:2个位

因此,一个二阶状态要64个位,8个字节

所有状态所须容量=8!*3^7/24*8=29293280字节=29.29MB

如果要用色向来标志块的身份则六个颜色须要三个位,每个块三个色,则需要9个位,则每个状态须要:96个位,12字节,约是前者的1.5倍

使用道具 举报

Rank: 8Rank: 8

积分
4825
帖子
2795
精华
7
UID
383
性别

魔方理论探索者 八年元老

15#
发表于 2009-11-6 10:20:12 |只看该作者
对于3674160个二阶状态,编个程序穷举也要不了一分钟,这种事连小学生都会做,何须ggglgq费力

使用道具 举报

红魔

薯乐

Rank: 4

积分
2145
帖子
1853
精华
0
UID
65515
性别

十二年元老 十年元老 十四年元老

16#
发表于 2009-11-6 10:29:28 |只看该作者
太深奥了…………看都看不懂

使用道具 举报

Rank: 7Rank: 7Rank: 7

积分
3923
帖子
2556
精华
6
UID
15558
性别
保密
WCA ID
2008CHEN27
兴趣爱好
理论

魔方理论探索者 国家(地区)纪录(NR) 十年元老

17#
发表于 2009-11-6 14:10:44 |只看该作者
表示每个二阶魔方的状态至少需要22bit,总计需要:22*3674160bit=10103940byte<=10M,理由不解释。具体实现的话,如果要求运算速度不慢多少,我感觉以我现在的能力我只能做到每个状态存30bit,总计约13.14M。

使用道具 举报

Rank: 3Rank: 3

积分
663
帖子
544
精华
0
UID
35262
性别
18#
发表于 2009-11-6 16:56:02 |只看该作者

回复 14# 的帖子

對於pengw版主的這句 : "所有状态所须容量=8!*3^7/24*8=29293280字节=29.29MB",小弟想補充一點,
就是1Mb=1024KB,1KB=1024byte=1024 字節

使用道具 举报

Rank: 8Rank: 8

积分
4825
帖子
2795
精华
7
UID
383
性别

魔方理论探索者 八年元老

19#
发表于 2009-11-6 20:11:01 |只看该作者
谢谢楼上兄弟的精细,兄弟可能不了解IT这一行的习惯,行内就习惯这种快捷的近拟计算,不过,你的一个二阶状态用4.5字节就表达了,你能不能举一个用位来表示的实例,我觉得好像不可能,4.5个字节即将36个位,分给八个块,都分不匀,你认为二阶每个块在状态表达不对等?就算你说的5个字节,则5位/块,位置至少了要占三位,余下二位只够表示色向三个状态(如果你要用6个色的编码,位数差得更远),已经没有其它位表示块的身份,也就是说,你的5节字只能说明每个位置是什么色向,根本无法区分块的身份,难到你表达的状态不关心置换?希望看到一个完整的40位状态实例。

[ 本帖最后由 pengw 于 2009-11-6 20:42 编辑 ]

使用道具 举报

Rank: 3Rank: 3

积分
663
帖子
544
精华
0
UID
35262
性别
20#
发表于 2009-11-6 23:28:55 |只看该作者
IT需要的就只是近似值吧? 也對...
不過我們數學的就要求高精度....

對於樓主的見解我還未能有一套完整的思路可以表示贊同或反對。
首先嘛,假如要將整個2階魔方的狀態複製、轉譯成資料檔,
共需6*4=24 byte...(還是bit....?),總共需56.06mb來儲存所有狀態。
其中有些24byte這個數字所代表的是6面4格不同的顏色,
但可以被簡化。
二階魔方的特性為:
1. 每兩角塊可作任意交換
2. 單一角塊不能翻色
所以要簡化記憶,相信分開色向與位置來編碼比較好,
而對於色向與位置,二階對應的特色為(2) 及 (1)。
其中可知,只有色向記憶可簡化。

我們現在在談二階所有狀態需要多少容量,
準確地說,最少需要的容量上界是28.03mb。
而其下界就是本貼所討論的。
但可以肯定的是,就如標題所說,列出2階全部態就只需幾十MB(<30)

使用道具 举报

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

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

GMT+8, 2024-4-27 01:20

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部