第(2/3)頁(yè) “到現(xiàn)在為止,還沒(méi)有高效的計(jì)算方法,能確定還原三階魔方的最少步驟。” “這在全世界都是個(gè)難題。” 確實(shí)。 和小胡子說(shuō)的一樣,李霖質(zhì)疑了所謂‘最少步數(shù)’。 李霖可能不是針對(duì)他,說(shuō)的也都是事實(shí),但趙奕還是感覺(jué)很不爽。 沒(méi)有高效的計(jì)算方法? 世界難題? 老子馬上就給它破解掉! …… 趙奕帶著破解難題的決心,又奢侈的使用了個(gè)科研幣,花費(fèi)兩個(gè)小時(shí)時(shí)間,終于把判斷篩選程序做了出來(lái)。 這是算法的核心。 能判斷扭動(dòng)是否會(huì)讓魔方變得更混亂,就能摒棄掉很大一部分計(jì)算,完善算法的目的就在于此。 接下來(lái)的工作,就是讓魔方做扭動(dòng)。 立體的魔方有三種方向的扭動(dòng)可能,每一個(gè)方向的可能為9次,總計(jì)就是27種可能(扭轉(zhuǎn)180度也算作一步)。 第一步篩選程序要判斷27次。 第二步做一個(gè)簡(jiǎn)單的剔除重復(fù),也就是讓第二步扭動(dòng)后的魔方,不能和第一步扭動(dòng)后或未進(jìn)行扭動(dòng)的魔方狀態(tài)重復(fù),直接就能排除五種可能。 每一個(gè)做判斷的次數(shù)就只有22次。 然后繼續(xù)、再繼續(xù)。 這就是最普通的全覆蓋計(jì)算辦法,完全就是依靠計(jì)算機(jī)強(qiáng)大的性能,來(lái)推算魔方的還原步驟。 當(dāng)然了。 計(jì)算量肯定是龐大的驚人,只要稍稍混亂一些的魔方,普通家用電腦的性能肯定是不夠用的。 這時(shí)篩選程序就起作用了。 每一步利用篩選程序,都會(huì)篩掉很多的計(jì)算分支,而越是靠近魔方還原,讓魔方變得更混亂的扭動(dòng)就越多,往上乘的底數(shù)也就越來(lái)越小,直到最后一步只有一種能讓魔方還原。 這大大減少了計(jì)算量。 但,還是不夠。 魔方處在非常混亂的狀態(tài),需要的步數(shù)一旦超過(guò)18次,計(jì)算量依舊會(huì)是個(gè)天文數(shù)字。 趙奕用了個(gè)‘篩選排除對(duì)比法’。 針對(duì)魔方扭動(dòng)的每一步,都會(huì)篩出讓魔方更混亂的步驟,中間每個(gè)分支的一小步,都是篩選固定的22次,根據(jù)魔方越接近還原,使其變得更混亂的扭動(dòng)就越多的原則,同代的篩選就可以做出對(duì)比,篩選數(shù)量少的分支,就可以直接暫停運(yùn)行。 這樣計(jì)算量再次大大降低。 趙奕粗略的估算了下,需要十五步還原的魔方,可能的篩選次數(shù),最大也不超過(guò)三千萬(wàn)次。 當(dāng)然。 具體還是要運(yùn)行才知道。 趙奕隨意吃了點(diǎn)東西,又加班了兩個(gè)小時(shí),一直到晚上十二點(diǎn)多,才終于寫(xiě)完了代碼。 用了一個(gè)學(xué)習(xí)幣補(bǔ)充精力,他的眼球中還是布滿血絲。 算了! 還是明天再調(diào)試吧! 他正準(zhǔn)備關(guān)電腦的時(shí)候,就看到企鵝多了個(gè)消息,是一個(gè)老年書(shū)生的頭像。 打開(kāi)一看。 來(lái)自“計(jì)算機(jī)技術(shù)交流群”的劉教授? “劉教授?” 第(2/3)頁(yè)