請(qǐng)記住本站域名:
黃金屋
規(guī)則系學(xué)霸 第七十三章 算法設(shè)計(jì)的關(guān)鍵
設(shè)計(jì)破解三階魔方的算法,首先要明確的是兩點(diǎn)。
一個(gè)是輸入數(shù)據(jù)。
輸入的數(shù)據(jù),就是立體魔方六個(gè)面,所對(duì)應(yīng)的九個(gè)格子顏色,數(shù)據(jù)的特點(diǎn)是,有六種顏色,每一種顏色總計(jì)是九個(gè),另外,六個(gè)面最中間所對(duì)應(yīng)的顏色固定。
第二就是輸出數(shù)據(jù),也就是計(jì)算的目的,得到還原魔方需要的最低步驟。
只要能達(dá)成這個(gè)條件,其他想要的數(shù)據(jù),比如實(shí)現(xiàn)最低步驟的過(guò)程,也只是程序運(yùn)算過(guò)程中,順便做出的簡(jiǎn)單記錄。
在明確了輸入和輸出數(shù)據(jù),前后框架差不多就出來(lái)了。
這就和張震發(fā)過(guò)來(lái)的算法包差不多,只是難度的級(jí)別上調(diào)了幾十、上百倍,甚至更高。
接下來(lái),設(shè)計(jì)開(kāi)始。
建模。
建模就是把現(xiàn)實(shí)問(wèn)題變成數(shù)學(xué)問(wèn)題,用數(shù)學(xué)的公式、代碼來(lái)表達(dá)出,魔方各個(gè)小格子之間的關(guān)系,以及可能做出的轉(zhuǎn)換方式。
這一過(guò)程有兩種方式。
一種是以空間位置為基點(diǎn),也就是固定了位置,顏色會(huì)發(fā)生變化;一種是以固定顏色小格子為基點(diǎn)形成位置變換。
選定好建模的方式后,就進(jìn)入真正設(shè)計(jì)的過(guò)程。
趙奕才剛剛進(jìn)入思考,就碰到了巨大的問(wèn)題:如何能確定一種扭動(dòng),是讓魔方向著還原的方向靠近,而不是讓它變得更加混亂?
這是個(gè)超級(jí)難題。
破解了這個(gè)難題,幾乎等于完成了算法。
所以,此路不通。
重新想。
那么換一種角度去考慮,可以尋找同樣顏色最多的面,以此為基點(diǎn)去實(shí)現(xiàn)還原,就和多數(shù)人的選擇一樣,先還原三階魔方的一個(gè)面,其他就變得容易多了。
但是,科學(xué)是嚴(yán)謹(jǐn)?shù)摹?p/>
如何證明從相同顏色最多的面開(kāi)始,實(shí)現(xiàn)還原的速度就是最快的?
如何證明先還原一個(gè)面是最快的?
趙奕才剛開(kāi)始設(shè)計(jì)程序,就碰到了一大堆的問(wèn)題,他深吸了一口氣,邏輯思維到此結(jié)束。
接下來(lái)是因果思維時(shí)間。
趙奕了解算法設(shè)計(jì)的難度,他打開(kāi)了系統(tǒng)界面,干脆使用了一個(gè)科研幣。
科研幣:15。
使用科研幣提升因果思維。
科研幣-1,輔助提升因果思維能力,獲得靈感激發(fā)效果。持續(xù)時(shí)間:六十分鐘。
瞬間。
思維模式發(fā)生了改變。
趙奕再盯著電腦屏幕,思維就出現(xiàn)了跳躍,他沒(méi)有去糾結(jié)想到的難題,而是跳躍到輸入魔方的數(shù)據(jù)分析上。
比如,以每一面中心顏色為基準(zhǔn),其他面相同顏色的小格子,轉(zhuǎn)換到對(duì)應(yīng)中心面,所需要的最低步數(shù)。
比如,有多少格子緊挨著相同顏色的格子,還有它們所在的具體方位,都要詳細(xì)做出紀(jì)錄。
等等。
消耗科研幣提升了因果思維模式后,因果律和聯(lián)絡(luò)律的使用,都成為下意識(shí)的事情,他一直不斷地進(jìn)行思考,手指敲擊個(gè)不停的,把思考出的內(nèi)容,放在鍵盤(pán)上轉(zhuǎn)換為代碼。
編寫(xiě)。
再編寫(xiě)。
一個(gè)小時(shí)過(guò)去了。
趙奕用力按按額頭,大腦感覺(jué)異常的疲憊,他看了一眼精力數(shù)值:精力:61/104。
怪不得!
看了眼屏幕上的代碼,他干脆咬牙一狠心,使用了四個(gè)學(xué)習(xí)幣。
消耗學(xué)習(xí)幣提升精力!
精力+40。
雖然賺學(xué)習(xí)幣并不難,每天都入賬超過(guò)二十個(gè),但還是不習(xí)慣用來(lái)補(bǔ)充精力。
精力,能睡覺(jué)補(bǔ)充!
利用學(xué)習(xí)幣來(lái)補(bǔ)充精力,就像是玩游戲充錢(qián)買(mǎi)經(jīng)驗(yàn),實(shí)在有些過(guò)于奢侈了。
繼續(xù)!
科研幣:14。
使用科研幣提升因果思維。
科研幣-1,輔助提升因果思維能力,獲得靈感激發(fā)效果。持續(xù)時(shí)間:六十分鐘。
在繼續(xù)工作了半個(gè)多小時(shí)后,趙奕編寫(xiě)了二十一項(xiàng)對(duì)輸入魔方的數(shù)據(jù)分析,他的手指停下來(lái)以后,下意識(shí)就使用了因果律,來(lái)測(cè)算數(shù)據(jù)是否對(duì)還原魔方有效。
利用這個(gè)方法,排除了三項(xiàng)不相干的分析數(shù)據(jù),剩余的十八種分析,都是對(duì)還原魔方有幫助的。
接下來(lái),繼續(xù)做判斷。
一項(xiàng)扭動(dòng)是否有助于還原魔方,是能夠利用因果律得出的。
找出其中有助于魔方還原的幾種或十幾種扭動(dòng)方式,放在一起和所分析的數(shù)據(jù)進(jìn)行對(duì)比。
這些就是條件。
當(dāng)完善了所有條件以后,就能利用聯(lián)絡(luò)律來(lái)證明,所得出的結(jié)論產(chǎn)生的過(guò)程。
這就是因果思維方式。
先找到結(jié)果、完善條件,最后一步才是尋求過(guò)程,有了過(guò)程以后,就能編寫(xiě)代碼表達(dá)出來(lái)。
趙奕還是碰到了麻煩。
時(shí)間、精力。
他已經(jīng)找到了算法設(shè)計(jì)的關(guān)鍵,但粗略的估計(jì)了一下,代碼最少要編寫(xiě)幾千行,以他的工作效率,最少需要十個(gè)小時(shí)以上。
“算了,先睡覺(jué)!”
“明天再繼續(xù)!”
……
第二天趙奕早早的爬起來(lái),打開(kāi)電腦看了下論壇發(fā)的帖子。
帖子異常火爆!
單單是底下的回復(fù)就超過(guò)了四千條。
因?yàn)闋砍兜綗崴训陌素裕W(wǎng)絡(luò)上有好多媒體,都發(fā)布新聞對(duì)帖子內(nèi)容進(jìn)行轉(zhuǎn)載。
搜索網(wǎng)站的指數(shù)榜單上,新增了一條相關(guān)熱搜,名為‘天才黑客列數(shù)據(jù)回復(fù)賈虹寧’,熱度一躍上漲到了第三名。
這和帖子的內(nèi)容有關(guān)。
一些存在爭(zhēng)議的八卦事件,當(dāng)事人多數(shù)都是接受采訪,發(fā)表下自己的意見(jiàn)和看法,就算是發(fā)帖做出回復(fù),最多就是爆料一些消息、博取同情之類的。
趙奕發(fā)的帖子令人新奇,他直接列數(shù)據(jù)的做法,讓八卦的格調(diào)都提升好多。
另外,爭(zhēng)議也是火爆的原因。
帖子上列出的數(shù)據(jù)引起了大片的爭(zhēng)議,有一位知名數(shù)學(xué)博士發(fā)表看法說(shuō),‘破解三階魔方最優(yōu)步驟,計(jì)算量龐大到不可想象,普通的家用電腦,肯定是無(wú)法計(jì)算的’。
他還表示,“暫時(shí)沒(méi)有切實(shí)有效的優(yōu)化算法”。
同時(shí)。
網(wǎng)絡(luò)也有不少支持趙奕的聲音,認(rèn)為他不可能胡亂說(shuō)出數(shù)據(jù),也有其他專業(yè)人士表示,粗略的計(jì)算不能得出具體數(shù)據(jù),但卻能夠判斷出,賈虹寧的魔方還原起來(lái),比周俊凱的簡(jiǎn)單一些,尤其是最后一次比試,差距更是非常的明顯。
趙奕覺(jué)得該站出來(lái)了。
雖然有一些支持他的聲音,但繼續(xù)下去也許會(huì)不利,確實(shí)應(yīng)該做些什么引導(dǎo)下輿論。
上學(xué)的時(shí)間到了。
他決定帶著Netbook去上學(xué),到學(xué)校里再進(jìn)行發(fā)帖操作。
學(xué)校的氣氛也差不多。
因?yàn)槭虑闋砍兜綄W(xué)校的學(xué)生,學(xué)校里有著大片的討論,幾乎所有人都知道了帖子,好多人都希望能問(wèn)趙奕,具體是怎么計(jì)算得出的結(jié)果。
“你們等等,我寫(xiě)出來(lái)。”
趙奕去找孫老班說(shuō)了下,打算利用自習(xí)課編輯個(gè)帖子,發(fā)布到網(wǎng)絡(luò)上進(jìn)行說(shuō)明,沒(méi)想到王承敏校長(zhǎng)直接找了過(guò)來(lái)。
“趙奕啊!”
王承敏關(guān)心道,“我看網(wǎng)上都在說(shuō)你,你那個(gè)帖子的數(shù)據(jù)……”
一群人把耳朵湊過(guò)來(lái)。
趙奕有點(diǎn)郁悶的看向何榮華,“把魔方借我用一下。”
“好。”
何榮華馬上把魔方送過(guò)來(lái)。
趙奕看著手里的魔方,手指快速的動(dòng)來(lái)動(dòng)去,十秒左右就完成了還原。
好多人都看呆了。
趙奕扭過(guò)頭對(duì)周?chē)f(shuō)道,“幫忙計(jì)下數(shù),每轉(zhuǎn)九十度,算一次,一百八十度算兩次。”
“好!”
一群人認(rèn)真的看。
趙奕故意把速度放的很慢,方便其他人進(jìn)行計(jì)數(shù),差不多有一分鐘時(shí)間,他轉(zhuǎn)動(dòng)了有十七次,就端起了魔方說(shuō)道,“這就是賈虹寧比賽中第一次還原前的魔方,我用了十七步變換出來(lái),也就能十七次再變換回去。”
“嘶~~~”
這個(gè)操作別說(shuō)是其他學(xué)生,連王承敏都聽(tīng)的吸了一口涼氣。
他馬上拉著趙奕就去了校長(zhǎng)辦公室,“快來(lái)!來(lái)!我給你拍個(gè)視頻,把這個(gè)發(fā)到網(wǎng)上,看誰(shuí)再懷疑。”
趙奕笑笑跟了去。
他本來(lái)想發(fā)帖表述一下轉(zhuǎn)魔方的方式,但文字描述起來(lái)實(shí)在麻煩,拍視頻相對(duì)就簡(jiǎn)單多了。
快捷鍵: 上一章("←"或者"P") 下一章("→"或者"N") 回車(chē)鍵:返回書(shū)頁(yè)