魔方还原神器,有了它,没有还原不了的魔方(15)

小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

欢迎和猫妹一起,趣味学Python。

今日主题

今天呢,我们学习一点关于魔方的知识。

魔方,又叫鲁比克方块,最早是由匈牙利布达佩斯建筑学院厄尔诺·鲁比克教授于1974年发明的机械益智玩具。

通常意义下的魔方,是指狭义的三阶魔方。

三阶魔方形状通常是正方体,由有弹性的硬塑料制成。

常规竞速玩法是将魔方打乱,然后在最短的时间内复原。

广义的魔方,指各类可以通过转动打乱和复原的几何体。

魔方与华容道、法国的单身贵族(独立钻石棋)并称为智力游戏界的三大不可思议。

你玩过魔方吗?

它虽然小巧,但是可以变化出很多种组合。

你手头有魔方吗?

如果有的话,多长时间可以将其还原呢?

咱们现在这个年代啊,真是太幸福了,买什么东西都很方便。

足不出户,只需动动手指,东西就会快递到家门口。

比起猫爸那个年代,真是太方便了,一个天上,一个地上,差别就是这么大。

猫妹幼儿园就知道有个东西叫魔方了,并且买过,也拿在手里把玩过。

猫爸呢?

高中时候才接触过魔方,没看错,就是高中。

他的同桌不知从哪里弄来个魔方,玩得不亦乐乎,除了正常的旋转,把打乱图形还原外,还可以把它拆零碎了又组装好,可谓炉火纯青。

受到同桌的诱惑,猫爸也买了一个。

凭着直觉,也可以将打乱的魔方再次还原,不过不会拆装。

如今,猫爸这种直觉退化了。

毕竟很久不玩了,他只能勉强还原一个面。

看着桌上这个被猫妹打乱的魔方,猫爸决定还原它。

不用直觉,用科学方法还原。

于是,有了今天这篇文章。

魔方常识

正阶魔方

正阶魔方有二阶,三阶,四阶......

二阶魔方

二阶魔方的英文名字叫作Pocket Rubik's Cube或Mini Cube,为2×2×2的立方体结构。本身只有8个角块,没有其他结构的方块。

结构与三阶魔方相近。

三阶魔方

三阶魔方的英文官方名字叫作Rubik's Cube,也就是用鲁比克教授的名字命名的,是当前最普遍的魔方种类。

它每个边有三个方块,官方版本魔方边长为57毫米,三阶魔方的总变化数是(8!×38×12!×212)/(2×2×3)=43,252,003,274,489,856,000或者约等于4.3x1019。

三阶魔方由一个连接着六个中心块的中心轴以及8个角块,12个棱块构成,当它们连接在一起的时候会形成一个整体,并且任何一面都可水平转动而不影响到其他方块。

在2011年3月出现了新型三阶——面包三阶,打破了三阶魔方立方体的常规设计。

其他阶魔方

四阶魔方的英文名字叫作Rubik's Revenge,直译过来是“魔方的复仇”。

五阶魔方的英文名字叫作Professor's Cube,直译过来是“专家(玩)的魔方”

此处省略若干阶魔方

十七阶魔方于2017年首次量产。

截止到2017年,最高阶的魔方为非官方的33阶魔方。

其他这些,不太常见。

异型魔方

异型魔方相对原始魔方的变化较大,但是原理基本上相同。

不少异形魔方都可以使用正阶魔方的复原方法或相似思路进行复原。

这些,也不太常见。

我们以常见的三阶魔方来学习。

魔方术语

魔方各层以英文首字母指代:

右层:R(Right)

左层:L(Left)

顶(上)层:U(Up)

底(下)层:D(Down)

正(前)层:F(Front)

背(后)层:B(Back)

魔方转动:

小写的r、l、u、d、f、b代表转动两层

另外M、E、S代表不同面的中间层,x、y、z代表魔方整体按R、U、F转动

转动方向:

顺时针转动90度,直接写各层字母

逆时针转动90度,在各层字母后缀(')

旋转180度,在各层字母后缀(2)

请看图:

Kociemba

有人写了一个Kociemba的python库,输入魔方的各面颜色,直接就求解了。

该代码在github上已经开源,需要研究其中算法的朋友,可以在github上搜索kociemba。

使用很简单的,输入各个面的每个块的颜色,自动生成还原方式:

上面是一位网友的测试数据。

程序使用没有难度,这个库的算法倒是值得研究研究。

今天,咱们通过另外一种方式来还原魔方。

一个神奇的网站

猫妹今天呢

在猫爸的启迪下,用一个神奇的网站来还原魔方。

网站打开后长这个样子:

这里面有二阶、三阶等魔方的还原方式。

我们直接看三阶,毕竟手里有一个三阶魔方嘛!

之前用二阶魔方也还原过,可以的。

第一步:我们先点击上图的clear,清空魔方着色。

第二步:把目前魔方的颜色输入到上图魔方中。

第三步:上图输入完毕后,点击Slove。网站会自动帮我们计算出来还原步骤,如下图:

第四步:大功告成

屏幕前的你,学会了吗?

如果你手头有个三阶魔方,或者二阶魔方,不妨试试哦!

网址的话,可以在公众号(和猫妹学Python)后台回复2023

进阶玩法

输入每个色块,有些繁琐。

有网友在上述基础上,用摄像头扫码魔方每个面,识别每个色块的颜色。

这样不用手动输入了,电脑拍照输入色块,这样更简单了。

虽然使用简单,但是摄像头识别色块,程序还是有一些工作量的。

好了,我们今天就学到这里吧!

如果遇到什么问题,咱们多多交流,共同解决。

我是猫妹,咱们下次见!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值