“所以你是想讓我們幫你改良抄襲的檢測工具?”
“嗯,搞定了那可是大功一件,我保證你獎(jiǎng)學(xué)……好吧,你也不缺獎(jiǎng)學(xué)金,回滬海我請你吃飯吧,金茂頂樓。”
“哇,這么奢侈的嗎。”
“是啊,這可是大項(xiàng)目,怎么樣,幫兄弟個(gè)忙唄?”
“行,我試試,不過話先說在前面,程序語言上我可沒你想象中這么厲害。”
“是你比你想象中厲害的多才對(duì)。”李巖搖搖頭,雖然吳斌沒有幫他解決過什么實(shí)際的代碼問題,但李巖對(duì)他的學(xué)力實(shí)在太放心了,但凡是這位大佬用心鉆研過的東西,都能達(dá)到常人無法理解的境界。
兩人都屬于雷厲風(fēng)行的性格,所以吃完飯,吳斌和林紫琪直接就跟著李巖來到了學(xué)生會(huì)辦公室。
【肩負(fù)時(shí)代使命,匯聚青春力量!】
一進(jìn)門,就是滿墻各種黨報(bào)和宣傳字眼,可以說相當(dāng)?shù)募t,讓人看一眼就使命感滿滿。
在李巖的帶領(lǐng)下,吳斌認(rèn)識(shí)了紀(jì)檢部的副主席唐成文。
得知吳斌是來幫忙解決問題的時(shí)候唐成文立馬表示了熱烈的歡迎。
去年吳斌就從李巖這得知了科大的學(xué)生會(huì)沒有那種傳說中的“官僚氣”,大家都是把學(xué)生會(huì)當(dāng)作了一個(gè)鍛煉能力的地方,所以氛圍很不錯(cuò)。
雖然吳斌也聽說過有些學(xué)生加入學(xué)生會(huì)之后會(huì)打起官腔,大權(quán)在握后甚至干些結(jié)黨私營的事情,但他真的很難想象那會(huì)是種什么樣的光景。
互相客氣幾句后唐成文向吳斌敘述了一下作弊的現(xiàn)象以及范圍。
吳斌聽完了然的點(diǎn)點(diǎn)頭。
總之就是他并不需要去研究抄襲是怎么發(fā)生的,而是要研究出一個(gè)更好的自動(dòng)程序從一堆提交的昨夜里有效的把抄的代碼給招出來。
‘有點(diǎn)意思’
這讓吳斌聯(lián)想到他在論壇上遇到過的一個(gè)小游戲,內(nèi)容是給你兩份c代碼,你給它們之間的相似度打個(gè)分,是一種對(duì)語言理解的有效訓(xùn)練。
“我試試吧。”
代碼界的江湖高手吳斌已經(jīng)在各大論壇見識(shí)了不少,不過他現(xiàn)在身在科大,會(huì)遇到什么樣的道行的黑山老妖還真不知道。
“真聰明啊……”
刷完幾組代碼,吳斌嘴角翹了翹,這個(gè)寫代碼的人明顯知道會(huì)有人檢測代碼的相似度,所以故意把代碼給改復(fù)雜了,如果要人工一一來鑒定的話,的確費(fèi)時(shí)費(fèi)力。
另外還有直接把代碼拷貝過來的同學(xué),應(yīng)該都是些抱大腿的同學(xué),可以說完全是不勞而獲,雖然說這是人的天性,但肯定不是什么好行為啊。
‘不過這個(gè)實(shí)驗(yàn)設(shè)計(jì)的的確有些枯燥,估計(jì)大多數(shù)同學(xué)沒興趣認(rèn)真做吧。’
但錯(cuò)的就是錯(cuò)的,養(yǎng)成這種習(xí)慣對(duì)于學(xué)業(yè)肯定沒有任何好處。
“怎么樣,有難度嗎?”站在身后的唐成文問。
“還行,給我點(diǎn)時(shí)間就好。”
“那就太好了。”唐成文說完小聲問李巖:“你還認(rèn)識(shí)信院的朋友?”
“哦不是,他是我同學(xué),物院的。”
“物院現(xiàn)在這么全能了嗎!?”唐成文驚道。
“沒,就他一個(gè),他興趣愛好比較廣泛。”
“優(yōu)秀……”
兩人聊天間吳斌正做著問題分析,從本質(zhì)上來說,檢查抄代碼的問題其實(shí)是給定兩份代碼p1和p2。
要求d(p1,p2)它們之間的“距離”,距離越小則抄襲嫌疑越大。
解決問題的前提自然是找到問題,目前這么多代碼看下來,吳斌差不多在心里做了個(gè)總結(jié)。
用的最多的方法是修改注釋、變量名、大小寫等無關(guān)信息。接著是代碼重排、風(fēng)格修改等,例如用indent工具過濾一下代碼,要知道每個(gè)人都有自己的編程風(fēng)格,這么一改,肉眼看起來可就大不一樣了。
另外兩種比較有技術(shù)性,一是增加或刪除代碼中的冗余成分,例如增加一些沒用的代碼,或者刪掉一些打印的調(diào)試信息。
二是對(duì)數(shù)據(jù)結(jié)構(gòu)、循環(huán)、局部代碼做等價(jià)的重寫,拆分、合并函數(shù)。
找出問題,吳斌第一件需要做的事情就是優(yōu)化編譯器編譯代碼,這一點(diǎn)很重要,可以把很多手工改過的等價(jià)代碼優(yōu)化成同樣的二進(jìn)制代碼,接著再取得函數(shù)的指令序列。
這樣一來,除了對(duì)數(shù)據(jù)結(jié)構(gòu)、循環(huán)、局部代碼做等價(jià)的重寫這種最具有技術(shù)性的方法外,其他三種作弊方法就都沒用了。
因?yàn)樵诰幾g器眼里,甭管你怎么縮進(jìn),怎么調(diào)整,函數(shù)編譯出來都是一個(gè)樣子。
看著吳斌在電腦上噼里啪啦的打著代碼,后面唐成文和林紫琪都張大了嘴。
林紫琪雖然在實(shí)驗(yàn)室時(shí)知道吳斌對(duì)設(shè)計(jì)程序很有一套,但如今親眼見到,還是覺得很震撼。
‘這熟練度也太高了吧……’
將程序的相似度建模城一個(gè)二分圖的最大權(quán)匹配問題后,吳斌回過頭對(duì)唐成文說:“剩下的我拷回宿舍在弄吧,估計(jì)要不少時(shí)間,這樣可以嗎?”
“當(dāng)然沒問題。”唐成文連連點(diǎn)頭,“那我就先謝謝你幫我們解決這么大一個(gè)麻煩了。”
雖然唐成文并不能看懂吳斌做了什么,但他這種氣定神閑的樣子讓他覺得沒點(diǎn)本事的人真裝不出來。
“客氣。”
最近一周吳斌都在瘋狂的看物理論文,如今停下來搞點(diǎn)別的,倒也讓他感覺不錯(cuò),甚至覺得有些新靈感已經(jīng)在孕育中了,再稍微加把勁,就能想出來。
離開學(xué)生會(huì),林紫琪先離隊(duì)去了實(shí)驗(yàn)室,吳斌則和李巖一起回到了宿舍。
開啟電腦,李巖轉(zhuǎn)頭對(duì)吳斌說:“我現(xiàn)在總算知道,為什么這么多人喜歡用我有個(gè)朋友,我有個(gè)同學(xué),我有個(gè)同事這種開頭來裝b了。”
還沒等吳斌說話,一旁的陳安志就插嘴道:“怎么,吳神帶你裝b帶你飛了?”
“是的,估計(jì)用不了多久,學(xué)生會(huì)就要流傳我有一個(gè)牛逼室友的傳說了。”
“裝什么b了啊?說來聽聽。”陳安志滿臉好奇。
“還沒解決呢,別聽他瞎吹。”吳斌說著走到陳志安書桌前,看了眼他正在做的電磁題。
“大佬……您別這樣直勾勾的看我,我壓力好大。”陳志安可憐巴巴的說。2k閱讀網(wǎng)
wap.xbiqugu.la,