“哦不是,他是我同学,物院的。”
“物院现在这么全能了吗!?”唐成文惊道。
“没,就他一个,他兴趣爱好比较广泛。”
“优秀……”
两人聊天间吴斌正做着问题分析,从本质上来说,检查抄代码的问题其实是给定两份代码P1和P2。
要求d(P1,P2)它们之间的“距离”,距离越小则抄袭嫌疑越大。
解决问题的前提自然是找到问题,目前这么多代码看下来,吴斌差不多在心里做了个总结。
用的最多的方法是修改注释、变量名、大小写等无关信息。接着是代码重排、风格修改等,例如用indent工具过滤一下代码,要知道每个人都有自己的编程风格,这么一改,肉眼看起来可就大不一样了。
另外两种比较有技术性,一是增加或删除代码中的冗余成分,例如增加一些没用的代码,或者删掉一些打印的调试信息。
二是对数据结构、循环、局部代码做等价的重写,拆分、合并函数。
找出问题,吴斌第一件需要做的事情就是优化编译器编译代码,这一点很重要,可以把很多手工改过的等价代码优化成同样的二进制代码,接着再取得函数的指令序列。
这样一来,除了对数据结构、循环、局部代码做等价的重写这种最具有技术性的方法外,其他三种作弊方法就都没用了。
因为在编译器眼里,甭管你怎么缩进,怎么调整,函数编译出来都是一个样子。
看着吴斌在电脑上噼里啪啦的打着代码,后面唐成文和林紫琪都张大了嘴。
林紫琪虽然在实验室时知道吴斌对设计程序很有一套,但如今亲眼见到,还是觉得很震撼。
‘这熟练度也太高了吧……’
将程序的相似度建模城一个二分图的最大权匹配问题后,吴斌回过头对唐成文说:“剩下的我想拷回宿舍在弄,估计要不少时间,可以吗?”
“当然没问题。”唐成文连连点头,“那我就先谢谢你帮我们解决这么大一个麻烦了。”
虽然唐成文并不能看懂吴斌做了什么,但他这种气定神闲的样子让他觉得没点本事的人真装不出来。
“客气。”
最近一周吴斌都在疯狂的看物理论文,如今停下来搞点别的,倒也让他感觉不错,甚至觉得有些新灵感已经在孕育中了,再稍微加把劲,就能想出来。
离开学生会,林紫琪先离队去了实验室,吴斌则和李岩一起回到了宿舍。
开启电脑,李岩转头对吴斌说:“我现在总算知道,为什么这么多人喜欢用我有个朋友,我有个同学,我有个同事这种开头来装B了。”
还没等吴斌说话,一旁的陈安志就插嘴道:“怎么,吴神带你装B带你飞了?”
“是的,估计用不了多久,学生会就要流传我有一个牛逼室友的传说了。”
“装什么B了啊?说来听听。”陈安志满脸好奇。
“还没解决呢,别听他瞎吹。”吴斌说着走到陈志安书桌前,看了眼他正在做的电磁题。
“大佬……您别这样直勾勾的看我,我压力好大。”陈志安可怜巴巴的说。