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