龙空技术网

魔方中的数学知识

魔方届的心理咨询师 816

前言:

眼前姐妹们对“c语言魔方”大约比较注重,小伙伴们都需要分析一些“c语言魔方”的相关知识。那么小编也在网摘上搜集了一些有关“c语言魔方””的相关知识,希望同学们能喜欢,朋友们快快来学习一下吧!

风靡全球的魔方也蕴藏着数学,那么你对魔方中的数学知识了解多少呢?以下是由学习啦小编整理关于魔方中的数学知识的内容,希望大家喜欢!

  魔方中的数学知识

  通常所说的魔方,其国际标准称呼是鲁比克魔方,由匈牙利布达佩斯应用艺术学院的建筑学教授鲁比克—艾尔内于1974年发明! 关于鲁比克发明魔方的初衷,流传甚广的一个说法是为了发明一种教具,以帮助学生理解、认识立体空间的构造。

  鲁比克一开始并没有意识到他发明了一个极其具有挑战性的益智玩具,当他第一次将自己发明的魔方打乱,才发现了这个后来被无数人反复证明的事实:原始状态的魔方一旦被打乱,想要将其复原是一件极其困难的事情。

  1980年初,一家玩具公司将魔方带至在巴黎、伦敦和美国召开的国际玩具博览会展出。此后不久,随着魔方制造技术的改进,魔方迅速风靡全球。到1982年,短短的3年间魔方在全球就售出了200多万只,而到今天,全世界售出了数亿只魔方,魔方已经成为全球最为流行的玩具之一。

  魔方核心是三个相互垂直的轴,保证魔方的顺利转动。外观上,由26个小正方体组成一个正方体。其中包括与中心轴相连的中心方块6个,相对位置固定不动,仅一面涂有颜色;棱块12个,两面有颜色;角块8个,三面有色。复原状态下,魔方每面都涂有相同的颜色,六个面的颜色各不相同。魔方每个面都可以自由转动,从而打乱魔方,形成变化多端的组合。

  魔方组合的数量可以按照如下方式计算:8个角块可以互换位置,存在8!种组合(8=8*7*6*5*4*3*2*1),又可以翻转,每个角块可以具有’种空间位置,但因为不能单独翻转一个角块,需要除以3,总共存在8!* 37种组合;12个棱块可以互换位置,得到12!,又可以翻转,得到212,但因为不能单独翻转一个棱块,也不能单独交换任意两个棱块的位置,需要分别除以2,得到12!*212/(2*2)种组合。综上,得到魔方的所有可能组合数为:8!*37*12!*212/(2*2)=43,252,003,274,489,856,000≈4.33*1019

  这是一个天文数字,如果某位玩家想要尝试所有的组合,哪怕不吃不喝不睡,每秒钟转出十种不同的组合,也要花上千亿年的时间才能如愿,这约是当前宇宙年龄的10倍。

  实际上,如果将魔方拆开随意组合,其组合情况将多达5.19*1020种。也就是说,如果拆散魔方,再随意安装,有11/12的几率无法恢复原状。所以如果魔方被拆散,安装时应按复原状态安装,否则极可能会无法复原。

  魔方复原的另一个困难来自于我们只能按特定的方式复原,即反复旋转某一面,一面上的9个方块必须整体参与运动,这样我们在复原过程中总是会打乱已经复原的部分,这种限制大大加大了复原魔方的难度。

  很显然,任意组合的魔方都可以在有限步骤内复原,那么,问题来了,是否存在复原任意组合魔方所需的最少转动次数N?也即,如果至多进行N次转动便可以将任意魔方复原,这个N具体为多少?这个数字N被称为上帝数字,从魔方刚刚流行的1982年便被提了出来。

  当然,对任意的魔方,寻找最少的转动步骤是极其困难的,需要针对每种情况寻找特定的步骤。一般的,还是利用本文前面所述的复原办法,只需学习记忆少量的套路或公式,如CFOP法,需要学习记忆119个公式,平均只需55次转动便可复原魔方。

  数学是一门充满魅力的学科,在它复杂表面的背后,隐藏着大量极其简单、漂亮的规律。有趣的游戏、手头的玩具,往往在简单中蕴藏着深刻的数学规律。而复杂的数学经常以极其简单、漂亮的形式展现。

  魔方还原方法以及数学原理

  普通玩法,也就是各种爱好者啦,他们满足于复原一个魔方,而不作更高的要求。

  竞速玩法,为了追求更高的速度的玩法,这些复原方法是万能方法,而且他们运用的是复原方法中比较快的一种。我在这里写几种复原方法:

  1. 层进法(入门方法):将魔方的一层一层进行还原,每一层进行还原,最后复原整个魔方,这种方法如果有一个好魔方1min之内可以轻松完成。

  2. CFOP法(主流方法):分为4步完成,C=cross(底层十字)F=first 2 layers(前两层)O=orient last layer(顶层定位)P=position last layer(顶层定向)。这个方法可以在30S内轻松完成。

  这些方法大都和CFOP方法属于一个系统的。一般只是稍微的改变一下。

  时间上的节省是用记忆力换得的,层进法只需要记忆不过20种情况,不到10个公式即可,而CFOP法则需要记忆上百种情况,及其所对应公式。所以为了比别人快,记忆很多东西是不可避免的。层进法需要大约120步,而CFOP法需要大约60步。关于群论上理论证明,复原任意一个魔方,只需要最多26步(这个界不是紧的),那么我们可以设想,如果一个人大脑有足够的容量,记忆足够多的公式,那最多26步就可以完成了,肯定是一个创造吉尼斯纪录的成绩。不过,我觉得,比速度。。至少对于我来说,记忆不了那么多吧。所以这种玩法其实是记忆公式。

  盲拧:蒙着眼睛把一个魔方复原,是不是一件很神奇的事情呢?如果按照CFOP法,这可不可能呢?答案是否定的,从盲拧和正常拧的世界纪录就可以看出它们用的方法不是一种,至今没有一个人成为这样的记忆奇才。因为百余种情况不是闹着玩的,而且每完成一步以后需要观察再进行下一步,蒙着眼睛是做不到的。这就需要一个神奇的公式 三轮换公式,通过这个公式,不仅仅使我们变换的块数最少,而且还减小了它们之间的相互影响,这也使盲拧变成了一种可能。只需要记住4个公式就可以完成。当然同时,更让人头疼的可能是记住20块的位置朝向了。所以说,盲拧与其说是神奇,倒不如说是记忆位置。这个在CCTV科学探索中播出过。

  最小步数复原:这个很NB。。应该是通过记公式算公式吧,我不太了解原理了。就把记录写在这里。。。目前的世界纪录是28步还原,耗时2个半小时。

  还有单拧(单手拧)脚拧。。。

  数学版

  曾经有个人发表了一个一篇关于三轮换的文章,结果。。有人钦佩,有人讽刺,只有极少数的人和作者进行了讨论。魔友大部分只是记住公式,其实也不用知道原理。他们也许是对的,不过,我在这里说一句,我觉得中国对于数学至少是不重视的,数学只是作为一种升学手段应用于应试教育中。尤其是奥数,其实数学当中哪里有那么多的技巧??奥数中绝大部分的题目来源于同年龄段更高等的数学之中。很多人都说奥数题又偏又难,为什么,因为他们没有学过相关知识而去做题,不习惯那些思考方式,怎么会不觉得难?为什么陶哲轩12岁拿到奥数金牌并且成为数学大师而中国本土出了那么多奥数金牌却都平平庸庸?因为陶哲轩不是做题做出来的,他在12岁前就把微积分学完了而且学得很好。再者中国为什么那么多人痛恨数学?做题做的。数学是很直观的东西,每一个概念都对应一个直观,从生活中抽象出来,只要用心看就有收获。

  符号:u=upper, f=front, b=back,魔方站论坛, r=right, d=down, l=left

  我们将魔方面对右面(r面),看到右面一层如下左图,转动Y3后如右图,就可得出各块的变动。

  类似分析Z3,

  二者复合为

  其中对角方块,右上角的正号表示此块顺时针转2π/3 ,负号表示反时针转。对棱方块表示有一个方向的翻转。 上面分析说明,经过Y3,Z3两个转动,上右前角块回到原地,但顺时针转了2π/3 。还有5个角方块做了一个轮换,各反时针转了2π/3 ,或说顺时针转了4π/3 。7个棱方块做了一个轮换。

  可以看出这是一个置换群,它是全部状态的一个子群,但它不是一个普通的20阶群,因为其棱块角块的朝向问题,魔方的群结构比一般的20阶群更复杂。而且它有另一个特点 更为特殊。

  特殊之处在于两个三轮换公式(分别是对棱块,角块),这个公式我首先是直观认识到的,是我在学习层进法中众多公式的一个,它的意义在于我们可以把3个棱块(角块)互换,相当于(123)->(231),而且在确定位置的情况下,这3块的朝向是确定的。我本来没有打算去证明这个结论,因为我们线性代数老师说过:\"如果你不信这件事情的话,亲自去做做不就行了。

  我们证明对于棱块的三轮换公式是存在的。设想有两个轮换t1, t2, 它们分别代表一个对于魔方的置换。这两个轮换有一个特点,他们变换了一个相同的棱块记为a,t1中a1->a,魔方高级玩法公式,t2中b1->a,下面我们做一个共轭变换t=(t1')(t2)(t1),t是什么呢?t是一个近似t2的变换,只不过t1的a1变到t2的\"轨道\"里去了,而a还在原来的位置,下面我们做(t2')(t),就有a1,a,b1互换位置。

  我们有图解如下:

  其实证明中有一个小小的问题,因为只有8个角块,所以说我们要找两个共用一个角块的四轮换才可以,我们可以利用上述方法继续找,方法不详述了。

  推论:我们能找到任意三轮换公式(即任何3个棱块(角块)都存在三轮换)。

  对棱块进行说明,记6个棱块,123456,首先我们能找到两个三轮换(123),(345),我们作一个共轭变换(345)(123)(345)'=(124),这样我们就从一个三轮换推到了另一个三轮换。我们再找一个关于6的棱块,把(124)共轭成(164),这样,164三个棱块都是任选的了,证毕。

  三轮换公式完全说明了魔方中角块和边块是互不影响的!也就是我们可以把魔方的20块拆成12个角块和8个边块分别进行研究。下面我有些?。。我应该说明二轮换公式是不存在的,不过我没有证明出来,但它确实是不存在的。也许哪位高人可以帮我。其实计算机搜索应该是可以解决的。。但一个纯数学的证明会更好些。

  下面讨论如果把一个魔方拆了之后再拼上,正确概率有多大?我们知道一个好的魔方和一个不好的魔方只是不在一个\"轨道\"里,但是他们变出的状态时一样多的,因为他们同构。所以说我们只需要算出魔方不同轨道个数即可。

  我们首先计算出随便拼出的魔方有多少种状态,这是可以由初等数学的排列组合解决的。

  12!*8!*2^12*3^8=519024039293878272000

  然后我们利用上面的结果,把角块和棱块分开考虑。对于棱块,全部正确是一种情况,如果我们把一块棱块朝向改变,其余都正确,是不可复原的。而这一个棱块可以在任意位置,它们都在一个轨道内(这个用任意三轮换公式可以证明)。还有一种是两个棱块调换位置,注意调换位置之后再改变朝向也是可以化到这种情况里的,而3个棱块及以上的调换,都可以用三轮换公式约简到2个棱块及以下的调换。所以对于棱块来说,只有3种情况。同样,由于角块多了一种朝向,所以是4种,那么,我们一共有3*4=12个轨道。

  在这12个轨道里,我们只有一个是正确的,所以我们随意拼上正确的概率为1/12。

  由此,我们可以计算魔方的状态数:12!*8!*2^12*3^8*1/12=43252003274489856000

是不是很吓人

  后记:

  其实我有更深的思考,魔方只是群论中的一个具体例子,但它已经如此繁复,有限群的研究不是那么简单的事情。而23步就一定能复原一个魔方给了计算机科学更大的挑战。如何搜索,能不能出现更新的技术都是小魔方能引入的大问题。实际上,把魔方用群的语言表示出来,最后找到复原解,是一个纯粹符号的计算,它只涉及到置换群的乘法,要找到复原魔法的最小步骤解,只需把分解成最少次乘法。研究这个搜索技术应该对研究置换群的运算是有很大好处的。

  将魔方符号化是有好处的,它直接允许我们用计算机来研究魔方。

  把魔方当作数学看,真的是一件很有趣的事情,也是学习群论的一种手段吧。

标签: #c语言魔方 #循环置换的乘法