鸽了那么久总算期中过【爆】去【炸】了。。。该是时候写写大作业了

【总不能丢给他们不会写的来做吧

一、三阶魔方的几个基本定义

↑就像这样,可以定义面的称呼:上U下D左L右R前F后B

UD之间的叫E,LR之间的叫S,FB之间的叫M

这样子棱就可以定义为UF啊UR啊之类的【咦?UR?

角就是用三个面定义:UFR、URB、DBR【按照逆时针来写三个面

然后就是各种旋转,对于一个面有三种旋转方式(以U为例):U,U',U2分别表示上面顺时针旋转90°,逆时针旋转90°,旋转180°

所以各种公式就是一串UDLRFB和'和2组成的一系列xjb转

二、正式复原

为了让本宝宝的作业表现的高端大气上档次,找到了个鬼畜做法【喵喵喵?

叫降群法(Thistlethwaite algorithm)

前人之述备矣:【五行篇】降群法简易教程,尝试下电脑还原魔方的感觉

总结一下,就是一共四个STEP:

1. 棱方向调正 (G0 -> G1)

2. E层集中,上下面颜色只有两种 (G1 -> G2)

3. 角块归位,S层集中,M层集中 (G2 -> G3)

4. XJB转 (G3 -> FINISH!)

三、计算机方法解决问题

首先每个棱块和角块都具有位置和方向两个属性

对于棱块有方向0/1,角块有方向0/1/2【这就是为什么角块要按照逆时针写三个面

然后对于每个STEP都搜出来从这个群到下一个群的旋转公式即可

而每次只调整一部分,只需要把这一部分的特征值记录下来,进行搜索即可(因为公式并不长)

各STEP的特征值:

1. 棱的方向

2. 棱的位置(是否在E层)以及角的方向

3. 棱的位置(是否在S/M层)以及角的位置

4. 全部信息

四、对于魔方的旋转

其实吧。。。不管是什么复原方式,魔方的旋转是最复杂的部分

还是按照之前的编号方式把棱和角按照1~20编好号

这样子每次转的时候就知道转了些啥,恩,这十分的trivial

然后L = L, L2 = LL, L' = LLL这样子只要做一种旋转就行了恩,这也十分trivial

然后这样子18个步骤就分为了6大类,每一类只要记录下每次棱和角在一次旋转以后的置换即可

每个棱和角的方向,可能会有改变,进行讨论

1. 对于棱:FB会改变方向,其他均不改变

2. 对于角:UD不改变方向,其他的需要讨论,正好每个角在LRFB四个操作中方向一次改变1一次改变2

恩所以只要把上面的步骤全部完成就好啦!魔方复原get√

