关系表示:被动与主动、连环关系合并
2016-01-22 04:14
162 查看
看训练指南的时候,对LA 3401中,说的正方体状态表示不是很理解,详细推敲了一下,明白了一些,此处做个记录,名为:主动关系和被动关系以及连续的关系表示
正方体有六面,其面和颜色的标号如下图
下面再用3行文字表示,以便对应后面的讲解
下面再看这3种姿态对应的数组表示
标准{1,2,3,4,5,6}左旋一次{5,1,3,4,6,2}上旋一次{3,2,6,1,5,4}
书中写的以我的理解是主动的表示
因为其表示的是:array[i] = k代表i颜色占据了(标准面)k面的位置,简单说叫i占据了k的位置
看看上面左旋一次1占据的是标准面5的位置,上旋一次1占据的是标准面3的位置,所以其数组第一位置分别是5和3
只是为什么叫这个主动关系的表示呢?那是因为数组array[i] = k,以下标的角度出发(以下讲到的都是这样),i对于k是一种主动的关系,i主动占据了k
那么还有被动的表示,xx占据了yy,是不是可以表示成yy被xx占据了呢?(这不是废话吗?)
确实,被动表示上面的数组,文字表示为:(标准面)i被k颜色占据了,array[i] = k,此时下标i对于k是一种被动的关系,i被k占据了
此时数组表示如下
标准{1,2,3,4,5,6}左旋一次{2,6,3,4,1,5}上旋一次{4,2,1,6,5,3}
解释同上,左旋一次标准面5被1占据了,上旋一次标准面3被1占据了,所以其数组第5位置和第3位置是1
标准状态就没什么好解释的了,1占据1面,1面也被1占据,怎样表示都是123456
那么还有一个合并,左旋再上旋
重新把主动和被动的数组再写一遍,没有标准,加入左旋再上旋的状态
主动
左旋一次{5,1,3,4,6,2}上旋一次{3,2,6,1,5,4}左旋再上旋{5,3,6,1,4,2}
被动
左旋一次{2,6,3,4,1,5}上旋一次{4,2,1,6,5,3}左旋再上旋{4,6,2,5,1,3}
用3行表示一下左旋再上旋
先看看主动513462+326154 = 536142是怎么来的
array[i] = k; 这里用i->k表示
说个题外话,这里和矩阵的变化很是相似,PT = A,P经过T变换为A,矩阵本身含有很多变化的意义,具体的还有很多等我们去了解,我后面用P表示初始,T表示中间变换,A表示变换后的状态
当我们要知道A的i->k分别是什么指向了什么,有初始的P:i->j,还有T:j->k,最后就会有A:i->k,整个过程类似链表
我们用文字来表示,P状态下i占据了j的位置,而T变换中使得j又占据了k的位置,最终使得A状态下i是占据了k的位置
所以A[i] = T[P[i]],其表示P中i占据的位置在T中又占据了的位置
主动的表示时,如果把PTA分别从上往下写i->k这样的链式表示,最终结果是一个从上往下链接的过程,似乎又废话了
验证一下,左旋一次1占据5的位置,而上旋一次5又占据了5的位置,所以1最终占据了5的位置,左旋再上旋array[1]=5
主动关系的表示到此为止
再来看看被动,略写吧,跟上面差不多的,只是变成了array[i] = k用i<-k表示
A[i] = P[T[i]],其表示T中被占据的位置在P中又被谁占据了
验证一下,上旋一次1被4占据了位置,而左旋一次4的位置被4占据了,所以1的位置最终被4占据了,左旋再上旋array[1]=4,注意这次是先看上选再看左旋
其它的不多说了,如果不是很清楚请在纸上写下左旋、上旋、左旋再上旋的数组,还有链表形式的表示,像写小学加法那样竖排着写,主动和被动在合并时的区别就是,主动是从上往下找答案,被动则是从下往上找答案
其实差不多讲完了,只是上面的都是最后生成了一个状态(或者说生成了数组,表示了一个关系 ),原书中也是用这样的方式来生成dice数组,当然用的是主动的表示,理解了上面的,我用被动表示同样也没有任何问题
但是还有一点要看的,当我们知道本来的状态和变换后的状态,如何改变方块的颜色标识呢?毕竟数组表示的不是很直接
代码如下,当然,没有做过此题的可能不是很懂
仅仅对下标做个解释,i只是对应第几个方块而已,重点是j表示的是哪个面
主动:颜色还是本来的颜色,只是考虑占了哪个面而已
被动:被占领的位置还是和原来一样,只是考虑被谁占了而已
当然,我们知道,变量赋值都是a=b表示a<-b,b赋值给a这样,所以b是主动的,a是被动的
上面的主动和被动,变成了这样的表示
主动:原来的dice同样的[j]位置,填入到变换后的[dice24变换]的位置
被动:变换后的color[j]还是本来的[j]位置,只是被变换后的[dice24变换]原来的颜色dice给占据了
这2条解释随意个人如何解释,基本的还是上面的纯粹文字的表示
正方体有六面,其面和颜色的标号如下图
下面再用3行文字表示,以便对应后面的讲解
用这样表示6面: 上 左前右后 下 这里给出3种姿态,也是书中讲到的,标准、标准左旋一次,标准上旋一次 这里和书中同样,只是color1写成1,以此类推 标准 3 5126 4 左旋一次 3 1265 4 上旋一次 1 5423 6
下面再看这3种姿态对应的数组表示
标准{1,2,3,4,5,6}左旋一次{5,1,3,4,6,2}上旋一次{3,2,6,1,5,4}
书中写的以我的理解是主动的表示
因为其表示的是:array[i] = k代表i颜色占据了(标准面)k面的位置,简单说叫i占据了k的位置
看看上面左旋一次1占据的是标准面5的位置,上旋一次1占据的是标准面3的位置,所以其数组第一位置分别是5和3
只是为什么叫这个主动关系的表示呢?那是因为数组array[i] = k,以下标的角度出发(以下讲到的都是这样),i对于k是一种主动的关系,i主动占据了k
那么还有被动的表示,xx占据了yy,是不是可以表示成yy被xx占据了呢?(这不是废话吗?)
确实,被动表示上面的数组,文字表示为:(标准面)i被k颜色占据了,array[i] = k,此时下标i对于k是一种被动的关系,i被k占据了
此时数组表示如下
标准{1,2,3,4,5,6}左旋一次{2,6,3,4,1,5}上旋一次{4,2,1,6,5,3}
解释同上,左旋一次标准面5被1占据了,上旋一次标准面3被1占据了,所以其数组第5位置和第3位置是1
标准状态就没什么好解释的了,1占据1面,1面也被1占据,怎样表示都是123456
那么还有一个合并,左旋再上旋
重新把主动和被动的数组再写一遍,没有标准,加入左旋再上旋的状态
主动
左旋一次{5,1,3,4,6,2}上旋一次{3,2,6,1,5,4}左旋再上旋{5,3,6,1,4,2}
被动
左旋一次{2,6,3,4,1,5}上旋一次{4,2,1,6,5,3}左旋再上旋{4,6,2,5,1,3}
用3行表示一下左旋再上旋
2 1463 5
先看看主动513462+326154 = 536142是怎么来的
array[i] = k; 这里用i->k表示
说个题外话,这里和矩阵的变化很是相似,PT = A,P经过T变换为A,矩阵本身含有很多变化的意义,具体的还有很多等我们去了解,我后面用P表示初始,T表示中间变换,A表示变换后的状态
当我们要知道A的i->k分别是什么指向了什么,有初始的P:i->j,还有T:j->k,最后就会有A:i->k,整个过程类似链表
我们用文字来表示,P状态下i占据了j的位置,而T变换中使得j又占据了k的位置,最终使得A状态下i是占据了k的位置
所以A[i] = T[P[i]],其表示P中i占据的位置在T中又占据了的位置
主动的表示时,如果把PTA分别从上往下写i->k这样的链式表示,最终结果是一个从上往下链接的过程,似乎又废话了
验证一下,左旋一次1占据5的位置,而上旋一次5又占据了5的位置,所以1最终占据了5的位置,左旋再上旋array[1]=5
主动关系的表示到此为止
再来看看被动,略写吧,跟上面差不多的,只是变成了array[i] = k用i<-k表示
A[i] = P[T[i]],其表示T中被占据的位置在P中又被谁占据了
验证一下,上旋一次1被4占据了位置,而左旋一次4的位置被4占据了,所以1的位置最终被4占据了,左旋再上旋array[1]=4,注意这次是先看上选再看左旋
其它的不多说了,如果不是很清楚请在纸上写下左旋、上旋、左旋再上旋的数组,还有链表形式的表示,像写小学加法那样竖排着写,主动和被动在合并时的区别就是,主动是从上往下找答案,被动则是从下往上找答案
其实差不多讲完了,只是上面的都是最后生成了一个状态(或者说生成了数组,表示了一个关系 ),原书中也是用这样的方式来生成dice数组,当然用的是主动的表示,理解了上面的,我用被动表示同样也没有任何问题
但是还有一点要看的,当我们知道本来的状态和变换后的状态,如何改变方块的颜色标识呢?毕竟数组表示的不是很直接
代码如下,当然,没有做过此题的可能不是很懂
//color表示变换后的,dice表示本来的,dice24表示对应哪种变换方式 color[i][dice24[r[i]][j]] = dice[i][j];//主动 color[i][j] = dice[i][dice24[r[i]][j]];//被动
仅仅对下标做个解释,i只是对应第几个方块而已,重点是j表示的是哪个面
主动:颜色还是本来的颜色,只是考虑占了哪个面而已
被动:被占领的位置还是和原来一样,只是考虑被谁占了而已
当然,我们知道,变量赋值都是a=b表示a<-b,b赋值给a这样,所以b是主动的,a是被动的
上面的主动和被动,变成了这样的表示
主动:原来的dice同样的[j]位置,填入到变换后的[dice24变换]的位置
被动:变换后的color[j]还是本来的[j]位置,只是被变换后的[dice24变换]原来的颜色dice给占据了
这2条解释随意个人如何解释,基本的还是上面的纯粹文字的表示
相关文章推荐
- 【快速高斯模糊的实现】
- Leetcode 260. Single Number III
- 解决Git问题之fatal: index-pack failed
- 安卓自定义view_GDI绘图 _2d绘图_canvas绘图
- Leetcode 137. Single Number II
- C语言实现工厂模式
- Passing Objects Between Android Activities
- 为arm 编译包含gd的php5
- [看看世界]书签备份
- ceshi
- OS X各版本原厂系统镜像校验值索引
- OS X各版本原厂系统镜像校验值索引
- 【推荐】iOS汉字转拼音第三方库
- 解决 LaTeX Error: Something's wrong--perhaps a missing \item.
- WebGL学习笔记(1)
- Hashcode Of A String In Java
- LeetCode 59. Spiral Matrix II
- iframe跨域通信方案
- ActionBar研究日志
- 16初出茅庐F题