三阶魔方有多少种状态

news2024/11/23 10:04:36

请添加图片描述

魔方有 3 种不同的方块,分别为角块(8 个,每个角块有三种颜色),棱块(12 个,每个棱块有两种颜色)与中心块(6 个,每个中心块有一种颜色)。

魔方总共有 6 个面,每个面的颜色不一样,每个面被分为 9 个小面,我们称小面为 facelets,魔方总共有 54 个 facelets.

问题来了:魔方有多少种状态?

先给出答案:

{\frac  {8!\times 3^{8}\times 12!\times 2^{​{12}}}{2\times 2\times 3}}=43,252,003,274,489,856,000\approx 4.33\times 10^{​{19}}

为什么是这个数字呢?

三阶魔方总变化数可利用乘法原理计算,具体方法是:

  • 8 个角块可以互换位置(8!),也可以旋转(3),所以分子里有 8 ! ∗ 3 8 8! * 3^{8} 8!38

  • 但不能单独翻转一个角块,也就是说当前面 7 个角块都确定方向后,最后一个角块的方向也就确定了,所以分母有个 3

  • 12 个棱块可以互换位置(12!),也可以翻转(2),所以分子里有 12 ! ∗ 2 12 12! * 2^{12} 12!212

  • 但不能单独翻转一个棱块(也就是将其两个面对调),当前面 11 个棱块都确定方向后,最后一个棱块的方向就确定了,所以分母有个 2

  • 你会发现分母里还有个 2,这是为什么呢?因为奇偶性。

角块和棱块同奇同偶

请添加图片描述

看这个魔方,我们以顺时针旋转蓝色的面为例子

对于角块,顺时针看,本来是 1 3 9 7,旋转后变成 7 1 3 9;

把这个变化拆解一下:

  1. 7 和 1 交换:7 3 9 1
  2. 1 和 9 交换:7 3 1 9
  3. 3 和 1 交换:7 1 3 9

也就是交换了 3 次,3 是奇数;同理,棱块的交换也是 3 次

不管旋转哪个面,只要是单次转动,对于角块和棱块都是奇置换,多次转动复合起来,角块和棱块的奇偶性会保持一致。(注意:两个偶置换的复合是偶的;两个奇置换的复合是偶的;一个奇置换与偶置换的复合是奇的)

所以,不可能仅交换一对角块,也不可能仅交换一对棱块。假设你给 8 个角块和前面 10 个棱块都安排好了位置,那这剩余的 2 个棱块,其位置是确定的:如果角块是奇置换(或偶置换),那这剩余的 2 个棱块要和前面的棱块凑成奇置换(或偶置换)。

于是分母还有一个 2,因为剩余的 2 个棱块在位置上没有选择。

不能单独翻转一个棱块

既然了解了偶置换和奇置换,那我们想一想为什么不能单独翻转一个棱块。

假设给 12 个棱块的每个面都标上序号(1~24),在单步转动中,其实是 2 组奇置换,复合起来是偶置换。多次转动复合起来,还是偶置换。而单独翻转一个棱块,是奇置换,所以不可能。

不能单独翻转一个角块

请添加图片描述

如图所示,我们给每个角块的 3 个小面都标上 0,1,2,这是初始状态。注意,对于每个角,沿魔方的体对角线看入时,是一个 Y 字型,0 在最上面,1 在左边,2 在右边

我们规定,角块的方向值是它在 U 面或者 D 面的数字。

对于 U 和 D 面,不管怎么转,角块的方向都不改变。

对于其他 4 个面,顺时针或逆时针转动的效果都一样,我们只需要研究一个面,例如 F:

我们把 F 面顺时针转动 90 度,看看受影响的 4 个角块的方向值增加了多少。

请添加图片描述

可以看到,4 个角块分别增加 2,1,2,1,这说明什么呢?

说明有 2 个角块逆时针旋转了 120°,另外 2 个角块顺时针旋转了 120°,这 4 个角块一共旋转了 0°

其他情况是类似的,我们就不分析了。

因此可以推出,不管魔方怎么转,8 个角块的方向值之和都是 0

所以不可能单独翻转一个角块,一个角块翻转了,必然伴随其他的角块也翻转,来维持方向值之和是 0

【完】

参考资料

【1】魔方中的数学2-置换的定义 - 知乎

【2】Why is a single-corner twist not a valid position on a Rubik’s cube? - Puzzling Stack Exchange

【3】为什么魔方在转动一个角块后无法复原?作者:鸿鹄

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/677819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每天学一点知识有用吗

在探索如何学习的路上,我注意到了基于微习惯的学习方式,比如每天在用十分钟的时间练习下普通话,或者每天写500字的总结。 我简单回顾一下: 这种方法虽然颇受欢迎,但是它限制了你可以尝试的活动种类,有时候…

深度学习(24)——YOLO系列(4)

深度学习(24)——YOLO系列(4) 文章目录 深度学习(24)——YOLO系列(4)1. dataset准备(1)数据详解(2)dataset(3)…

广告数仓:全流程调度

系列文章目录 广告数仓:采集通道创建 广告数仓:数仓搭建 广告数仓:数仓搭建(二) 广告数仓:全流程调度 文章目录 系列文章目录前言一、ClickHouse安装1.修改环境2.安装依赖3.单机安装4.修改配置文件5.启动clickhouse6.创建需要的数…

012-从零搭建微服务-接口文档(二)

写在最前 如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 源码地址(后端):https://gitee.com/csps/mingyue 源码地址(前端):https://gitee.com/csps…

统一拦截--过滤器Filter

1.过滤器Filter 1. 概述 概念: Filter过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。过滤器一般完成一些通用的操作,比如:登录校验、统一编码处理、敏感字符处理等…

Tcp协议的十大特性详解+示例

