久趣下载站

当前位置: 首页 » 游戏攻略 » 魔方颜色序列翻转问题详解

魔方颜色序列翻转问题详解

题目说明:


YYYYRRRRWWWWOOOOGGGGBBBB


UUL’


第一行为输入为对应

F, R, B, L, U, D

面的元素颜色
第二行输入为翻转的

标识符

标识符有:

F、F'、R、R'、B、B'、L、L'、U、U'、D、D'

。分别为对应明的顺时针翻转和逆时针翻转。带

'

则为逆时针,不带则为顺时针。

输入示意图:

输出说明:

BWBYOORRYGWGORORWGYGWBYB

示例图【无需输出,仅理解】:

输出翻转后最终对应位置

F, R, B, L, U, D

的颜色序列

题解:

    • 要理解题目中,每个转动的模拟情况,每个面的转动会影响那些面

    • 旋转面的影响方框【元素】依次是什么,

      • 这里以以U移动举例:

        1. U移动会带动L、F、R、B【顺序可以改,但必须保证前后对应的面相等,因为带动顺序也很关键】

        1. 每个面划分为2*2的矩阵,那么,L会影响的元素方位是(0,0) (0,1)。F会影响的也是(0,0) (0,1)

        2. 分别模拟出每个面依次对照的影响元素的位置

    • 获取每个影响元素的方位

    • 就可以编码了,难点在于如何理解每一个面的转动以及他所带动的面的元素是什么,每一个面的带动情况是不一样的

难度:

复杂度高,找到移动影响序列比较繁琐,编码难度中等


编码

  • 构建常量以及每一个面的两个序列【面移动序列,面中受影响所移动的位置序列】:

  • 将X面翻转(仅单面模拟,不对其他4个移动面进行模拟)以及获取对应值的方法

  • 翻转其他部分:

  • main函数:

  • all code:


自己编码的过程:

在我自己编码的途中,纯大脑模拟3维魔方并编码,而且输出如此抽象,实际上是非常困难的,因此我自己编码的时候借助了大模型生成的帮忙的可视化接口(虽然你笔试的时候肯定不能用,我当时也不够时间写出来,找到影响元素的位置序列真tm繁琐)【我命名为draw_cube.py。这个根据自己喜欢来】记得把import 改一下就好,最好复制那个输出就能显示图片了,有图片辅助更好理解

code


鸣谢:


魔方模拟

猜你喜欢
本类排行