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