(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

接上个文章继续往后讨论,梳理一个顶层逆序的算法公式推算。

1. 基础变换影响分析

先来再深入分析RUR‘,RU2R‘,RU’R’基础算法的影响。

先把顶部的角点设为ABCD,底部角点设为XYZW。AB->DC->XY->WZ连接在一起。

顶面 底面 前面 右面 左面 后面
A-B
D-C
X-Y
W-Z
D-C
X-Y
C-B
Y-Z
A-D
W-X
B-A
Z-W

这三个方法都是对底部的-右前下角进行换离,从顶部选取顶部的-除右后上角外的三个角点种的一个进行替换
RUR‘,选取的右前上角换到底面,顶点C
RU2R‘,选取左后上角,顶点A
RU’R‘,选取左前上角,顶点D

添加顶部归位U‘/U2/U后,算法的影响可以直观的表示出来:

变换 置换前 置换后
RUR‘U‘ A-B
D-C
X-Y
W-Z
B-A
D-Y

X-C
W-Z

RU2R’U2 A-B
D-C
X-Y
W-Z
Y-B
C-D

X-A
W-Z

RU‘R‘U A-B
D-C
X-Y
W-Z
A-C
Y-B

X-D
W-Z

2. 顶层逆序实现

从上面的详细分析种,我们可以看出形如RUR’U’基础变换的详细影响,它可以把顶面的三个角点和底面的一个角点联动起来,进行变换:
RUR‘U’实现了变换:A-B互换,C-Y互换,其它不影响,那么如果我们把C-Y的位置通过对前面的顺时针旋转,把D-C换到该位置来,就可以该算法下的D-C互换,再把前面旋转回来,就实现了A-B互换,C-D互换,从而实现了顶层逆序。

置换前 F RUR’U‘ F’
A-B
D-C
X-Y
W-Z
A-B
X-D
Y-C

W-Z
B-A
X-C
Y-D
W-Z
B-A
C-D
X-Y

W-Z

RUR’U’变换前后各附加F与F‘,相当于把变换角点修改为前面上的另外角点,利用了该变换不修改左前上D点位置的优势,把底面角点放过去,变换完再放回来,相当于多使用了底面的一个空位,实现了顶面的两两换位,从而顺时针变逆时针排序。

新公式FRUR‘U’F’,实现了在不影响底面基础上,顶面四个角点两两互换----顺时针变逆时针排序,同时原节点BC朝上颜色未变换,AD朝上颜色换位左侧颜色。
对于还原它们的话,可以再执行一次时针变换,另外为了调朝上颜色,把BC放回BC位置后再变换,可以一次把朝上颜色也调对。

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

二阶魔方复原算法推算-Part2相关推荐

  1. 二阶魔方复原算法推算-Part1

    (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 1. 二阶魔方 对于魔方来说,二阶魔方算是比较简单的,共有8个顶角块,上面四个块,下面四个块:可以分为 ...

  2. DBFS解二阶魔方——一次c++学习之旅

    目录 前言 构思解法 优化方案 代码及详细注释 1.定义魔方的一个状态 2.状态初始化 3.转动 4.查重 5.双向广搜 6.输出 7.输入 8.主函数 几段实用代码 前言 本人是c++初学者,对魔方 ...

  3. 【NOJ1325】【算法实验三】【分支限界法】特殊的二阶魔方

    1325.特殊的二阶魔方 时限:1000ms 内存限制:10000K  总时限:3000ms 描述 魔方大家应该都玩过.现在有一个特殊的二阶魔方,它只有一面是白色,其余五个面全是黑色.玩这个魔方当然也 ...

  4. python解魔方程序_写一个解二阶魔方的程序

    本文需要读者有一定的魔方基础, 最起码也要达到十秒内还原二阶魔方的水平, 并且手上最好有一个二阶魔方, 否则文中的很多东西理解不了. 另外, 这里使用的算法是我自己写着玩的, 如果你需要更成熟和专业的 ...

  5. 利用BFS广度优先搜索还原二阶魔方

    利用BFS广度优先搜索还原二阶魔方 采用BFS深度优先搜索算法进行了对于魔方求解问题的建模,并且利用C++代码进行了算法实现,能够实现输入魔方状态,自动输出解法的效果. BFS是图论中一种基本的搜索算 ...

  6. 【二阶魔方还原】第十次OJ的总结

    问题描述 二阶魔方是 2x2x2 的立方体结构魔方,它共有 8 块,如下图所示: 图1  二阶魔方示意图 我们可以定义魔方作为一个正六面体的六个面为 F(ront), B(ack), U(p), D( ...

  7. 二阶魔方还原 Rubik’s Cube 双向广度优先搜索

    1. 算法简介 使用搜索算法完成二阶魔方从任意初始状态向目标状态的操作转换.         根据已有的研究,二阶魔方的上帝之数为11(进行FTM计数)或14(进行QTM计数),本算法采用QTM计数对 ...

  8. 【项目实践】二阶魔方搜索算法

    前言   课程<智能控制基础>课后作业要求编写一个二阶魔方搜素求解的算法,由于本人的代码水平真的不行,只能"面向互联网编程",前前后后找了不少资料,也确实学习到一点东西 ...

  9. 魔方(4)二阶魔方、六阶魔方、七阶魔方

    目录 二阶魔方 1,二阶魔方与三阶魔方的关系 2,二阶魔方的定位 3,二阶魔方的盲拧 六阶魔方 七阶魔方 二阶魔方     1,二阶魔方与三阶魔方的关系 可以理解为,二阶魔方就是三阶魔方的八个角块. ...

最新文章

  1. vue移动端下拉切换页面_Vue实现移动端页面切换效果
  2. 我看Chrome超越IE的意义
  3. ES6 - 字符串模板与新增字符串方法
  4. linux 备份数据,LINUX下备份数据
  5. LQ训练营(C++)学习笔记_常见动态规划模型
  6. Arthas-MathGame
  7. JDBC初学者的basedao工具类
  8. Spring学习之旅(二):Bean的高级装配之解决装配歧义性
  9. mysql 拼音首字母_Mysql:拼音首字母查询(超高性能)
  10. python画logistic拟合曲线_Logistic回归python实现
  11. python中文文本处理_python简单文本处理的方法
  12. SQL Tuning 基础概述05 - Oracle 索引类型及介绍
  13. protobuf 2.5.0问题
  14. robocode java_IBM Robocode Java学习利器(1)Robocode 入门
  15. WPF 入门教程打印控件
  16. html前端毕业设计项目,web前端毕业设计论文..doc
  17. 仿《91创业网》网站源码 招商加盟致富商机网站 帝国cms模版+采集
  18. 安全secuerity证券
  19. HTML概述+HTML核心(HTML知识点总结)
  20. java如何使用指针_如何在Java中使用指针?

热门文章

  1. 28 网络文件共享服务
  2. 市值高达67亿的1元“壳股”海润光伏 谁敢接盘?
  3. 基于蓝牙协议的无线网络化传感器设计
  4. wps 分节符(连续) 自动变成 分节符(下一页) 解决办法
  5. 为什么很多年轻人说不清楚自己的堂号郡望?家谱修编做好这一点,提高家族凝聚力!
  6. 第二次结对编程 微软学术搜索
  7. Jupyter notebook远程访问服务器
  8. 绑定ssh publickey后clone仍然Permission denied
  9. Mathtype和word关联
  10. 计算机电源要求吗,电脑真的需要用大功率电源吗?走出选择电源误区