程设大作业xjb写——魔方复原的更多相关文章

  1. 隔壁信概大作业xjb写——同化棋ATAXX

    话说泥萌北大信科啊,助教是有多懒...去年黑白棋今年同化棋,顺带打ai都不用自己写标程... 好吧..我知道泥萌重点在各种sb的辅助操作上..什么悲剧的可以随时暂停载入...有毒吧 [据说泥萌上课没讲 ...

  2. < JAVA - 大作业(2)仿qq即时通讯软件 >

    < JAVA - 大作业(2)仿qq即时通讯软件 > 背景 JAVA上机大作业:设计一个仿qq即时通讯软件 任务简要叙述:设计一款仿QQ的个人用户即时通讯软件,能够实现注册,登陆,与好友聊 ...

  3. 2019QM大作业2-weyl半金属Landau Level

    目录 说明 for cnblog QM大作业2--weyl半金属的Landau Level \(\boldsymbol{Abstract}\) 说明 Landau Level 自旋与pauli mat ...

  4. 数据库大作业--由python+flask

    这个是项目一来是数据库大作业,另一方面也算是再对falsk和python熟悉下,好久不用会忘很快. 界面相比上一个项目好看很多,不过因为时间紧加上只有我一个人写,所以有很多地方逻辑写的比较繁琐,如果是 ...

  5. Java作业代写

    作业一 试用java编写一个九九乘法表并打印. 作业二: 设计两个人类与书类,并设置两者的关系,试用人去找书,书去找人,假如某人有一个儿子,它也有一本书,试用儿子去找书,书找儿子. 大作业 熟悉QQ农 ...

  6. [留念贴] C#开发技术期末大作业——星月之痕

    明天就要去上海大学参加 2015赛季 ACM/ICPC最后一场比赛 —— EC-Final,在这之前,顺利地把期末大作业赶出来了. 在这种期末大作业10个人里面有9个是从网上下载的国内计算机水平五六流 ...

  7. Hadoop综合大作业

    Hadoop综合大作业 要求: 用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计. 用Hive对爬虫大作业产生的csv文件进行数据分析 1. 用Hive对爬虫大作业产 ...

  8. 爬虫综合大作业——网易云音乐爬虫 & 数据可视化分析

    作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3075 爬虫综合大作业 选择一个热点或者你感兴趣的主题. 选择爬取的对象 ...

  9. 期末Java Web大作业----简易的学生管理系统

    学生信息管理系统(大作业) 2018-12-21:此文章已在我的网站更新,添加视图介绍等信息,源码请移步下载https://www.jeson.xin/javaweb-sims.html PS:首先不 ...

随机推荐

  1. AngularJS过滤器

    1.过滤器可以使用一个管道字符(|)添加到表达式和指令中. 再次强调一点,所有的运行都要加入angularJS的库文件(类似JQuery的引用) 常见的AngularJS 过滤器 (1) lowerc ...

  2. js 判断所选时间(或者当前时间)是否在某一时间段用于不同时间段显示不同的客服qq

    //qq交谈 var nowtimes= new Date(); var starttimes="16:30"; var endtimes="23:59"; v ...

  3. Web App适配不同屏幕的几点建议

    安卓设备在屏幕尺寸和像素密度上差别很大,因此在使用WebView加载网页时就需要考虑到这种差别,对我们的网页做出精心的设计以在不同的屏幕上都能得到合适的展现.通常情况下,我们需要考虑到两个因素:1.视 ...

  4. MySQL int(11)及int(M)解析

    默认创建int类型的字段,SHOW CREATE TABLE table_name或DESC table_name常常可以看到其默认情况为int(11). 这个int(M)很多时候都会被误解为最大范围 ...

  5. Windows 版本的iTunes 修改iPhone的备份路径

    帮朋友解决修改iPhone的备份路径问题,故写篇博客整理记录一下. 所需工具 Junction工具 下载该工具然后将文件放到C:\Windows 目录下,如下图: 找到iTunes的备份路径 Wind ...

  6. PetGenie

    大概六.七年前当我还在学 Asphyre 的时候,有看过一个以之编写的类似对对碰的“宠物对对碰”小游戏,虽然很简单,但我当时还是小小的沉溺过数个小时.而不久前,在闲逛论坛时无意看到了个以 FireMo ...

  7. Spark相关

    非常好的spark分析博客,我们team的,哈哈:http://jerryshao.me/ spark programming guide: https://github.com/mesos/spar ...

  8. 一看便知_配置linux 网络配置的几种方法

    一. -    setup    进入设置  -    /etc/rc.d/init.d/network  restart    运行完才会生效刚才的修改    二.命令设置 [临时生效]-    i ...

  9. html5的新特性——拖放API

    在HTML5之前只能使用鼠标事件模拟出"拖放"效果:HTML5专门为拖放提供了7个事件句柄.  被拖动的源对象可以触发的事件: (1)ondragstart:源对象开始被拖动 (2 ...

  10. UIButton的文本与图片的布局

    UIButton内部文本和图片的布局是我们日常代码中,不可缺少的部分,按钮默认左边图片右边文本,那要实现左边文本,右边图片,我们该怎么解决呢,上面图片,下面文本又该怎么办呢 其实很简单,今天总结下,目 ...