設計破解三階魔方的算法,首先要明確的是兩點。
一個是輸入數據。
輸入的數據,就是立體魔方六個面,所對應的九個格子顏色,數據的特點是,有六種顏色,每一種顏色總計是九個,另外,六個面最中間所對應的顏色固定。
第二就是輸出數據,也就是計算的目的,得到還原魔方需要的最低步驟。
只要能達成這個條件,其他想要的數據,比如實現最低步驟的過程,也只是程序運算過程中,順便做出的簡單記錄。
在明確了輸入和輸出數據,前後框架差不多就出來了。
這就和張震發過來的算法包差不多,只是難度的級別上調了幾十、上百倍,甚至更高。
接下來,設計開始。
建模。
建模就是把現實問題變成數學問題,用數學的公式、代碼來表達出,魔方各個小格子之間的關係,以及可能做出的轉換方式。
這一過程有兩種方式。
一種是以空間位置爲基點,也就是固定了位置,顏色會發生變化;一種是以固定顏色小格子爲基點形成位置變換。
選定好建模的方式後,就進入真正設計的過程。
趙奕纔剛剛進入思考,就碰到了巨大的問題:如何能確定一種扭動,是讓魔方向着還原的方向靠近,而不是讓它變得更加混亂?
這是個超級難題。
破解了這個難題,幾乎等於完成了算法。
所以,此路不通。
重新想。
那麼換一種角度去考慮,可以尋找同樣顏色最多的面,以此爲基點去實現還原,就和多數人的選擇一樣,先還原三階魔方的一個面,其他就變得容易多了。
但是,科學是嚴謹的。
如何證明從相同顏色最多的面開始,實現還原的速度就是最快的?
如何證明先還原一個面是最快的?
趙奕纔剛開始設計程序,就碰到了一大堆的問題,他深吸了一口氣,邏輯思維到此結束。
接下來是因果思維時間。
趙奕瞭解算法設計的難度,他打開了系統界面,乾脆使用了一個科研幣。
【科研幣:15。】
【使用科研幣提升因果思維。】
【科研幣-1,輔助提升因果思維能力,獲得靈感激發效果。持續時間:六十分鐘。】
瞬間。
思維模式發生了改變。
趙奕再盯着電腦屏幕,思維就出現了跳躍,他沒有去糾結想到的難題,而是跳躍到輸入魔方的數據分析上。
比如,以每一面中心顏色爲基準,其他面相同顏色的小格子,轉換到對應中心面,所需要的最低步數。
比如,有多少格子緊挨着相同顏色的格子,還有它們所在的具體方位,都要詳細做出紀錄。
等等。
消耗科研幣提升了因果思維模式後,《因果律》和《聯絡律》的使用,都成爲下意識的事情,他一直不斷地進行思考,手指敲擊個不停的,把思考出的內容,放在鍵盤上轉換爲代碼。
編寫。
再編寫。
一個小時過去了。
趙奕用力按按額頭,大腦感覺異常的疲憊,他看了一眼精力數值:【精力:61/104。】
怪不得!
看了眼屏幕上的代碼,他乾脆咬牙一狠心,使用了四個學習幣。
【消耗學習幣提升精力!】
【精力+40。】
雖然賺學習幣並不難,每天都入賬超過二十個,但還是不習慣用來補充精力。
精力,能睡覺補充!
利用學習幣來補充精力,就像是玩遊戲充錢買經驗,實在有些過於奢侈了。
繼續!
【科研幣:14。】
【使用科研幣提升因果思維。】
【科研幣-1,輔助提升因果思維能力,獲得靈感激發效果。持續時間:六十分鐘。】
在繼續工作了半個多小時後,趙奕編寫了二十一項對輸入魔方的數據分析,他的手指停下來以後,下意識就使用了《因果律》,來測算數據是否對還原魔方有效。
利用這個方法,排除了三項不相干的分析數據,剩餘的十八種分析,都是對還原魔方有幫助的。
接下來,繼續做判斷。
一項扭動是否有助於還原魔方,是能夠利用《因果律》得出的。
找出其中有助於魔方還原的幾種或十幾種扭動方式,放在一起和所分析的數據進行對比。
這些就是條件。
當完善了所有條件以後,就能利用《聯絡律》來證明,所得出的結論產生的過程。
這就是因果思維方式。
先找到結果、完善條件,最後一步纔是尋求過程,有了過程以後,就能編寫代碼表達出來。
趙奕還是碰到了麻煩。
時間、精力。
他已經找到了算法設計的關鍵,但粗略的估計了一下,代碼最少要編寫幾千行,以他的工作效率,最少需要十個小時以上。
“算了,先睡覺!”
“明天再繼續!”
……
第二天趙奕早早的爬起來,打開電腦看了下論壇發的帖子。
帖子異常火爆!
單單是底下的回覆就超過了四千條。
因爲牽扯到熱搜的八卦,網絡上有好多媒體,都發布新聞對帖子內容進行轉載。
搜索網站的指數榜單上,新增了一條相關熱搜,名爲‘天才黑客列數據回覆賈虹寧’,熱度一躍上漲到了第三名。
這和帖子的內容有關。
一些存在爭議的八卦事件,當事人多數都是接受採訪,發表下自己的意見和看法,就算是發帖做出回覆,最多就是爆料一些消息、博取同情之類的。
趙奕發的帖子令人新奇,他直接列數據的做法,讓八卦的格調都提升好多。
另外,爭議也是火爆的原因。
帖子上列出的數據引起了大片的爭議,有一位知名數學博士發表看法說,‘破解三階魔方最優步驟,計算量龐大到不可想象,普通的家用電腦,肯定是無法計算的’。
他還表示,“暫時沒有切實有效的優化算法”。
同時。
網絡也有不少支持趙奕的聲音,認爲他不可能胡亂說出數據,也有其他專業人士表示,粗略的計算不能得出具體數據,但卻能夠判斷出,賈虹寧的魔方還原起來,比周俊凱的簡單一些,尤其是最後一次比試,差距更是非常的明顯。
趙奕覺得該站出來了。
雖然有一些支持他的聲音,但繼續下去也許會不利,確實應該做些什麼引導下輿論。
上學的時間到了。
他決定帶着Netbook去上學,到學校裡再進行發帖操作。
學校的氣氛也差不多。
因爲事情牽扯到學校的學生,學校裡有着大片的討論,幾乎所有人都知道了帖子,好多人都希望能問趙奕,具體是怎麼計算得出的結果。
“你們等等,我寫出來。”
趙奕去找孫老班說了下,打算利用自習課編輯個帖子,發佈到網絡上進行說明,沒想到王承敏校長直接找了過來。
“趙奕啊!”
王承敏關心道,“我看網上都在說你,你那個帖子的數據……”
一羣人把耳朵湊過來。
趙奕有點鬱悶的看向何榮華,“把魔方借我用一下。”
“好。”
何榮華馬上把魔方送過來。
趙奕看着手裡的魔方,手指快速的動來動去,十秒左右就完成了還原。
好多人都看呆了。
趙奕扭過頭對周圍說道,“幫忙計下數,每轉九十度,算一次,一百八十度算兩次。”
“好!”
一羣人認真的看。
趙奕故意把速度放的很慢,方便其他人進行計數,差不多有一分鐘時間,他轉動了有十七次,就端起了魔方說道,“這就是賈虹寧比賽中第一次還原前的魔方,我用了十七步變換出來,也就能十七次再變換回去。”
“嘶~~~”
這個操作別說是其他學生,連王承敏都聽的吸了一口涼氣。
他馬上拉着趙奕就去了校長辦公室,“快來!來!我給你拍個視頻,把這個發到網上,看誰再懷疑。”
趙奕笑笑跟了去。
他本來想發帖表述一下轉魔方的方式,但文字描述起來實在麻煩,拍視頻相對就簡單多了。