关于“每个角块有24种状态”……
魔方吧
全部回复
仅看楼主
level 14
乌木598 楼主
昨天下午看到有个帖子,不久被删了,没有记下作者是哪位。
那帖子作者说要编程解三阶魔方,说要不用公式……
还说每个角块有24种状态(意思是可以有8个位置,每个位置上有3种朝向)……
由于帖子没了,我无法回复,只好这里说说。
关于那位作者说的“每个角块有24种状态”,我要提醒的是,并非每个角块都有24态。
组装角块时,第一个角块有24种态,这是对的,但是,第二个角块只有7×3=21种态了,因为总有一个位置被第一个角块占据了,第二角块只有7个位置可用。
同理,第三角块只有6×3=18态,第四角块只有15态,以下依次为12态,9态,6态和3态。
也就是,组装角块时,8个角块的态数可以有 8!× 3^8 。
对于棱块,类似地,组装态数可以有 12!× 2^12。
然而,一个
正确的
三阶魔方(即可复原的三阶魔方),总态数并非 ( 8!× 3^8 )× ( 12!× 2^12 ) ,
而是 ( 8!× 3^8 )× ( 12!× 2^12 ) /(3×2×2)。
也就是只有1/12的组装态是正确态。
原因是,三阶魔方
不可能单单翻转一个角块;
不可能单单翻转一个棱块;
不可能单单交换两个角块,也不可能单单交换两个棱块。
这三条,应该是那帖子作者要编写的解三阶魔方程序的第一步——检验待解的三阶状态是否有解——的判断依据。只要有一条,就可以停止执行程序,并马上给出答案:无解。
2018年11月15日 00点11分 1
level 14
膜拜
2018年11月15日 01点11分 2
level 12

2018年11月15日 01点11分 3
level 13
魔方圈的学术研究者
2018年11月15日 01点11分 4
level 13
膜拜
2018年11月15日 01点11分 5
level 11
吃瓜看戏[滑稽]
2018年11月15日 01点11分 6
level 13
咳咳,曾经还想用魔方解决数学问题[滑稽]
2018年11月15日 01点11分 7
level 14
3*8=24[滑稽]
2018年11月15日 02点11分 8
level 12
膜拜
2018年11月15日 02点11分 9
level 9
dd
2018年11月15日 02点11分 10
level 13
我没看到上下文。如果是为了计算机建模,而不是算状态数,用0到23的整数表示每个角块的状态其实没什么问题。虽然第二个角块只有21种情况,但如果只存0到20,那么任何对第二个角块的处理都需要进一步根据第一个角块来推算,效率上反而会低一些。
2018年11月15日 03点11分 11
嗯。那帖子没有细说,仅仅说要编程解三阶魔方,还说要不用公式解,再有就是说了一句“每个角块有24种状态”。我正要回复,帖子不存在了。我主要是想对他说一下,对一个待解状态,应该先判断一下是正确态还是错误态。我这样想法对吧?
2018年11月15日 03点11分
@乌木598 那当然,我的程序里第一步也是先判断是否能解。具体实现的时候其实会比你说的麻烦一些。比如首先要判断是不是每个颜色出现了9次,然后检查中心块是不是6个不同的颜色,再根据中心块,确定各个角块和棱块的位置、方向,检查是不是12个棱和8个角块都出现了,最后才是检查色向和和奇偶置换
2018年11月15日 03点11分
@乌木598 在这过程中,程序不能轻易假设“8个角块、12个棱块互不相同”,只有做完了大部分检查以后才能这么做假设
2018年11月15日 04点11分
@乌木598 (事实上如果想进一步利用对称性,需要实现镜象状态的话,为了处理方便,角块可以有48种情况,包括8位置,3色向,以及镜象与否)
2018年11月15日 04点11分
level 12
乌木大神具体做什么工作呀![大拇指][大拇指][大拇指]
2018年11月15日 03点11分 12
退休大学教授
2018年11月15日 08点11分
我不会编程什么的,所以只能肤浅地议论。
2018年11月15日 04点11分
level 12
wow乌木[真棒]
2018年11月15日 03点11分 13
level 11
顶乌木老师
2018年11月15日 04点11分 14
level 14
d乌木老师,学编程的大学狗来围观
2018年11月15日 04点11分 15
1 2 尾页