第一百零九章 搭配
“回溯法又叫做試探法,實(shí)際是一種選優(yōu)的方法,而這個(gè)N皇后問(wèn)題,其實(shí)應(yīng)該算回溯法中一個(gè)經(jīng)典的案例?!泵蠅?mèng)一邊看著哥哥一邊解釋道。
孟響連連點(diǎn)頭。
請(qǐng)開始你的表演。
“回溯法的基本思想就是:從一條路往前走,能進(jìn)則進(jìn),不能進(jìn)則退回來(lái),換一條路再試。而這實(shí)際就是窮舉出所有可能,然后從中找出滿足要求的可能或者最優(yōu)的情況,從而得到解。”
孟夢(mèng)說(shuō)完,一邊在紙上畫著一邊說(shuō)道:“我們用一個(gè)N*N的矩陣來(lái)表示棋盤,然后我們把當(dāng)前行和當(dāng)前列分別設(shè)為第一行和第一列?!?p> “矩陣那個(gè)不是沒(méi)學(xué)……”孟響小聲問(wèn)道。
迎接他的是中性筆的筆尖。
仿佛他只要敢繼續(xù)說(shuō)話,妹妹就會(huì)殺哥證道一樣。
他連忙閉上了嘴,腦中飛快思考。
這不就是數(shù)組嘛。
說(shuō)得這么高大上!
孟響同學(xué)心里不服氣,但是人在筆尖下,不得不低頭。
孟夢(mèng)見哥哥害怕,滿意地收回了筆,繼續(xù)給哥哥講起如果用回溯法,怎么解N皇后問(wèn)題的思路來(lái)。
教室里并不安靜,高一高二所在的前排座位,大家的議論聲,聲聲入耳,時(shí)不時(shí)還有兩人之間的不同意見的爭(zhēng)論聲。
高三四大天王都是孤軍奮戰(zhàn),一個(gè)個(gè)正在埋頭書寫。他們選擇的方案都是先畫出模型,然后再?gòu)淖詈?jiǎn)4皇后開始往下推一兩次之后寫代碼,寫完代碼之后再慢慢優(yōu)化,畢竟,這種題目他們幾乎都有練過(guò),雖然時(shí)間可能比較久遠(yuǎn),但是經(jīng)歷了多次大賽以及長(zhǎng)久練習(xí)的他們,無(wú)論是經(jīng)驗(yàn)上還是代碼能力上,都比高一高二的學(xué)生只強(qiáng)不弱。
張棟梁走下講臺(tái),慢慢圍著偌大的多媒體教室轉(zhuǎn)了一圈,兩圈??戳丝瓷砼哉谟懻摰谋娙耍X(jué)得自己的這個(gè)職業(yè)選擇非常正確,他喜歡和學(xué)生們待在一起,更加喜歡中學(xué)的這種朝氣蓬勃。
“所以呢,這個(gè)回溯的解法基本就是這個(gè)樣子。只是,如果用不同的數(shù)據(jù)結(jié)構(gòu),或者是檢查時(shí)候的條件不同,應(yīng)該效率不同?!闭f(shuō)完后,孟夢(mèng)放下了筆。
孟響聽完妹妹說(shuō)的方法,沉思了幾秒鐘之后,眼前一亮。
顯然,他已經(jīng)理解了這個(gè)方法的思路。
他抬起頭來(lái),看到張老師正站在妹妹身后看著兩人的草稿紙。
“張老師好。”孟響下意識(shí)地說(shuō)道。
聽到哥哥的話,妹妹嚇了一跳,回頭看到張老師正站在自己身后,連忙也跟著給老師問(wèn)好。
張棟梁笑著點(diǎn)了點(diǎn)頭,他已經(jīng)站在孟夢(mèng)身后聽了老半天了,這個(gè)小女孩講解的思路很清晰,至少,在數(shù)學(xué)思想和算法選擇上沒(méi)有什么問(wèn)題。
其他的,就只看怎么寫代碼了。
雖然方法和思想上選擇是正確的,但是數(shù)據(jù)結(jié)構(gòu)選擇和優(yōu)化策略不當(dāng),寫出來(lái)代碼的運(yùn)行效率會(huì)天差地別,甚至幾百倍上萬(wàn)倍的差距。
“你們繼續(xù),講得非常到位,好好寫代碼?!睆垪澚阂妰扇税l(fā)現(xiàn)了他,笑著鼓勵(lì)道,然后繼續(xù)朝后面走去。
孟夢(mèng)不好意思的低下了頭,她可不會(huì)寫真代碼,而書上大部分都是偽代碼,并不影響她閱讀。
“哥哥,你聽懂了嗎?”孟夢(mèng)對(duì)哥哥問(wèn)道。
孟響這次很有自信地點(diǎn)了點(diǎn)頭,他看了看時(shí)間,才剛剛過(guò)去8分鐘而已。
“要不,我們也試試寫寫?”孟響有些手癢,小聲提議道。
孟夢(mèng)從口袋里掏出了一只筆,遞給哥哥,小臉微紅,小聲說(shuō)道:“可是,我不會(huì)寫代碼的?!?p> 孟響接過(guò)筆,聽到妹妹的話之后,他又一次心理平衡了,小天才妹妹不會(huì)寫,現(xiàn)在就輪到他,孟·白班編程·響發(fā)揮的時(shí)候了。
“沒(méi)事,我會(huì)寫。我一邊寫一遍解釋給你聽,你幫我驗(yàn)證思路有沒(méi)有錯(cuò)誤,我寫,你把關(guān)。”
聽到這話,孟夢(mèng)也眼前一亮。
聽上去,是個(gè)不錯(cuò)的主意。
而且,她是和哥哥一起在努力!想到這,她心里有些甜甜的。
“那好的嘛!但是,你要是代碼格式什么的錯(cuò)了,可不能賴我?!泵蠅?mèng)甜甜地答應(yīng)之后,又說(shuō)道。
“哼!放心,格式什么的這輩子都不會(huì)錯(cuò)的?!泵享懲瑢W(xué)對(duì)妹妹這種不信任自己的行為予以官方譴責(zé)!他這兩個(gè)多星期,寫了至少150張A4紙的代碼,而且還是用的雙面寫加八號(hào)字體。從一開始的錯(cuò)誤百出,到現(xiàn)在一天都出不了幾次錯(cuò),他可是很努力的。
C語(yǔ)言的語(yǔ)法規(guī)則和基本頭函數(shù)在他眼里,就像RB小電影里那些著名影星一樣……扯遠(yuǎn)了。
“那我就相信哥哥一次吧?!泵蠅?mèng)雖然有些狐疑,但還是打心底里相信了哥哥。
兩人翻過(guò)一頁(yè),一邊討論一邊開始寫了起來(lái)。
時(shí)間一分一秒的過(guò)去。
“李神,怎么樣?!币粋€(gè)男生寫完代碼之后,把草稿紙遞給旁邊的一個(gè)高高大大的男生。他頭一天晚上才看了這個(gè)題目,此時(shí)強(qiáng)行靠著記憶在十多分鐘內(nèi)寫了出來(lái)。雖然方法不是最好的,但是至少他們組也有個(gè)可以上交的東西了。
“我看看?!北缓盀槔钌竦哪猩舆^(guò)草稿紙,和另外兩人一起開始細(xì)細(xì)看了起來(lái)。
……
“這個(gè)我不應(yīng)該用二維數(shù)組。”高三參加集訓(xùn)隊(duì)的那名學(xué)長(zhǎng)寫完之后,心里運(yùn)算了幾次之后,立馬就看出了問(wèn)題。
他使用的是二維數(shù)組來(lái)表示棋盤,但是寫的函數(shù)使用次數(shù)太多了,讓他覺(jué)得非常笨重,效率極差。
發(fā)現(xiàn)了問(wèn)題之后,他開始第一次修改代碼。
……
“我只會(huì)遞歸,這個(gè)真沒(méi)辦法。”高二一名女生看著身邊比自己還“漂亮”幾分的男同學(xué),有些尷尬地說(shuō)道。而身旁的男生看著模擬圖解抓耳撓腮。
時(shí)間太少了,他一緊張就斷了思路。
要是能穿女裝就好了,他發(fā)現(xiàn)自己只要穿女裝,就有各項(xiàng)buff加成,30分鐘內(nèi)解除這個(gè)問(wèn)題并不是多么困難。
想到這,他又一陣懊悔。
在他糾結(jié)自己就應(yīng)該穿女裝時(shí),眼前的女同學(xué)絲毫不知道他內(nèi)心的危險(xiǎn)想法。
張棟梁繞著底下又轉(zhuǎn)了一圈之后,回到了講臺(tái)上,時(shí)間已經(jīng)過(guò)去了15分鐘。