日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

魔方机器人需要特制魔方吗_解魔方的机器人攻略18 – 魔方快速算法

發布時間:2025/4/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 魔方机器人需要特制魔方吗_解魔方的机器人攻略18 – 魔方快速算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們的快速魔方算法要隆重登場了,在此缺席感謝一下來自Netherlands的Jaap Scherphuis同學。看前面這個頁面的第三名。

魔方表示法

咱們先看一串天書般的字母:UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR

這種表示法是由一個叫Mike Reid的兄弟首先使用的,它表示一個已經被解好的魔方。

先不要被這串字母嚇倒,看算法就像追mm一樣,要迎難而上。仔細觀察,你會發現其中只有六種字母:

U: Up

F: Front

R: Right

L: Left

D: Down

B: Back

其實這就是代表了空間坐標系的六個方向,就是傳說中的“眼觀六路”的那六路。

表示法中包含了12組雙字母的組合,分別代表了魔方的12個棱,第一組UF就表示Up和Front之間夾角的棱。

另外還包含了8組三字母的組合,分別代表了魔方的8個角,每個角由三塊顏色組成。看下面的示意圖:

魔方坐標系

等等,細心的朋友至少會想到兩個問題:

1,為什么沒有中心的數據?

因為魔方的六個心在任何旋轉過程中,相對位置都是不會變的,這點拆過魔方的人應該比較容易理解。

2,如果是一個打亂的魔方,棱和邊的顏色已經和中心不一樣了,這時候怎么表示?

讀取方法是:按照剛才那個天書字符串的順序,先找到UF位置所對應的棱,假設現在U是紅色,F是黃色;

那么對照圖里的中心,紅色的中心是R,黃色的中心是U,所以這時候的第一組棱字母是 RU

嗯,希望你看到這里還沒有暈車的感覺。

輸出表示法

這個程序的輸出是這個樣子:F- U+ F- D- L- D- F- U- L2 D-

FRL之類的字母依然表示六個面,F-表示前層逆時針轉90度,U+表示上層順時針轉90度,L2表示左邊層轉180度。

如果你是魔友的話,會經常看到這樣的字符串:F’UF’D'L’F'U’L2D’

這是魔方論壇上比較常見的“黑話”,其實就是默認順時針不加符號,逆時針的加一個單引號,180度的加2。

請注意這里的順時針和逆時針使用的是“觀察者迎著某個面看”的參照系,例如B’是從下往上看的逆時針,如果你沒有把腦袋鉆到桌子下,你事實上看到的是順時針旋轉。

改寫到C#

這段程序是用C寫的,說實話它的原理還比較復雜,有興趣的同學可以搜索“Thistlethwaite’s algorithm”

我直接依葫蘆畫瓢用C#把它重寫了一遍,請點擊這里下載源代碼。請主要要安裝VS2008或更高版本。

http://www.diy-robots.com/RubikSolver/RubikSolverSample.zip

補充:如何使用這個程序

鑒于很多朋友詢問如何運行這個程序,下載這段代碼,用C語言的編譯器編譯成Jaap.exe。然后在命令行輸入:

Jaap.exe UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR

輸出結果就是類似 F- U+ F- D- L- D- F- U- L2 D- 這樣的步驟。

注意這段程序沒有驗證功能,如果你輸入的顏色表達式錯誤,會導致程序死循環或者錯誤。以我的經驗看,普通電腦都能在1秒以內算完,如果你一秒鐘還沒有看到結果,就檢查檢查輸入吧。

總結

以上是生活随笔為你收集整理的魔方机器人需要特制魔方吗_解魔方的机器人攻略18 – 魔方快速算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。