2
检测“相似”源代码的簇
假设我有400名学生(在一所大大学中)必须执行计算机科学项目,并且他们必须独自工作(没有一组学生)。一个项目的例子可以是“在fortran中实现快速傅立叶变换算法”(我知道,这听起来并不性感,但是这使我的问题更简单了)。我是纠正者,我想发送例程以检查是否有提议实施的学生群体“过于相似,无法真正独立编写”。 这是对集群的无监督搜索。我认为问题更多是关于使用哪些属性,而不是使用哪种聚类算法。我要做的第一件事是一个字母一个字母的直方图。理想情况下,由于作弊者比这更聪明,因此我最终将尝试选择较好的字母随机排列,以查看是否存在字母直方图(带有排列)的良好匹配。那些没有探究代码结构,只探究字母的边际分布的人……您有什么解决方案?是否有专门用于解决此问题的软件或软件包?(实际上,在过去,计算机科学老师声称他们拥有这种工具,但现在我怀疑他们的工具非常简单) 我猜软件开发的律师也有这类问题(不是有1000名学生,而是有2个大代码...这使事情变得更难了)?