前言 之前我们简单了解了一下Tcp是什么及它的套接字如何使用:基于UDP和TCP套接字实现简单的回显客户端服务器程序_Crystal_bit的博客-CSDN博客 因为要给大家介绍Tcp的十大特性,所以这里给出Tcp报头结构: 目录 1. 确认应答 2. 超时重传 3. 连接管理 3…

【Android复习笔记】Parcelable 为什么速度优于 Serializable ?

Q:Parcelable 为什么速度优于 Serializable ? 首先,抛开应用场景谈技术方案都是在耍流氓,所以如果你遇到有面试官问这样的题目本身就是在给面试者挖坑。 序列化 将实例的状态转换为可以存储或传输的形式的过程。 Serializable 实现方式: Serializable 是属于 Java 自带的…

Solid Converter PDF v10 安装及使用教程

目录 一、软件介绍二、下载教程三、安装教程四、使用教程1.PDF转Word、Html等2.合并PDF文件 一、软件介绍 Solid Converter PDF是一套专门将PDF文件转换成Word的软件。 能够将PDF转换为Word、Excel、HTML、PowerPoint、纯文本文件从PDF文档中提取数据并以CSV等格式保存能够转…

数仓工程师理解复杂业务的思考方法论

模型设计框架(业务过程驱动)还是在经典的三层数据模型架构下去进行,概念模型、逻辑模型、物理模型 首先概念模型其实是业务过程(流程图),其中需要考虑到几个方面: 1.数据 业务覆盖 业务感知、…

循坏队列CircularQueue

前言 一、CircularQueue 二、特点 三、设计思路 1)判空与判满 2)链表还是数组实现? 四、实现 1).IsEmpty() 2).IsFull() 3)CircularQueueCreate创建 4)CircularQueueEnQueue插入 5)CircularQueueDeQueue删除 6&#xf…

React Hook之useCallback 性能优化

上文 对比之前的组件优化说明React.memo的作用我们说了 React.memo的妙用 但是 它却并非万能 我们来看这个情况 我们子组件代码编写如下 import React from "react";const ChildComponent ({ dom1funt }) > {console.log("ChildComponent 被重新渲染"…

规则引擎--规则集:规则集合的组织和执行

目录 回顾easy-rules的rules执行如何想规则集合的构造 规则集合定义普通规则集和执行定义树形规则集 当弄清楚了一个规则的设计和执行逻辑后,接下来需要考虑的就是许多的规则如何组织了,即规则集的抽象设计。 来看一些例子 回顾easy-rules的rules执行 …

NFCEE Discovery and Mode Set

10.1 NFCEE ID NFCC 动态为 NFCEE 分配 ID(称为“NFCEE ID”)。 DH 通过执行 NFCEE Discovery 来了解 ID 值。 在配置状态为 0x01 的 NFCC 重置之前,NFCEE ID 一直有效。 值为 0x00 的 ID 在本规范中称为 DH-NFCEE ID,并且应代表…

五、Docker本地镜像发布到阿里云/发布到私有库

目录 前言一、本地镜像发布到阿里云1.1 流程图1.2 注册阿里云创建容器服务个人实例1.3 创建命名空间1.4 创建镜像仓库1.5 将镜像推送到阿里云本地仓库 二、从阿里云仓库拉去自己推送的镜像三、本地镜像发布到阿里云总结四、本地镜像发布到私有库4.1 流程图4.2 下载镜像Docker R…

Shell编程从入门到实践——实践篇

欢迎关注 「Android茶话会」 回 「学习之路」 取Android技术路线经典电子书回 「pdf」 取阿里&字节经典面试题、Android、算法、Java等系列武功秘籍。回 「天涯」 取天涯论坛200精彩博文,包括小说、玄学等 背景 之前在搞一些CI/CD,使用到了shell脚本,shell的开…

nvdiffrec在Windows上的配置及使用

nvdiffrec是NVIDIA研究院开源的项目,源代码地址:https://github.com/NVlabs/nvdiffrec ,论文为《Extracting Triangular 3D Models, Materials, and Lighting From Images》,从图像中提取三角形三维(三角网格)模型、空间变化的材质…

uni-app微信小程序获取手机号授权登录(复制即用,js完成敏感数据对称解密,无需走服务端处理)

目录 一、示例 二、具体实现说明 一、示例 获取到的手机号 二、具体实现说明 属性说明 属性名说明生效时机getphonenumber获取用户手机号回调open-type"getPhoneNumber" 按钮写法 <template><view class"login"><view class"content…

为什么要写这个带点玄幻气息的英语单词记忆博客

&#x1f31f;博主&#xff1a;命运之光 ☀️专栏&#xff1a;英之剑法&#x1f5e1; ❤️‍&#x1f525;专栏&#xff1a;英之试炼&#x1f525; ☀️博主的其他文章&#xff1a;点击进入博主的主页 &#x1f433; 开篇想说的话&#xff1a;开学就大三了&#xff0c;命运之光…

DMA详解及应用(嵌入式学习)

DMA 0. 前言1. DMA作用2. DMA特性3. DMA寄存器4. DMA的增量或者循环模式5. 练习 0. 前言 DMA&#xff08;Direct Memory Access&#xff0c;直接内存访问&#xff09;是一种计算机系统中用于高效地实现数据传输的技术。它允许数据在外设和内存之间直接传输&#xff0c;而无需C…

GEE:为每个对象(斑块/超像素)添加属性

作者:CSDN @ _养乐多_ 本文将介绍为每个对象(斑块/超像素)添加属性的代码。并举例将最近距离作为属性添加到每个对象(斑块/超像素)特征中。 结果如下图所示, 文章目录 一、代码二、代码链接一、代码 这段代码的目的是对动态世界土地覆盖图像进行分析,并提取出其中的目…