三階魔方還原的13種程序實現

三階魔方還原的13種程序實現

文末附程序下載

src:http://tomas.rokicki.com/cubecontest/winners.html

譯者:WilliamYu
Copyright © 2018 本文遵從GNU自由文檔許可(Free Document License)條款,歡迎轉載、散佈。
翻譯不足之處,萬望指正,郵箱[email protected]

冠軍是來自於Ann Arbor, Michigan的Tomas Sirgedas,他提供了一種非常切實可行的並且只有874個C++字符的程序!對於我設定的魔方狀態,這套程序的平均解決步數是16.03步,並且平均每種耗時僅僅64毫秒。他的總成績是非常不可思議的7901;這套程序 是十分可信的。

第二名是來自Darmstadt, Germany的 Stefan Pochmann,他用C++實現了Thistlethwaite’s algorithm算法,他的程序總得分爲15,278,總計1311個字符,平均197毫秒得出結果,每個魔方基本上在16.72步還原。即便這個程序還不夠好的話他也很可能會獲得第二名(?),由於所有提交者中Perl提供了只有528個字符的最短的程序,平均佔用15毫秒得出結果,並且平均327,63步復原一個魔方。

三等獎給了Jaap Scherphuis,來自Delft, the Netherlands,他再次用C++實現了Thistlethwaite’s algorithm算法。他的程序總計2059個字符,平均154毫秒得出結果,並且平均執行16.04步復原魔, 總得分21,599。此外,第一名和第二名都是歸功於Jaap和他的網站算法的幫助。(原句:Furthermore, both the first and second place winners credit Jaap and his site for help with the algorithms! )

第四名是來自Gennevilliers, France的Antony Boucher ,他使用了四步連續的IDA*搜索算法來複原所有的十字到特定狀態,如果失敗了,就 復原頂部十字,然後復原剩下的棱塊兒,接着用預先設定好的算法復原角塊兒。他用C語言編寫的程序使用了1628個字符,獲得了驚人的平均22毫秒得出結果的成績,對於我設定的數據,平均29.49步復原模仿,並且最終得分25,061分。

我設置的實驗數據包括了所有的單步轉動魔方狀態,18種兩步轉動混亂魔方,18種3步,和46種隨機混亂狀態。

按最終成績排列的最高分記錄如下:

Place名稱大小速度步驟數得分
1Tomas Sirgedas, Ann Arbor, MI, USA8746416.037901
2Stefan Pochmann, Darmstadt, Germany131119716.7215278
3Jaap Scherphuis, Delft, the Netherlands205915416.0421599
4Antony Boucher, Gennevilliers, France16282229.4925061
5David Barr, Laurel, MD, USA149915535.0334394
6Charles Tsai, Canton, MA, USA22131078.7687322
7Mikael Klasson, Linköping, Sweden21901088.3496925
8Grant Tregay, West Chicago, IL, USA40091059.17118843
9Adrian Sandor, Hong Kong, China199267054.65127423
10Yuri Pertsovski, Hazorea, Israel3013298.82149467
11Joe Lindström, Linköping, Sweden2054160039.96172363
12Justin Legakis351721293.4233883
*Stefan Pochmann, Darmstadt, Germany52815327.6389089

點擊表格名稱欄目下載相應程序。
轉載請註明出處。

2018.02.05_WilliamYu

点赞