“所以你是想让我们帮你改良抄袭的检测工具?”
“嗯,搞定了那可是大功一件,我保证你奖学……好吧,你也不缺奖学金,回沪海我请你吃饭吧,金茂顶楼。”
“哇,这么奢侈的吗。”
“是啊,这可是大项目,怎么样,帮兄弟个忙呗?”
“行,我试试,不过话先说在前面,程序语言上我可没你想象中这么厉害。”
“是你比你想象中厉害的多才对。”李岩摇摇头,虽然吴斌没有帮他解决过什么实际的代码问题,但李岩对他的学力实在太放心了,但凡是这位大佬用心钻研过的东西,都能达到常人无法理解的境界。
两人都属于雷厉风行的性格,所以吃完饭,吴斌和林紫琪直接就跟着李岩来到了学生会办公室。
肩负时代使命,汇聚青春力量!
一进门,就是满墙各种党报和宣传字眼,可以说相当的红,让人看一眼就使命感满满。
在李岩的带领下,吴斌认识了纪检部的副主席唐成文。
得知吴斌是来帮忙解决问题的时候唐成文立马表示了热烈的欢迎。
去年吴斌就从李岩这得知了科大的学生会没有那种传说中的“官僚气”,大家都是把学生会当作了一个锻炼能力的地方,所以氛围很不错。
虽然吴斌也听说过有些学生加入学生会之后会打起官腔,大权在握后甚至干些结党私营的事情,但他真的很难想象那会是种什么样的光景。
互相客气几句后唐成文向吴斌叙述了一下作弊的现象以及范围。
吴斌听完了然的点点头。
总之就是他并不需要去研究抄袭是怎么发生的,而是要研究出一个更好的自动程序从一堆提交的昨夜里有效的把抄的代码给招出来。
‘有点意思’
这让吴斌联想到他在论坛上遇到过的一个小游戏,内容是给你两份C代码,你给它们之间的相似度打个分,是一种对语言理解的有效训练。
“我试试吧。”
代码界的江湖高手吴斌已经在各大论坛见识了不少,不过他现在身在科大,会遇到什么样的道行的黑山老妖还真不知道。
“真聪明啊……”
刷完几组代码,吴斌嘴角翘了翘,这个写代码的人明显知道会有人检测代码的相似度,所以故意把代码给改复杂了,如果要人工一一来鉴定的话,的确费时费力。
另外还有直接把代码拷贝过来的同学,应该都是些抱大腿的同学,可以说完全是不劳而获,虽然说这是人的天性,但肯定不是什么好行为啊。
‘不过这个实验设计的的确有些枯燥,估计大多数同学没兴趣认真做吧。’
但错的就是错的,养成这种习惯对于学业肯定没有任何好处。
“怎么样,有难度吗?”站在身后的唐成文问。
“还行,给我点时间就好。”
“那就太好了。”唐成文说完小声问李岩:“你还认识信院的朋友?”
“哦不是,他是我同学,物院的。”
“物院现在这么全能了吗!?”唐成文惊道。
“没,就他一个,他兴趣爱好比较广泛。”
“优秀……”
两人聊天间吴斌正做着问题分析,从本质上来说,检查抄代码的问题其实是给定两份代码P1和P2。
要求d(P1,P2)它们之间的“距离”,距离越小则抄袭嫌疑越大。
解决问题的前提自然是找到问题,目前这么多代码看下来,吴斌差不多在心里做了个总结。
用的最多的方法是修改注释、变量名、大小写等无关信息。接着是代码重排、风格修改等,例如用indent工具过滤一下代码,要知道每个人都有自己的编程风格,这么一改,肉眼看起来可就大不一样了。
另外两种比较有技术性,一是增加或删除代码中的冗余成分,例如增加一些没用的代码,或者删掉一些打印的调试信息。
二是对数据结构、循环、局部代码做等价的重写,拆分、合并函数。
找出问题,吴斌第一件需要做的事情就是优化编译器编译代码,这一点很重要,可以把很多手工改过的等价代码优化成同样的二进制代码,接着再取得函数的指令序列。
这样一来,除了对数据结构、循环、局部代码做等价的重写这种最具有技术性的方法外,其他三种作弊方法就都没用了。
因为在编译器眼里,甭管你怎么缩进,怎么调整,函数编译出来都是一个样子。
看着吴斌在电脑上噼里啪啦的打着代码,后面唐成文和林紫琪都张大了嘴。
林紫琪虽然在实验室时知道吴斌对设计程序很有一套,但如今亲眼见到,还是觉得很震撼。
‘这熟练度也太高了吧……’
将程序的相似度建模城一个二分图的最大权匹配问题后,吴斌回过头对唐成文说:“剩下的我拷回宿舍在弄吧,估计要不少时间,这样可以吗?”
“当然没问题。”唐成文连连点头,“那我就先谢谢你帮我们解决这么大一个麻烦了。”
虽然唐成文并不能看懂吴斌做了什么,但他这种气定神闲的样子让他觉得没点本事的人真装不出来。
“客气。”
最近一周吴斌都在疯狂的看物理论文,如今停下来搞点别的,倒也让他感觉不错,甚至觉得有些新灵感已经在孕育中了,再稍微加把劲,就能想出来。
离开学生会,林紫琪先离队去了实验室,吴斌则和李岩一起回到了宿舍。
开启电脑,李岩转头对吴斌说:“我现在总算知道,为什么这么多人喜欢用我有个朋友,我有个同学,我有个同事这种开头来装B了。”
还没等吴斌说话,一旁的陈安志就插嘴道:“怎么,吴神带你装B带你飞了?”
“是的,估计用不了多久,学生会就要流传我有一个牛逼室友的传说了。”
“装什么B了啊?说来听听。”陈安志满脸好奇。
“还没解决呢,别听他瞎吹。”吴斌说着走到陈志安书桌前,看了眼他正在做的电磁题。
“大佬……您别这样直勾勾的看我,我压力好大。”陈志安可怜巴巴的说。8)