西西河

主题:【文摘】+【原创】 怎样迅速拼好魔方的六面(层先法) -- 玫瑰灰

共:💬31 🌺100 新:
分页树展主题 · 全看 下页
  • 家园 【文摘】+【原创】 怎样迅速拼好魔方的六面(层先法)

    这篇帖子的源起,还是好几天前看到完颜陈和尚的帖子链接出处,聊着聊着聊到魔方不好拼。

    本来其实是想借着Meissen魔方菜鸟教程(外链出处中的魔方还原文件夹点进去可以看到全文的图片版、pdf版等)直接说魔方的还原算法的。

    出身厦门大学的Meissen写的这套教材,是我在学魔方过程中对我帮助最大的一套教材。

    不过看起来这套教程还是有些繁杂,因为之前直接给人看,说还是看不懂。

    那——就开主题帖单说吧。

    在本贴中,大量借鉴了Meissen画的图和Meissen的原教程概念。

    所以,基本上算文摘可能更好一点?

    大概里面只有第一层的算法,算是我自己的原创了。

    笑,感觉我自己的这个法子比Meissen的来得更简便易行,最重要是会容易理解。

    魔方的还原方法有很多种。本文师从Meissen文,故仅拿最容易学会的层先法来下手。

    不过即使这样,这也会是个很庞大的系列贴。目录大致如下:

    一、一些关于魔方的基本概念链接出处

    二、算法摘要链接出处(其实这一章的内容,从后面的章节名也可以看出来了)

    三、魔方的基础旋转手法链接出处

    四、第一层的还原(1.顶层十字的棱块)链接出处

    五、第一层的还原(2.顶层四角的角块)

    六、第二层的还原

    七、第三层的还原(1.顶层十字)

    八、第三层的还原(2.对好十字)

    九、第三层的还原(3.四角归位)

    十、第三层的还原(4.四角对好)

    先列着目录在这,我慢慢写吧。

    元宝推荐:马鹿,
    • 家园 自解魔法机器人攻略

      http://www.diy-robots.com/?page_id=46

      • 家园 魔方机器人的视频

        [FLASH]http://player.youku.com/player.php/sid/XMTMyOTU5MDAw/v.swf[/FLASH]

        (用乐高积木搭起来的!)

        顺便推荐一个小软件

        魔方教研室

        点看全图

        外链图片需谨慎,可能会被源头改

        成功还原一个面^_^

    • 家园 【原创】第一层的还原(1.顶层十字-棱块)

      万丈高楼平地起,咱们算法的第一步就是把魔方的第一层给搭起来。

      按咱们之前在算法摘要里说的,这一步的最终目的,是让魔方呈现这么一个结构:

      点看全图

      外链图片需谨慎,可能会被源头改

      然后再把整个魔方掉个个放着,让柠檬黄这面被压在底下。

      (不好意思,只要不是引用Meissen原作中的图片,我自己画图的时候就会经常用到这种六面分解图。只好让大家努力习惯一下了)

      再次着重的提醒:在旋转魔方的时候,请务必保持六种颜色中心面的相对位置不变!

      除了在第一层拼完时需要把魔方整体转个圈以外,其他任何时候魔方的六个中心面的朝向都是永远不变的。

      ————————

      咱们已经知道魔方六个面里,正中心那个小方块的相对位置是永远不会变化的。

      那么,在拼第一层的时候(以柠檬黄这一面为例),其实就是找出这一面(3*3正方形)的沿边8个小柠檬黄片所在的小立方体各自在哪,然后把这些小立方体各自转到其正确的对应位置。

      注意这个正确的对应位置是由两个因素决定的:

      第一, 小立方体有柠檬黄的一面,且柠檬黄这一面得朝上;

      第二, 小立方体朝侧面的色片必须与侧面那个中间片的颜色一致

      只有这两条同时满足,才能说明这个小立方体放对了位置。

      这8个小立方体中有4个棱块和4个角块,我们第一层的还原也是分别就这两者进行说明的。

      ——————————

      (一)首层棱块的还原——架顶层十字

      棱块有两个面,角块有三个面——相对来说更容易定位的显然是只有两个面的棱块。

      于是咱们先看棱块的还原。

      棱块的还原目标:

      点看全图

      外链图片需谨慎,可能会被源头改

      可以看到,一个棱块被还原,意味着:

      它对上的面为柠檬黄;且它对侧面的色块与该侧面的中心色块一致。

      将一个棱块小立方体旋转到它应当在的位置,我们要做的事情,就是:

      1. 找到这个小立方体现在在魔方的哪个位置(初始值)

      2. 找到这个小立方体应该摆在那个位置(目标值)

      3. 通过适当的旋转,把它转到我们希望摆上去的位置。

      哈哈,这么说,有的人可能要问了,这不是跟打开冰箱-把大象放进去-关上冰箱一样么?

      那,我们还是举个实际的例子来看看吧。

      以柠檬黄-红这个棱块为例,咱们来试着还原一下它。

      注意一下,在旋转的时候,我们必须考虑原来已经转好的块的现场保护,别把已经转好的块又给转飞了。

      基于现场保护工作的难易程度,最坏情况下我们可以假设顶层的十字已经搭好了其它三个,就剩这最后一个棱块需要还原了。

      目标值好办,我们都说了要找这个棱块了,

      大家在期望目标的图里面肯定都能看到它最终需要放到的地方。

      那么再来看几种棱块初始可能待的位置(初始值)。

      咱分类来讲讲吧。

      点看全图

      外链图片需谨慎,可能会被源头改

      这个组合图片里面,左上角是我们希望把柠檬黄-红棱块转到的位置。

      右上角则是此时的现场环境中可能出现的最坏情况,所有其它三个棱块都已经转到位,旋转过程中需要保护它们不受影响。

      那么,下方的四种情况,就基本上是我们在旋转棱块中最经常看到的四类情况了。

      a)类是最容易复原的,前面那一个单面逆时针旋转90°(也就是手法公式中的F'),既不影响其它三个棱块,也不影响魔方的六个中心面相对位置。

      b)类是比较容易出现的一种,操作方法其实跟a)类是一样的,只不过这回是旋转180°(也就是手法公式中的F2)。同样不会影响其它面。

      之所以把这一类单独提出来说,因为只要棱块中的柠檬黄的一面出现在底面上,就可以通过旋转底面(视情况使用手法公式中的D,D'和D2)把它转化为这一类问题来解决。

      c)类和d)类稍微麻烦一点。

      咱们先说c)类型的解决办法。

      反正只要一个F2操作,d)类型就能转化为c)类型。

      解决掉c类型的操作,大致如下图所示。

      点看全图

      外链图片需谨慎,可能会被源头改

      咱看得到c类型的特点,初始位置就在目标值的下面。

      按说把中间这一竖层直接往上一转就到位置了——但是直接一转,那原本顶层十字里的中心片跟已经拼好的柠檬黄-橙棱块可也就跟着飞了。

      于是我们想的法子就是:

      先把棱块让到旁边的面去(底面横向转)

      再让中间这一竖层转下来接它(中间层转)

      然后把棱块转回中间来(底面横向反转)

      最后,中间这一竖层转回去,就衣锦还乡的把咱们希望的柠檬黄-红棱块给带上去了。

      同b)一样,c)类型不仅解决这种初始值在目标值正下方的,还可以通过底层的旋转(视情况使用手法公式中的D,D'和D2),把初始值在其他地方,但是类似位置的棱块转到c)的初始位置来,然后按法子解决。

      注意到没有?以上的方法中,

      我们始终使用的都是底层和没有还原的棱块那个目标侧面在旋转。

      所涉及到的其他面,比如说中间的那一竖层,我们旋转下来又还原转了回去——除了被换上去的目标棱块以外,其余的面完全没有被影响到。

      那么,按照上面的法子,肯定不会影响到其他已完成的棱块的。

      一个个棱块搭完成,咱们的初步目标:第一层的棱块,也就是所谓的顶层十字,就完成了^0^

      下一讲,我们接着讲第一层的角块,也就是顶层剩下的四个角上的小立方体的还原过程。

      学有余力的同学,根据今天棱块的c)方法,应该也能触类旁通的想到如何转角块的——或者,耐心的等我把角块的图画出来也行^0^


      本帖一共被 1 帖 引用 (帖内工具实现)
    • 家园 前2个月也玩过一阵子魔方

      背背公式加理解,基本上一天可以基本掌握怎么还原,不过手法太慢,基本上都要1分钟才能出来,看看网上别人的视频速度就吓人,其实这也就是在别人面前显摆一下,能还原就够了@@

      这种方法还是比较简单的,基本上就几个公式,背一下就好,如果要快就要背无数公式了,反正不准备出去比赛的,这样可以了

    • 家园 仰望星空,盼楼主迅速填坑
    • 家园 送花,坐等啊

      Meissen的教材太复杂了,看不懂

      等楼主的

    • 家园 哇,已经那么多人收藏了,我也先收下,慢慢

      研究一下,等有研究成果出来,再回帖。花上。

    • 家园 俺一个同事算是个天才,魔方盲拧的世界纪录

      2006年他才学习魔方盲拧,俺坐在旁边看他练记忆力;到2008年就破了魔方盲拧的世界纪录,好像还在CCAV露过面。

      他跟俺们大概解释过魔方盲拧,就是把全身能记忆信息的地方都利用上。比如舌头顶在不同的牙齿上就表示不同的状态;10个脚趾头和10个脚趾头也都要拿来记忆初始状态什么的,很神。呵呵。

      • 家园 太神了!

        盲拧太需要记忆能力了!

        魔方全部的状态都要了然于心才行。

        五体投地的崇拜一下贵同事……

        • 家园 这哥们平时说话爱开玩笑

          我对魔方也不了解,经常听他说:哎呀我上次全国赛差点就破世界纪录了;或者说,昨天我在家练习时破了世界纪录了。我都笑他吹牛皮。后来忽然有一天在CCAV5体育新闻里听到了他的名字,才知道这哥们真的是玩出名堂来了呵呵。

          刚才Google了一下他的名字,发现第一条外链出处就是他的百度百科词条,呵呵。看词条他是07年初开始学习,09年破纪录的,跟我的记忆偏差了一年,呵呵。

    • 家园 请教还原相临两面

      相邻两面,每一面总是差最后一块或两块,就会陷入死循环。

      有什么诀窍没有?

      到现在,就复原过两次相邻两面,一次在火车上,一次在飞机上,都算误打误撞。。。。

      • 家园 你的意思是整个魔方仅还原相邻两面,其余面都仍保持混乱么?

        看我的算法摘要链接出处

        我所学、所打算推广的是层先法,就是把魔方一层层的往上复原。

        在整个还原过程中除了最底下一面是已复原的以外,其余五个面都是非复原状态。

        可以看到整个魔方是一层层的在被复原的——直到三层全被复原的时候,剩下的五个面会同时变为复原状态。

        所以你这个路子跟我走的完全不是一条路……我没有接触过其他魔方的还原算法,估计很难回答你的问题。

        你能确认这两面上的每个小立方体就是被正确的放到它对应的位置么?

        看看我这俩图(灰色部分是不影响我本次表述的其他杂乱块的颜色)。

        点看全图

        外链图片需谨慎,可能会被源头改

        左侧的图是我觉得一般人可能会认为的两面还原。

        就是仅有红绿两个面是完整的,但其实边缘上的那些棱块和角块并没有实际到位。棱块和角块我各画了一种作为示意。

        右边一上一下两个角上,红-绿-黄和红-绿-白这两个三色小立方块(角块)其实应该换位置才算是真正放对位置(但是这并不影响你看着觉得红绿两个面的完整)。

        左边绿-白和上边绿-橙这两个双色小立方块(棱块)也没放到它应该放的位置,应该互换才行。

        右侧的才是我理解的还原,红绿两面本身还原了,它边缘上的那些棱块和角块色彩也都到位了。

        我得先弄明白,你说的是其中的左侧图还是右侧图?

    • 家园 俺的最快记录是1分多钟

      下面两层好办,最难的就是上面一层,不过,这是有口诀的,当然,现在是早就忘了。

      我认识一位数学老师,一边用纸笔计算,一边完成6面。

分页树展主题 · 全看 下页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河