小朋友們好聪全,大朋友們好!
我是貓妹辅辩,一名愛上Python編程的小學(xué)生难礼。
歡迎和貓妹一起,趣味學(xué)Python玫锋。
今日主題
今天呢蛾茉,我們學(xué)習(xí)一點(diǎn)關(guān)于魔方的知識。
魔方撩鹿,又叫魯比克方塊臀稚,最早是由匈牙利布達(dá)佩斯建筑學(xué)院厄爾諾·魯比克教授于1974年發(fā)明的機(jī)械益智玩具。
通常意義下的魔方三痰,是指狹義的三階魔方吧寺。
三階魔方形狀通常是正方體,由有彈性的硬塑料制成散劫。
常規(guī)競速玩法是將魔方打亂稚机,然后在最短的時間內(nèi)復(fù)原。
廣義的魔方获搏,指各類可以通過轉(zhuǎn)動打亂和復(fù)原的幾何體赖条。
魔方與華容道、法國的單身貴族(獨(dú)立鉆石棋)并稱為智力游戲界的三大不可思議常熙。
你玩過魔方嗎纬乍?
它雖然小巧,但是可以變化出很多種組合裸卫。
你手頭有魔方嗎仿贬?
如果有的話,多長時間可以將其還原呢墓贿?
咱們現(xiàn)在這個年代啊茧泪,真是太幸福了,買什么東西都很方便聋袋。
足不出戶队伟,只需動動手指,東西就會快遞到家門口幽勒。
比起貓爸那個年代嗜侮,真是太方便了,一個天上,一個地上锈颗,差別就是這么大缠借。
貓妹幼兒園就知道有個東西叫魔方了,并且買過宜猜,也拿在手里把玩過泼返。
貓爸呢?
高中時候才接觸過魔方姨拥,沒看錯绅喉,就是高中。
他的同桌不知從哪里弄來個魔方叫乌,玩得不亦樂乎柴罐,除了正常的旋轉(zhuǎn),把打亂圖形還原外憨奸,還可以把它拆零碎了又組裝好革屠,可謂爐火純青。
受到同桌的誘惑排宰,貓爸也買了一個似芝。
憑著直覺,也可以將打亂的魔方再次還原板甘,不過不會拆裝党瓮。
如今,貓爸這種直覺退化了盐类。
畢竟很久不玩了寞奸,他只能勉強(qiáng)還原一個面。
看著桌上這個被貓妹打亂的魔方在跳,貓爸決定還原它枪萄。
不用直覺,用科學(xué)方法還原猫妙。
于是瓷翻,有了今天這篇文章。
魔方常識
正階魔方
正階魔方有二階吐咳,三階逻悠,四階......
二階魔方
二階魔方的英文名字叫作Pocket Rubik's Cube或Mini Cube,為2×2×2的立方體結(jié)構(gòu)。本身只有8個角塊韭脊,沒有其他結(jié)構(gòu)的方塊。
結(jié)構(gòu)與三階魔方相近单旁。
三階魔方
三階魔方的英文官方名字叫作Rubik's Cube沪羔,也就是用魯比克教授的名字命名的,是當(dāng)前最普遍的魔方種類。
它每個邊有三個方塊蔫饰,官方版本魔方邊長為57毫米琅豆,三階魔方的總變化數(shù)是(8!×38×12!×212)/(2×2×3)=43,252,003,274,489,856,000或者約等于4.3x1019。
三階魔方由一個連接著六個中心塊的中心軸以及8個角塊篓吁,12個棱塊構(gòu)成茫因,當(dāng)它們連接在一起的時候會形成一個整體,并且任何一面都可水平轉(zhuǎn)動而不影響到其他方塊杖剪。
在2011年3月出現(xiàn)了新型三階——面包三階冻押,打破了三階魔方立方體的常規(guī)設(shè)計。
其他階魔方
四階魔方的英文名字叫作Rubik's Revenge盛嘿,直譯過來是“魔方的復(fù)仇”洛巢。
五階魔方的英文名字叫作Professor's Cube,直譯過來是“專家(玩)的魔方”
此處省略若干階魔方
十七階魔方于2017年首次量產(chǎn)次兆。
截止到2017年稿茉,最高階的魔方為非官方的33階魔方。
其他這些芥炭,不太常見漓库。
異型魔方
異型魔方相對原始魔方的變化較大,但是原理基本上相同园蝠。
不少異形魔方都可以使用正階魔方的復(fù)原方法或相似思路進(jìn)行復(fù)原米苹。
這些,也不太常見砰琢。
我們以常見的三階魔方來學(xué)習(xí)蘸嘶。
魔方術(shù)語
魔方各層以英文首字母指代:
右層:R(Right)
左層:L(Left)
頂(上)層:U(Up)
底(下)層:D(Down)
正(前)層:F(Front)
背(后)層:B(Back)
魔方轉(zhuǎn)動:
小寫的r、l陪汽、u训唱、d、f挚冤、b代表轉(zhuǎn)動兩層
另外M况增、E、S代表不同面的中間層训挡,x澳骤、y、z代表魔方整體按R澜薄、U为肮、F轉(zhuǎn)動
轉(zhuǎn)動方向:
順時針轉(zhuǎn)動90度,直接寫各層字母
逆時針轉(zhuǎn)動90度肤京,在各層字母后綴(')
旋轉(zhuǎn)180度颊艳,在各層字母后綴(2)
請看圖:
Kociemba
有人寫了一個Kociemba的python庫,輸入魔方的各面顏色,直接就求解了棋枕。
該代碼在github上已經(jīng)開源白修,需要研究其中算法的朋友,可以在github上搜索kociemba重斑。
使用很簡單的兵睛,輸入各個面的每個塊的顏色,自動生成還原方式:
上面是一位網(wǎng)友的測試數(shù)據(jù)窥浪。
程序使用沒有難度祖很,這個庫的算法倒是值得研究研究。
今天寒矿,咱們通過另外一種方式來還原魔方突琳。
一個神奇的網(wǎng)站
貓妹今天呢
在貓爸的啟迪下,用一個神奇的網(wǎng)站來還原魔方符相。
網(wǎng)站打開后長這個樣子:
這里面有二階拆融、三階等魔方的還原方式。
我們直接看三階啊终,畢竟手里有一個三階魔方嘛镜豹!
之前用二階魔方也還原過,可以的蓝牲。
第一步:我們先點(diǎn)擊上圖的clear趟脂,清空魔方著色。
第二步:把目前魔方的顏色輸入到上圖魔方中例衍。
第三步:上圖輸入完畢后昔期,點(diǎn)擊Slove。網(wǎng)站會自動幫我們計算出來還原步驟佛玄,如下圖:
第四步:大功告成
屏幕前的你硼一,學(xué)會了嗎?
如果你手頭有個三階魔方梦抢,或者二階魔方般贼,不妨試試哦!
網(wǎng)址的話奥吩,可以在公眾號(和貓妹學(xué)Python)后臺回復(fù)2023
進(jìn)階玩法
輸入每個色塊哼蛆,有些繁瑣。
有網(wǎng)友在上述基礎(chǔ)上霞赫,用攝像頭掃碼魔方每個面腮介,識別每個色塊的顏色。
這樣不用手動輸入了绩脆,電腦拍照輸入色塊萤厅,這樣更簡單了橄抹。
雖然使用簡單靴迫,但是攝像頭識別色塊惕味,程序還是有一些工作量的。
好了玉锌,我們今天就學(xué)到這里吧名挥!
如果遇到什么問題,咱們多多交流主守,共同解決禀倔。
我是貓妹,咱們下次見参淫!