都是些抱大腿的同学,可以说完全是不劳而获,虽然说这是人的天性,但肯定不是什么好行为啊。
‘不过这个实验设计的的确有些枯燥,估计大多数同学没兴趣认真做吧。’
但错的就是错的,养成这种习惯对于学业肯定没有任何好处。
“怎么样,有难度吗?”站在身后的唐成文问。
“还行,给我点时间就好。”
“那就太好了。”唐成文说完小声问李岩:“你还认识信院的朋友?”
“哦不是,他是我同学,物院的。”
“物院现在这么全能了吗!?”唐成文惊道。
“没,就他一个,他兴趣爱好比较广泛。”
“优秀……”
两人聊天间吴斌正做着问题分析,从本质上来说,检查抄代码的问题其实是给定两份代码p1和p2。
要求 d(p1,p2)它们之间的“距离”,距离越小则抄袭嫌疑越大。
解决问题的前提自然是找到问题,目前这么多代码看下来,吴斌差不多在心里做了个总结。
用的最多的方法是修改注释、变量名、大小写等无关信息。接着是代码重排、风格修改等,例如用indent工具过滤一下代码,要知道每个人都有自己的编程风格,这么一改,肉眼看起来可就大不一样了。
另外两种比较有技术性,一是增加或删除代码中的冗余成分,例如增加一些没用的代码,或者删掉一些打印的调试信息。
二是对数据结构、循环、局部代码做等价的重写,拆分、合并函数。
找出问题,吴斌第一件需要做的事情就是优化编译器编译代码,这一点很重要,可以把很多手工改过的等价代码优化成同样的二进制代码,接着再取得函数的指令序列。
这样一来,除了对数据结构、循环、局部代码做等价的重写这种最具有技术性的方法外,其他三种作弊方法就都没用了。
因为在编译器眼里,甭管你怎么缩进,怎么调整,函数编译出来都是一个样子。
看着吴斌在电脑上噼里啪啦的打着代码,后面唐成文和林紫琪都张大了嘴。
林紫琪虽然在实验室时知道吴斌对设计程序很有一套,但如今亲眼见到,还是觉得很震撼。
‘这熟练度也太高了吧……’
将程序的相似度建模城一个二分图的最大权匹配问题后,吴斌回过头对唐成文说:“剩下的我拷回宿舍在弄吧,估计要不少
本章未完,请点击下一页继续阅读!